33の変数(列)によって記述される717の観測(行)で構成されるデータセットがあります。データは、すべての変数をzスコアリングすることによって標準化されます。2つの変数が線形従属ではありません()。また、分散が非常に小さい(0.1未満)すべての変数を削除しました。以下の図は、対応する相関行列(絶対値)を示しています。
factoran
Matlabで次のように使用して因子分析を実行しようとすると:
[Loadings1,specVar1,T,stats] = factoran(Z2,1);
次のエラーが表示されます。
The data X must have a covariance matrix that is positive definite.
問題がどこにあるか教えていただけませんか?使用されている変数間の相互依存性が低いためですか?また、どうすればいいですか?
私の相関行列:
3
ここで問題となっているのは、相互依存性が低いこととは逆だと思います。おそらく、それらの間で線形に依存するいくつかの変数があり、これにより、共分散行列が半定値になります(つまり、固有値がゼロになります)。
—
usεr11852
終了する質問に投票する人々へ:なぜサンプル共分散行列の正定性に関する質問がここで話題から外れるのですか?ユーザーは、因子分析の標準アプリケーションが機能しない理由を懸念しています。必要に応じて詳細情報を入手してください!
—
usεr11852
サンプルの共分散行列の固有値を計算して提示できますか?(例
—
usεr11852
eig(cov(Z2))
)。それらのいくつかは非常に小さいと私は強く疑っています。
私は@usεr11852に同意します:この質問はトピック外で誤って閉じられたようです(自分で閉じるように投票しました)。それはプログラミングの質問のように見えましたが、実際には完全にトピックについての合理的な質問です。私はそれを編集し、再び開くように投票しました。OPが消えてしまったようですが残念です。
—
amoeba氏は、2015
この質問には、Matlabコミュニティが支援できない統計的な内容があるかもしれません。どのように
—
StasK、2015年
Z2
行列を計算しますか?データに欠損値がある場合、行列の異なる相関がデータの異なるサブサンプルを使用して計算されると、ペアワイズ削除によって行列が反転不能になる可能性があります。