【心理学向け】プログラミングと統計解析のおススメソフト

こんにちは。

先日こんな内容のツイートがありました。

心理学の実験でプログラミングをしないといけないのですが、おススメの言語やソフトウェアはありますか?

 

確かに心理学の実験をするためにはプログラミングは重要です。そしてその後の統計解析も心理学には必要です。

というわけで今回はどういうサービスが心理学向けにおススメなのか?を回答していきます。

 

本記事は心理学部の人など「プログラミングとか面倒!ムリ」という人向けに書いています。

 

f:id:husbird:20191109214345j:plain

 

プログラミングと心理学ってなんの関係があるの?

臨床系では使う機会が少ないらしいですが、基礎系では「刺激(図とか)を提示してそれに対する反応を見る」というタイプの実験を行うことがよくあります。

こういう実験では「刺激の繰り返し」「刺激提示順序のランダマイズ」「反応時間計測」を適切に行う必要がありますが、もはや人の手作業ではムリです。

そんなわけで、現在の卒論ではプログラミングがほぼ必須の技術になりつつあります。

 

プログラミング

プログラミングが大事なのはわかりますが、現実として4年間で卒業する人が多い心理学専攻ではいちいち学習している時間がありません。ここでは比較的楽に学習出来て知り合いでも多くの方が使っている言語とソフトウェアをまとめてみました。

Python

今をときめくプログラミング言語。アプリケーション作成から機械学習まで幅広く利用可能な汎用性が強みです。もちろん参考書もたくさんあります。私の周囲でも、先輩方でPythonを使って実験を作る人は多かったです。

その高い汎用性とデータサイエンスへの強みがあることから、機械学習エンジニアにはほぼ必須になっている言語でもあります。

就活時のプログラミングスキルでも聞かれたので、プログラミングをやる以上多少はできないと就活でも難しいのかも...

Psychopy

Pythonの言語を使って心理学の実験を作るためのソフトウェアです。実験作成ソフトはたぶん他にもありますが、大きな特徴が2つあります。

  • 無料である
  • GUI*1なのでプログラミングをしなくても実験作成可能
  • 裏でPythonを直接書くことでさらに細かい操作が可能

特にプログラミングをしなくても実験作成ができるのは大きな特徴です。完全無料なので企業に就職後もこのソフトで実験を作ることができます。ただ、知名度が低いようで自社で使っている人を見たことがないですが...

まだまだ参考書は少ないですが、こちらのサイトがPsychopyによる心理学実験の方法について解説してくれています。

 
私の大学だけでなく、心理系の学会で他大の方とお話をしていてもPsychopyはとても人気です。50%近いシェアがありそうな気がする...


なお、学生時代の研究室で参考書を探してみたところ心理学実験にPsychopyを使おう!という触れ込みで次のような本が見つかりました。解説に使われているのが現行では使われなくなりつつあるPython2系であることや,そもそもプログラミング初心者向けには解説が丁寧ではないなどの課題はあるものの、類書が全くないため紹介します。詳しくはamazonのリンク先でご覧ください。

 

統計処理

心理学では大量にデータを収集するのですが,そのときには当然統計処理が必須。分析の前には外れ値や欠損値といった,使いにくいデータを適切に排除する必要があるのですが,この前処理は結構面倒くさいです。

ここでは前処理から実際の分析までやってくれる方法を解説してみました。

VBAマクロ(Excelによる前処理)

Microsoft系のプログラミングサービスです。分析のための前処理はRやPythonでもできるのですが,これらのサービスにはない特徴があります。
 
具体的には,面倒なプログラミングが必要最低限!ということです。RやPythonは開発環境の整備から始まり、習得にそこそこ時間のかかるプログラミングが必須です。RではRコマンダー(Rcmdrのパッケージ)を導入することでプログラミングを回避することもできますが、率直に言って使い勝手があまり良くないです。

もちろんExcelのVBAマクロはプログラミングが必須ですが、RやPythonに比べて少ないプログラミングでそれなりに便利な解析ができます*2

またExcelはGUIなので,プログラミングによる処理の結果をみて「あ,失敗した...」と思ったら適切な数値や計算式に修正することができます。


データの捏造は絶対にしてはいけませんが...
 
実際のところ、どういう風にコードを書いていけばいいのか?についてはこちらの本を参考にしてください。私も購入しましたが,とても分かりやすい本でした。繰り返し構文などの基本的なものはもちろん,ピボットテーブルの作成など 中級者向けの内容もあります。

R

フリーソフトなのが最大の強み,Rの開発環境であるR Studioも無料です。また参考書もたくさんありますし,その中には心理学専攻向けの本もたくさんあります*3

プログラミングが必要な言語ですが、Rcmdr(Rコマンダー)というパッケージを使えばプログラミングをなるべく回避しつつ、統計解析ができます。

SPSSと異なりフリーソフトであるため最新の分析手法や特殊なパス解析なども多数実装されているのも大きな魅力です。

また,分散分析など心理学でよく使う分析であればパッケージ(例えば井関先生のANOVA君など)を用いることでプログラミングの負担を大幅にできます。

やや不便ですが、Rで前処理することも可能です。


SPSS

IBM系の統計分析ソフトウェアです。お値段が高いもののサポートが充実しているのが強み。また大学生や院生の場合,アカデミックパッケージによって無料で使うことも可能です*4

値段は高いですがそこそこ参考書もあります。私の出身校ではないですが、他の大学だとSPSSを用いた統計解析の授業があるところもあり、大学における学習環境が比較的恵まれているのも魅力。

プログラミングをすることなく解析が可能ですが、表示を改善したり詳細な操作が必要な時はシンタックスを使うことで可能になります。

HAD

清水先生が開発した統計分析ソフト(?)です。Excelをベースにしているため、無償で導入することが可能ですし、2要因ANOVAを始めとした心理学でよく使う統計手法は一通り揃えています。

個人的には結構おススメなサービスなので解説記事を書いてみました。詳しくはこちらの記事をどうぞ。

まずはとりあえず触ってみよう

今回いくつかソフトや言語を紹介してみましたが、まずは触ってみることが大事です。SPSSのように有料のものもありますが、Rのように無料で使えるモノも多いです。大学を卒業してからは教えてくれる人も減るので、学生時代の今のうちに使い始めてみてはどうでしょうか。

こういった手法を活用することは大学院に進学するにしても、企業に就職するにしても意外に役に立つスキルだと思います。

*1:グラフィカルユーザインタフェースの略、コマンドではなくクリックなどで操作していきます

*2:もとから開発環境が整備されているのが魅力

*3:SPSSやPythonには心理学向けの本がないのが難点です

*4:卒業後は使えなくなります