你好:
我想知道如何将相关矩阵(或协方差矩阵)输入到JMP中进行公因子分析(或主成分分析)。我在文档或任何地方都找不到任何示例。
我确信以前有人在 JMP 中做过这件事。
你能发布你的解决方案吗?
谢谢
纳拉亚南
我在这里没有看到你近20个月前提出的问题的回复。有没有人回答我的问题,因为我也有同样的问题?我想把我“自己的”相关和协方差矩阵输入到一个简单的主成分分析中,但找不到方法。
谢谢。
迈克尔
HI @MaxiumumFactors和@AN1 ,
我查看了 JMP 脚本索引,想看看是否有办法输入自定义矩阵,但我觉得 JMP 不允许这样做,只能使用它生成的矩阵。如果您有这方面的需求,可以考虑在“愿望清单”中添加帖子。
谢谢,
本
我是小野裕介 (Yusuke Ono),JMP 日本的高级测试员。我的英语不好,请先行致歉。
如果您有 JMP Pro,结构方程模型平台支持协方差矩阵(或相关矩阵)和均值向量作为输入,并且您可以拟合验证性因子分析 (CFA) 和其他 SEM。
JMP 脚本语言 (JSL) 中的自己的函数可以对对称矩阵进行特征值分解。主成分分析 (PCA) 可以通过特征值分解来完成,因此可以使用自己的函数进行 PCA。
最大似然估计的因子分析更为复杂。编写最大似然算法非常困难。因此,尽管方法仍然比较复杂,但我还是推荐以下方法。
如果使用乔莱斯基函数,则可以模拟一个虚拟数据,其协方差矩阵和均值向量与您的完全相同(前提是您的协方差矩阵是正半定的)。如果您的协方差矩阵为那些 ,均值向量为意思是 ,则可以生成如下所示的数据。
z = J(n, NCol(cov), Random Normal());
For(i = 1, i <= NCol(z), i++,
z[0,i] = (z[0,i] - Mean(z[0,i]))
);
c = Covariance(z);
invrc = Inv(Cholesky(c))`;
rcov = Cholesky(cov);
z = J(n,1,1)*mean` + z * invrc * rcov`;
请注意,这些虚拟数据的某些结果毫无意义。例如,PCA 中的得分图依赖于随机种子。只有与协方差矩阵和平均向量相关的结果才有意义。例如,最大值、最小值和 Spearman/Kendall 相关性毫无意义,因为它们依赖于均值和协方差以外的其他信息。
以下代码是示例。如果您不熟悉JSL,理解和编写这种“虚拟数据方法”肯定很困难。此外,我的英文解释也不太容易理解。我还省略了数学解释,解释了为什么这个计算可以生成您想要的包含均值向量和协方差矩阵的虚拟数据。如果您有任何疑问,欢迎随时回复。
Names Default To Here(1);
/////////// This is a sample data //////////////////////////////////////
New Table( "Test",
New Column( "Mean", Values( [100, 50, 30, 20] )),
New Column( "Stddev", Values( [3, 4, 2.5, 1.8] )),
New Column( "X1", Values( [1, 0.8, 0.6, 0.4])),
New Column( "X2", Values( [0.8, 1, 0.5, 0.2] )),
New Column( "X3", Values( [0.6, 0.5, 1, 0.2] )),
New Column( "X4", Values( [0.4, 0.2, 0.2, 1] ))
);
///////////////////////////// From Here ///////////////////////////////
mean colname = "Mean"; /* column name for means */
stddev colname = "Stddev"; /* column name for standard deviations */
corr colnames = {"X1", "X2", "X3", "X4"};
n = 100; /* Specify the sample size */
dt = Current Data Table();
mean = Column(dt, mean colname) << Get As Matrix; /* Read your mean vector */
sd = Column(dt, stddev colname) << Get As Matrix; /* Read your standard deviations */
r = dt <
<GET as="" matrix=""></GET>
<DIV>JMP 的独特之处之一是其交互性。例如,您可以在主成分分析 (PCA) 平台的得分图中发现一些异常值。如果您从汇总数据(例如均值、标准差和相关性)入手,则会丢失一些数据信息。我自己在尝试教科书中的一些分析时也感到有些不便。但最近,我认为更多教科书提供的是示例原始数据集,而不是汇总数据。总之,如果您希望我们也支持在主成分分析 (PCA) 和因子分析 (Factor Analysis) 平台上输入汇总数据(就像 JMP Pro 的 SEM 平台一样),我希望您在“愿望清单”中提交您的请求(正如<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/51054" target="_blank">@Ben_BarrIngh</A>所说)。</DIV>