Rのススメ

e0027033_16475913.jpg【Rってなんだろう?】

タイトルはテレビのバラエティ番組のようだが、この意味するところは「実際に統計をやってみよう」である。
Rと言うのは統計解析を行うためのオープンソースのスクリプト言語とその利用環境なのであるが、
この説明だと初学者には???だろう。
もっと簡単に書けば...
質問紙などで集めたデータの平均や相関など、ほとんど全ての統計計算とグラフ化を行ってくれる無料のソフトである。
平均や相関など基礎統計量ならEXCELでもできるので、どんな違いがあるのかと思われるだろう。
確かにそれは事実である。
それではRとEXCELではどう違うのだろうか。
また既に卒論などで統計解析をやった人にはSPSSSASなどを経験している人もいると思うが何が違うのだろうか。
操作的なことや技術要件などの詳細は割愛して書けば、Rだけが無料のソフトであるということだ。
※SAS University EditionやSPSSのアカデミックパッケージには賞味期限があります。
またRはWindows,Mac,LinuxのOSそれぞれに対応している。
それと、今やほぼ日本の心理学専攻での授業ではRが標準実習ツールとして用いられている。
しかし、とある情報では「授業ではRで教えているのに、EXCELやSPSSを使う学生が多い」と嘆く教授もいるとのこと。
さもありなん。
Windowsなんてない時代はSPSSしか選択肢がなかったのだから、Rを使い慣れていない場合、
EXCELやWindows版SPSSのほうが遙かに教えるのも憶えるのも楽だろう。

【Rを使ってみる】

そこで実際にRをダウンロードしてインストールし、使ってみる。

まずダウンロードとインストールは2つのものが必要となる。
一つ目はRそのものであり、もう一つはR Studioというツールである。
解りやすく書くと前者は車のエンジンにあたり、後者はハンドルや計器にあたると考えればいいだろう。
※前者だけを直接操作できないこともないのだが

Rのダウンロードとインストール

R Studioのダウンロードとインストール

とにかくこの二つを入れてしまえばすぐに使える。

まずR Studioを起動してプロンプトがあらわれたら
install.packages(("ggplot2"))
と入力しEnterを押す。
これはグラフを表示するためのパッケージをインストールする呪文だ。

次に「サイコロをランダムに100回振った平均を求めて、それをまた100000回繰り返した結果!」をやってみる。
※このサイコロの試行が正規分布の説明に出てくる中心極限定理の例と思って下さい。

この実行処理データをresと言う任意の名前の箱に保持してみるには
res <- replicate(100000,mean(sample(1:6,100,replace = TRUE)))
とプロンプトに入力しEnterを押す。
※sample関数自体がランダムに行う機能を持っています。
※「任意の名前の箱」は正式にはオブジェクトと言います。

次にプロンプトがあらわれたら
hist(res)
と入力しEnterを押す。
※これでちょっとしたヒストグラム(度数分布表)が表示される

次に、ちょっと凝った表示にするため
saikoro <- data.frame(サイコロ = res)
とプロンプトに入力しEnterを押す。

しばらくしてプロンプトがあらわれたら
library(ggplot2)
と入力しEnterを押す。
これはパッケージの中のggplot2というグラフ描画機能を使う呪文だ。

次にプロンプトがあらわれたら
ggplot(saikoro,aes(x=サイコロ))+geom_histogram(binwidth = .1,fill="steelblue",colour="black",alpha=0.5)+xlab("期待値")+ylab("回数")+ggtitle("サイコロの平均値の平均値")
と入力する。
そうすると今回の画像のグラフである「サイコロの平均値の平均値」のヒストグラムがあらわれる。

【Rは使いやすい?】

と言うわけであるが、前述の教授の嘆きの原因はすぐにわかるだろう。
R Studioにはコマンドヒストリーやインテリセンスなどの入力補助機能はあるのでプログラミングを考えれば有り難いのだが、操作環境は日本語ではないし、あくまでもプロンプトに命令語をキー入力していくといったCUIなのである。
なのでMacやWidowsになれたユーザーにとっては「何を今更DOSでやるのか」という疑問を持っても不思議ではない。
※コマンドヒストリーとはDOSなどでおなじみの↑キーを押すと過去に入力したコマンドがあらわれる機能
※インテリセンスとはVisual Studioなどでおなじみの3文字くらい入力したら命令語の候補をリスト表示してくれる機能

しかしながら実際の修論や卒論で使う程度ならRを憶えておいた方がいいだろう。
なぜなら心理統計で実際に入力が必要となるのはプログラムを組むほどのものではないからだ。
まず、卒論や修論などの心理統計ならばどんな解析であれ必要な入力は、データ入力とほぼ限られた関数命令くらいだろう。
例えば、実際のデータ入力はEXCELで行い、CSVファイル形式で保存して読み込むことが一般的である。
後はt検定,F検定,相関,カイ二乗検定,重回帰分析,因子分析,ロジスティック回帰分析...などなど
解析方法に合わせた関数と引数が解ってしまえば、出力される内容の解釈が理解できればいい。

と、ここまで書いたら、いかにも簡単そうに見えるが、前述したように操作は英語版DOSのようなものなので、EXCELを使い慣れた者からすればGUIにしてもらいたいだろうし、エラーも日本語で出力してもらいたいはずである。
まあ、ここは無料なので「習うより慣れろ」としか書けないし、「これくらいで悲鳴をあげていたら応用行動分析の実験計画の理解のほうがもっと難しいのだから」としか説得しようがない。

兎に角、統計学は最初から用語の重々しさやΣ関数のオンパレード、それに日常で目にしないグラフが登場するので、どうしても第1印象からして腰が引けてしまうのであるが、心理統計レベルならば実際に簡単なt検定程度の操作をしてみたほうがいいように思う。
統計本で用語や計算式とにらめっこするのに疲れたら、見よう見まねでRの入門本を買って実際にやってみたほうが統計をイメージしやすいだろうから。

【Web調査の可能性】

とりあえずここまで読んで、「データ入力はEXCEL?」と疑問を持たれた方はかなりの情報処理通だろう。
※SE,プログラマーでこの疑問を持たないのはあり得ないという意味で。
つまり、データ入力をEXCELで手入力すること自体が原始的ではないかと言うことであるが...
それは正しい。
ところが日本の大学の心理統計では未だ質問紙調査がメインである。
Web調査は調査対象者の妥当性を補償する知識が必要となるし、タッチパネル入力のシステム構築を行うにしてもまだまだハードルが高い。
と言うのも、そもそも日本の心理学はその殆どが文学部や教育学部など文系の学科なので、Webシステムの構築をやろうとすると、それだけで2年間を消化してしまう。
しかし既にEclipseVisual Studioなどで簡単なWebシステムを作った経験があるのなら、それほど難しくないことは想像出来るだろう。
だいたいEXCELで入力するデータ程度なら、テーブルの正規化などのデータベース設計レベルを求められるわけではないのだから。
要するに基本的なASP.net(C#,Visual Basic)またはphpSQLが理解できればWeb調査も不可能ではない。
またCSVファイルの読み込みではなくても、MySQLなどの無料データベースを直接読み込む事も可能なので、手入力の手間と誤入力の回避、はたまた時間と場所を選ばない回答も可能となる。

RからDBに接続する方法(PostgreSQL, MySQL, SQLite)

※「私は質的研究しかしないから」と思われた方。
 今後は質的研究もRを使う可能性があります。
 例えば、Webサイトなどで評価コメントを参考にしてショッピングしたりすると思いますが、
 これらのテキスト情報を集めて客観的に解析するのも今後重要になってきます。
 要するに、Web上の意見を質的データとして収集し独立性の検定をしたり、因子分析で集約するとか。
 今後、心理学者たるもの数量化を避けては通れないのです。
※Webサイトなど文字情報をデータ収集及び解析する技術をテキストマイニングと言います。
 また「Web上の意見」とはいわゆるビッグデータのことで、直接データ入力しないデータを意味しています。
by jun_hara | 2016-03-26 07:57


<< So Long & Congr... 心理臨床の基礎総括 >>