Rによる二分データの因子分析の推奨手順


10

二分変数(0 =はい、1 =いいえ)で構成されるデータセットに対して因子分析を実行する必要があり、正しい方向に進んでいるかどうかわかりません。

を使用しtetrachoric()て、実行する相関行列を作成しますfa(data,factors=1)。結果はMixFactorを使用したときに受け取る結果に非常に近いですが、同じではありません。

  1. これは大丈夫ですか、それとも別の手順をお勧めしますか?
  2. なぜfa()仕事とfactanal()エラーが発生しますか?(Fehler in solve.default(cv) : System ist für den Rechner singulär: reziproke Konditionszahl = 4.22612e-18

1
私は話せません(ドイツ語?)が、エラーは四方行列が特異(不可逆)であることが原因のようです。適切なサイズのサンプルを使用しても、ポリコリック相関行列の一部の推定値は適切な相関行列にならない場合があります。私の直感は、fa()が主成分を使用しており、factanal()が最尤FAを実行していることですが、fa()のドキュメントからは明らかではありません。
JMSは

@cadaアイテム/件名はいくつありますか?そして、どのメソッドがMixFactorに実装されていますか?
2011年

1
@cadaなぜ因子分析を実行しているのですか?参加者の能力を推定することを目的としている場合は、IRTの方が良いアプローチかもしれません。faとfactanalの問題では、faはデフォルトで最小残差を使用しますが、factanalはMLメソッドを使用します。
richiemorrisroe

@chl:少なすぎる!私は調査を開始したばかりで、今では45科目しかありません。現時点では新しいデータを収集できません。そのため、できるだけ多くのrコードを実行しようとしています...
cada

1
@cada 45科目のCFAはシュールレアリストになります:-)後で考えを追加します。
11

回答:


12

要約すると、n = 45の被験者では、相関ベースの多変量記述アプローチが残ります。ただし、このアンケートは一次元的なものであるため、これは常に良いスタートです。

私がすること:

  • 22項目のペアワイズ相関を計算します。範囲と中央値を報告します-これは、観測された項目の応答の相対的な一貫性を示します(0.3を超える相関は、一般に、収束の有効性を示すものと考えられますが、もちろん、この推定の精度はサンプルサイズによって異なります) ; アンケートの内部整合性を調査する別の方法は、Cronbachのalphaを計算することですが、n = 45の場合、関連する信頼区間(そのためにブートストラップを使用)は比較的大きくなります。
  • アイテムと合計されたスケールスコアの間のポイントとバイセリアルの相関関係を計算します。これにより、各アイテムの識別力(FAのローディングなど)がわかります。0.3を超える値は、各アイテムと対応するスケールとの間に満足のいく関係があることを示しています。
  • PCAを使用して相関行列を要約します(これにより、二分法でスコア付けされた項目の場合に、複数の対応分析から得られるものと同等の解釈が得られます)。機器がサンプルの1次元スケールとして動作する場合は、(最初​​の固有値によって反映される)変動の支配的な軸を観察する必要があります。

あなたがで有用な機能を見つける、Rを使用する必要がありますLTMサイケパッケージ。その他のパッケージについては、CRAN Psychometrics Task Viewを参照してください。100人の被験者がいる場合は、ブートストラップ信頼区間を使用したCFAまたはSEM分析を試すことができます。(信頼できる相関係数の標準誤差の少なくとも2倍である必要があるため、項目とその要素の間に有意な相関があると見なすには、負荷が非常に大きい必要があります。)2(1r2)/(n)


どうもありがとうございました!あなたの答えはとても詳細で本当に本当に役に立ちます!ありがとうございました!
cada

3

このスレッドは、factanalを使用した「System istfürden Rechnersingulär:reziproke Konditionszahl」エラー(英語:「システムは計算上単数:相互条件数」)のためのGoogleの適切な位置にあります。したがって、コメントを追加します。

相関行列が演繹的に計算されるとき(たとえば、欠落した値をペアで削除するため)、factanal()は、行列が分析するデータであると考えないようにしてください(https://stat.ethz.ch/pipermail/r- help / 2007-October / 142567.html)。

PREVIOUS: matrix = cor(data, use="pairwise.complete.obs")  # For example
WRONG: factanal(matrix, 3, rotation="varimax")
RIGHT: factanal(covmat=matrix, factors=3, rotation="varimax")

バーニンレオ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.