你好:
我想知道如何將相關矩陣(或協方差矩陣)輸入到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>