psychパッケージは性格分析、精神分析、心理統計に役立つ関数をまとめたパッケージになる。
モジュールとしては以下のように分かれている。
- データ入力および記述統計
- データクレンジングおよびクラスタリング・ファクタリング分析
- 統計的検定
- Synthetic Aperture Personality Assessment
- シミュレーションデータ生成
- グラフィック
- 周期分析
- データセット
- デバッギング
本家はこちらになる。
まずは基本となる記述統計の関数から使ってみる。
describe()はsummary()よりさらに詳細な情報を返す。
> my.data <- sat.act > describe(my.data) vars n mean sd median trimmed mad min max range skew gender 1 700 1.65 0.48 2 1.68 0.00 1 2 1 -0.61 education 2 700 3.16 1.43 3 3.31 1.48 0 5 5 -0.68 age 3 700 25.59 9.50 22 23.86 5.93 13 65 52 1.64 ACT 4 700 28.55 4.82 29 28.84 4.45 3 36 33 -0.66 SATV 5 700 612.23 112.90 620 619.45 118.61 200 800 600 -0.64 SATQ 6 687 610.22 115.64 620 617.25 118.61 200 800 600 -0.59 kurtosis se gender -1.62 0.02 education -0.07 0.05 age 2.42 0.36 ACT 0.53 0.18 SATV 0.33 4.27 SATQ -0.02 4.41
sat.actは性別・学歴別・年齢別にACT, SAT Verbal, SAT Quantitativeについて記録したデータになる。describe()ではレコード数、mean, sd, median, min, max, range, skew, kurtosis, seなどが返されているので、データを簡単に俯瞰できる。
describe()をグループ別に実行したいときにはdescribeBy()を利用する。性別にdescribe()の結果を出してみる。
> describeBy(my.data, group=my.data$gender) group: 1 vars n mean sd median trimmed mad min max range skew gender 1 247 1.00 0.00 1 1.00 0.00 1 1 0 NaN education 2 247 3.00 1.54 3 3.12 1.48 0 5 5 -0.54 age 3 247 25.86 9.74 22 24.23 5.93 14 58 44 1.43 ACT 4 247 28.79 5.06 30 29.23 4.45 3 36 33 -1.06 SATV 5 247 615.11 114.16 630 622.07 118.61 200 800 600 -0.63 SATQ 6 245 635.87 116.02 660 645.53 94.89 300 800 500 -0.72 kurtosis se gender NaN 0.00 education -0.60 0.10 age 1.43 0.62 ACT 1.89 0.32 SATV 0.13 7.26 SATQ -0.12 7.41 --------------------------------------------------------- group: 2 vars n mean sd median trimmed mad min max range skew gender 1 453 2.00 0.00 2 2.00 0.00 2 2 0 NaN education 2 453 3.26 1.35 3 3.40 1.48 0 5 5 -0.74 age 3 453 25.45 9.37 22 23.70 5.93 13 65 52 1.77 ACT 4 453 28.42 4.69 29 28.63 4.45 15 36 21 -0.39 SATV 5 453 610.66 112.31 620 617.91 103.78 200 800 600 -0.65 SATQ 6 442 596.00 113.07 600 602.21 133.43 200 800 600 -0.58 kurtosis se gender NaN 0.00 education 0.27 0.06 age 3.03 0.44 ACT -0.42 0.22 SATV 0.42 5.28 SATQ 0.13 5.38 >
次に変数をペアにして描画してみる。変数の関連性についておおよその傾向をつかみ、より詳細ない分析に移っていく。
pairs.panels(sat.act, pch='.')
ACT, SATV, SATQについて相関係数をみてみる。psychパッケージでは corr.test()が用意されている。この関数は相関係数、サンプルサイズ、確率を返す。
> corr.test(sat.act[4:6]) Call:corr.test(x = sat.act[4:6]) Correlation matrix ACT SATV SATQ ACT 1.00 0.56 0.59 SATV 0.56 1.00 0.64 SATQ 0.59 0.64 1.00 Sample Size ACT SATV SATQ ACT 700 700 687 SATV 700 700 687 SATQ 687 687 687 Probability values (Entries above the diagonal are adjusted for multiple tests.) ACT SATV SATQ ACT 0 0 0 SATV 0 0 0 SATQ 0 0 0