1 日 30 分くらい，30 日で何とかＲをそこそこ使えるようになるための練習帳：Mac 版	 
ver.0.95（ほぼ完成版）	 

17 日目：相関係数（２）	  昨日まで，因子分析から平均値の比較へと進めました。本日からは方向性を変えて，相関系の分析をやってみたいと思います。	  データも本日から変えてみたいと思います。大学生を対象に，読書習慣に関する調査を行ったとします。読書習慣に関連すると考えられる諸変数も測定し，読書習慣形成との関わりから整理することを狙ってみます。このプロセスで，相関係数，偏相関係数，回帰分析をやってみたいと思います。もちろん，でっち上げのダミーデータですが。	  本日は相関係数をやります。しかし，この段階を端折る人も多いのではないかと思うのですが（あくまでも私の想像），相関係数を出す前には，散布図を眺めておくことが必要だと思います。やはりデータの状況をきちんと眺めておいてから相関係数を算出し，その意味を把握することが大事だと思います。	  散布図を作るのは簡単ですから，必ずやっておきましょう。データは x という名前で読み込んだとします。
par(family="Osaka")plot(x$知識欲, x$不可欠)	  par は，度数分布の時も使った，文字化けを防ぐための命令です。簡単な散布図は，plot()だけで作ってくれます。	  plot(x$知識欲, x$不可欠)のように２変数を併記すれば OK。３変数以上を一気にやりたいなら，plot(x[2:8])などと複数列を指定するか，変数を別のファイルに入れておいて（たとえば xx），plot(xx)というやり方もあります。	  複数列を指定すると，興味深い結果を返してきます。散布図マトリックスともいえるような出力が得られます。指定した変数が多すぎると，一つひとつが小さくなりすぎて見にくくなりますが，ある程度までであれば多少小さくても十分ではないでしょうか。なお，右上と左下の部分は，同じ図ではないことがわかると思います。X 軸と Y 軸にとる変数が入れ替えてあります。	  これでざっと分布状況を確認したら，相関係数を求めてみます。	  10 日目に，cor()という命令を紹介しました。これは単に相関係数を計算してくれるだけで，ざっと眺めるにはよいですが，論文などに記載するには情報不足です。今日は無相関検定もやってくれる２つのコマンドを取り上げます。	  まず一つ目は，
cor.test(x$知識欲, x$不可欠, method="pearson")17-1

1 日 30 分くらい，30 日で何とかＲをそこそこ使えるようになるための練習帳：Mac 版	 
ver.0.95（ほぼ完成版）	 	  結果は図のように表示されます。なお，cor()と同じで，method=で違う方法を指定できますし，指定しなければ（cor.test(x$知識欲, x$不可欠)）ピアソンの積率相関係数を求めます。	  相関係数とともに，無相関検定の t 値，自由度，p 値を表示しています。この出力の興味深
いところは，95
percent
confidence
interval，つまりこの相関係数の 95%信頼区間も出してくれるところです。今回のデータから，母集団における相関係数を推定した場合，95%の確率で.431 から.648 の間にあるという推定です。有意だけれども弱い相関が得られた場合，これをみて，落ち着いて解釈をしてください。	  これはかなり必要な値をカバーしてくれる出力をしてくれる（n が出てきませんが…）のですが，面倒なのは複数列に渡る変数指定ができないところです。cor.test(x)や，cor.test(x[2:9])とするとエラーになります…。
	  もうひとつは，psych パッケージにある，corr.test()です（r がひとつ多い！）。こちらは複数列の指定も受け付けてくれます。なお，method=は cor()や cor.test()と同じです。
corr.test(x[2:9], method="pearson")	  この場合の出力は，相関係数，データ数，有意確率の３つの指標になります。なかなかに便利なのですが，相関係数も有意確率も小数点以下２桁で表示されます。ここは好みの分かれるところでしょう。４桁という論文にはまず出会いませんが，３桁表示は多くあります。	  round でコントロールできるかやってみたのですが，うまくいきませんでした。そこで，corr.test の結果をいったん保存し，相関係数（r），データ数（n），有意確率（p）をそれぞれに呼び出すという形だとうまくいきます。	  この仕組みは，いろいろと応用が効きますので覚えておいて損はないと思います。R が返してくる結果は，一つのオブジェクトであり，いくつかの内容が含まれていることが多いです。たとえば因子分析の時に，結果を一度保存して，print でコントロールしました。この17-2

1 日 30 分くらい，30 日で何とかＲをそこそこ使えるようになるための練習帳：Mac 版	 
ver.0.95（ほぼ完成版）	 

ようなやり方は他にもありました。それは，求めた結果が複数の内容を含んでいるからできることです。通常の結果表示は，それをまとめたデフォルト表示なのです。	  どのような内容が計算結果のオブジェクトに含まれるかは，それをいったん何かに代入し，names で中を見ることができます。たとえば，corr.test の結果なら…
bb <- corr.test(x[2:9])
names(bb)	  これを実行すると，以下のような結果が返ってきます。	 	  この結果は，bb の中に，"r"，"n"，"t"，"p"，"adjust"，"sym"，"Call"の７つの結果が含まれていることを示しています。そして，それぞれの中身を確認するには，bb$rなどとすれば見ることができます（r とか n などは，bb というデータの変数名（列名）と考えればよいでしょう。x$知識欲で，知識欲のデータが見られるのと同じイメージです）。もちろん help でも確認できますが。	  それぞれを確認すると，r が相関係数，n が人数，p が有意確率であることがわかります。
デフォルトの表示は，r や p の値を小数点以下２桁に丸めてあるようです。そこで，これを小数点以下３桁に丸めて表示するように，round でコントロールしてやります。つまり…
bb <- corr.test(x[2:9])
round(bb$r, 3)
bb$nround(bb$p, 3)
これで，大体デフォルトの出力と同じで，かつ小数点以下３桁表示になります。	  さて，相関係数を求める場合には，行と列に同じ変数を入れたい場合もありますが，別の変数を指定したい場合も多いでしょう。そのような場合には，corr.test(x[8:9],x[2:7])というような指定もできます，指定の前半部が行（つまり縦）になり，後半部が列（つまり横）になります。なお，10 日目には説明しませんでしたが，cor も同様です。
cor(x[8:9], x[2:7])という指定ができます。

17-3

1 日 30 分くらい，30 日で何とかＲをそこそこ使えるようになるための練習帳：Mac 版	 
ver.0.95（ほぼ完成版）	 	  cor， cor.test，corr.test の結果を比較してみると，corr.test が一番見やすいのかなと思います。	  しかし，論文に記載する表に加工しようとすると，いずれもちょっと手間がかかりそうで，また転記ミスをする可能性もありそうです。	  本日はここまでにします。明日は論文に掲載する表の形式に近いものを出力する自作関数を紹介しようと思います。

17-4