相関行列を出す際のpwcorrとcorrelateの違い
相関係数を出すときに使うpwcorr,およびcorrelate(略してcor)は,
どちらも指定した変数群の相関行列を出してくれますが,欠損値の有無で
結果が違います。例えば,Rのパッケージpsychのbfiデータの
変数A1-A5で試してみます。bfiデータについてはこちら参照
pwcorr A1-A5
| A1 A2 A3 A4 A5
-------------+---------------------------------------------
A1 | 1.0000
A2 | -0.3402 1.0000
A3 | -0.2652 0.4851 1.0000
A4 | -0.1464 0.3351 0.3604 1.0000
A5 | -0.1814 0.3901 0.5041 0.3075 1.0000
cor A1-A5
(obs=2709)
| A1 A2 A3 A4 A5
-------------+---------------------------------------------
A1 | 1.0000
A2 | -0.3416 1.0000
A3 | -0.2683 0.4868 1.0000
A4 | -0.1484 0.3352 0.3622 1.0000
A5 | -0.1827 0.3878 0.5052 0.3067 1.0000
この違いは,単純に計算に使われた人数の違いです。
corの方は,欠損のあるケースをリストワイズするからです。
そうすると(obs=2709)になるということが結果にも出ています。
したがって,pwcorrをリストワイズで出すオプションをつけると,
pwcorr A1-A5, list
| A1 A2 A3 A4 A5
-------------+---------------------------------------------
A1 | 1.0000
A2 | -0.3416 1.0000
A3 | -0.2683 0.4868 1.0000
A4 | -0.1484 0.3352 0.3622 1.0000
A5 | -0.1827 0.3878 0.5052 0.3067 1.0000
となり,corの結果と一致します。
pwcorrのデフォルトではどのように解析がされているか確認するには,obs
オプションをつけます
pwcorr A1-A5, obs
| A1 A2 A3 A4 A5
-------------+---------------------------------------------
A1 | 1.0000
| 2784
|
A2 | -0.3402 1.0000
| 2757 2773
|
A3 | -0.2652 0.4851 1.0000
| 2759 2751 2774
|
A4 | -0.1464 0.3351 0.3604 1.0000
| 2767 2758 2759 2781
|
A5 | -0.1814 0.3901 0.5041 0.3075 1.0000
| 2769 2757 2758 2765 2784
相関係数の下にそれぞれのペアの人数が出てきました