问题标签 [factor-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
131 浏览

r - r 分数或负荷中的因素之间的相关性?

我在 r 中用三个因素(function=fa {psych};rotation=promax;method=GLS)进行了因子分析。

现在我想在三个因素之间添加一个相关矩阵。哪个矩阵在定义因子之间的相关性方面会更好?使用分数相关性?

或载荷相关性?

0 投票
4 回答
4515 浏览

spss - SPSS - 在因子分析后使用 K 均值聚类

我是一名开发人员,负责研究如何使用 SPSS 收集以前的结果,因此我们可以使用一些新数据重复该过程。我们不能问做原始分析的人,因为他很遗憾不再和我们在一起,所以我有责任去解开他的所作所为。

我不是统计学家,不需要了解所涉及的原理。我真的只需要知道要导航到哪些菜单项。

我们完成了一项调查,向 10,000 人提出了很多问题。其中 15 个问题的子集用于分析。

我知道进行了因子分析以将数据减少到 4 组。然后使用 K-means 聚类来寻找聚类中心。这就是我现在所追求的。

我已经研究出如何进行因子分析以获取与我的数据库中的数据相匹配的分量得分系数矩阵。这是通过转到分析 > 降维 > 因子来完成的。然后我从“提取”部分选择固定数量的因子(4),从“旋转”部分选择“Varimax”旋转,并检查“分数”部分中的“显示因子得分系数矩阵”。

这给出了这样的数据:

我不知道如何继续进行 k-means 聚类。

我在数据库中的结果如下所示:

现在,我知道可以使用分析 > 分类 > K-means Cluster 对原始数据集进行 k-means 聚类,但我不知道如何参考我所做的因子分析。

有人能给我一些关于如何使用 SPSS 创建这些集群中心的见解吗?

0 投票
0 回答
1311 浏览

r - 从 R 中的因子分析中获取非标准化因子分数

我正在使用 R 中的几个变量进行因子分析factanal()(但我愿意使用其他包)。我想确定每个案例的因子得分,但我希望因子得分是非标准化的并且是输入变量的原始度量。当我运行因子分析并获得因子分数时,它们以均值 = 0、SD = 1 的正态分布进行标准化,并且不在输入变量的原始度量上。如何获得与输入变量具有相同度量的非标准化因子分数?理想情况下,这意味着相似的均值、标准差、范围和分布。

我之前问过一个类似的问题,但受访者的回答涉及重新调整标准化(即正态分布)因子得分。请注意,我不想将标准化因子分数转换为非标准化分数,因为我的指标分布是非正态的(即,标准化因子分数的正态分布不能轻易转换为我的指标的原始指标)。换句话说,我想在指标的原始指标上估计未标准化的因子得分,而不是首先在标准化指标上估计它们。

此外,还有一些缺失的数据。如何获得所有案例的(非标准化)因子得分,即使是那些没有所有项目数据的案例?

这是一个小例子:

上面的数据只是一个小例子。我的实际数据不是 likert/ordinal 数据。它们是来自各种来源的足球运动员传球码数的预测。我希望“潜在平均值”比平均值更准确地预测球员的传球码数,因为它会丢弃每个来源的独特偏见。然而,数据是高度正偏的,并且强制潜变量及其因子得分呈正态分布会导致许多球员难以置信的高值(例如,下赛季超过 6,000 码)。

0 投票
1 回答
339 浏览

matlab - 使用 statset 更改 matlab 中的属性

尝试更改函数的optimopts属性,factoran即在 Matlab 中,但显然这些值仍保留为默认值:TolXTolFun

然后使用因子分析功能:

从这里可以看出,这些值仍然是默认值:

任何想法表示赞赏。

0 投票
2 回答
2553 浏览

r - R中的因子分析,错误

我在 R 中输入了以下命令

其中 TD 是我的包含 41 个变量的数据框

我收到以下错误

factanal 中的错误(TD,因子 = 10,旋转 =“varimax”,分数 =“回归”):无法从该起始值进行优化

有人可以帮我解决这个错误。

0 投票
1 回答
455 浏览

sas - SAS:通过 PROC FACTOR 与 PROC CALIS 的 EFA

是否有任何理由在 PROC CALIS 中进行探索性因子分析 (EFA) 而不是 PROC FACTOR?

我知道因子程序是在 SAS 中进行 EFA 的最常见方法,但我很好奇为什么 SAS 还会将其构建到 calis 程序中(并在 calis 文档中提供一些 EFA 示例)。我还在 PROC CALIS 中尝试过 EFA,默认表没有那么有用(它不输出特征值或公共估计值),并且它似乎没有提供与 PROC FACTOR 相同的因子负载(除非我错过了使它们等效的选项)。

我知道 PROC CALIS 有一些额外的提取方法在 PROC FACTOR 中不可用(例如,WLS、DWLS 和 GLS),但这些方法并不常用。我想不出需要这些方法之一而 PROC FACTOR 中的方法不适合的情况。

它们似乎也具有几乎相同的旋转方法。

如果你在不同的运行中做不同的水平,你甚至可以在 PROC FACTOR 中做高阶因子(将 PROC FACTOR 输出输入到模型中以获得高阶因子)。

PROC CALIS 有没有 PROC FACTOR 没有做的事情,或者 PROC CALIS 在执行 EFA 时处理得更好的情况?

0 投票
2 回答
9135 浏览

python - 如何使用 Python (scikit-learn) 计算 FactorAnalysis 分数?

假设只有 1 个潜在因素,我需要使用 Python 执行探索性因素分析并计算每个观察的分数。似乎这sklearn.decomposition.FactorAnalysis()是要走的路,但不幸的是文档示例(不幸的是我找不到其他示例)还不够清楚,我无法弄清楚如何完成工作。

我有以下测试文件,其中包含 29 个变量()的 41 个观察值test.csv

使用我根据官方示例编写的代码,从这篇文章中 我得到了奇怪的结果。代码:

代码输出:

这个结果与预期相去甚远。这是R此任务的代码和相同的数据。它的输出是好的(结果接近于一些能够执行 FA 的 IBM 程序的输出):

此代码的输出是:

所以我希望在 Python 中得到类似的结果(我知道我不会得到确切的数字),但我不知道如何。

0 投票
1 回答
1109 浏览

matlab - 如何在 MATLAB 中执行直接 Oblimin 旋转

我正在尝试在 MATLAB 中执行以下分析:

Delta 值为 0 和“Kaiser Normalization”的 Direct Oblimin Rotation

我知道 MATLAB 有一个名为rotatefactors的函数,但是没有提到 oblimin 旋转(也没有“Kaiser Normalization”)。如何在 MATLAB 中执行此分析?

更具体地说,我在执行此分析时尝试匹配 SPSS 的确切输出。

在这里您可以找到 SPSS 中使用的所有算法:链接(查看第 338 页的 oblimin 旋转)。不幸的是,我无法理解这些方程,因此无法在 MATLAB 中重现它们。


例如,我使用以下数据:

我执行 PCA(在相关矩阵上)并仅提取 2 个因子。以下是在 MATLAB 中如何获得与 SPSS 中完全相同的加载矩阵(他们称之为“组件矩阵”):

loadings接下来,我应该使用函数对矩阵执行旋转rotatefactors,这就是我卡住的地方。

这是SPSS中的语法:

这是我试图在 MATLAB 中重现的 SPSS 输出:

旋转输出 (SPSS)

0 投票
0 回答
125 浏览

r - 对于 EFA,Scree Plot 或 factanal 命令(在 R 中)在降维方面更可靠吗?

我正在使用威斯布鲁克和奥利弗关于 1991 年对消费的情绪反应的数据来练习 EFA。

到目前为止,这是我的脚本:

从视觉上看,弯道似乎在 F3 处。然而,根据凯撒法则,我们只保留前两个因子,因为它们的方差大于 1。我检查了最初的研究,似乎他们确定了三个因素。

但是当我用 factanal() 检查三个因素是否足够时,答案是需要三个以上的因素。事实上,五似乎是充分因素的最小数量。

当用于降低维度的不同措施不同时,使用哪种措施只是个人喜好吗?将因素的数量保持在三个对我来说是有意义的,因为第五个因素只是对第一个因素的一些变量的不太全面的重新散列。

你怎么看?

0 投票
1 回答
672 浏览

matlab - MATLAB 和 SPSS 因子分析(FA)的结果之间的差异

这是我在 IBM SPSS 中的代码:

这是 MATLAB R2015b 执行相同操作的代码:

旋转分量矩阵的 SPSS 输出:

MATLABlambda输出:

为什么这些输出不同?我想在 MATLAB 中得到相同的结果。如您所知,SPSS 忽略小于 1 的特征值。我希望在 MATLAB 中具有相同的结构。我怎样才能做到这一点?

PS。

MATLABT输出:

MATLABpsi输出:

其他 SPSS 输出: