この記事では、R言語でできること、SPSSなどのほかの統計ソフトとは異なる特徴やRを使うメリット・学ぶメリットなどを紹介したいと思います。
「R言語」って言うとちょっと長いので、ここからは本文中は「R」って言いますね。
R言語とは
Rは、ロバート・ジェントルマン氏とロス・イハカ氏によって開発された、主に統計解析に利用されるフリーソフトウェアのことです。
SPSSやSASのようなマウスクリックでメニューを選んで分析をするというよりは、「R言語」という名前の通り、プログラミング言語としての要素が強いツールとなります。
Rは誰でも無料で使うことができ、相関分析やt検定、分散分析、線形回帰分析といった標準的な統計手法の多くをカバーしています。
また、オープンソースのソフトウェアでもあるため、最新の統計手法についてもパッケージとして日々公開されており、「SPSSではできないけど、Rではできる」、というようなことも非常によく経験します。
そのため、心理学や社会学、医学系も含めてさまざまな研究領域でRが統計解析ソフトとして使用されています。
R言語の特徴
ここからはRの特徴について紹介します。
いろいろありますが、はじめてRを使ったときに他の統計ソフトとはここが違うな、と感じる点を2点紹介します。
コードを書いて分析を行う
Rを統計解析ツールとして使う場合の最も大きな特徴は、CUI(Character-based User Interface)、つまり、文字入力によって分析を行う点にあります。
例えば、SPSSの場合は、GUI(Graphical-based User Interface)であるので、以下の画像のように、マウスクリックで操作をしていきます。
一方で、Rでは以下の画面にある赤文字のように命令文を記述して分析を行います。
命令文はRScriptと呼ばれるメモ帳のようなものに1つずつ記述していって、分析のたびにそのスクリプトをRに読み込ませて実行していきます。
つまり、分析のコードを料理のレシピのように記述していき、そのコードを保存しておけば、同じ分析をいつでも簡単に再現することができるというわけです。
多くのR初心者が、この「コードを記述して分析を行う」、というところに敷居の高さを感じるかもしれません。
ですが、Rの記述方法は統計分析をメインの目的にして開発されていることもあってか、非常にシンプルであるため、慣れてくると、いつの間にかスラスラとコードが読めて書けるようになると思います。
また、研究でよく使われるような分析であれば、たいていは1行の記述だけで分析ができます。
そのため、慣れてくると、マウスクリックで操作するよりも、Rでコードを書いた方が早い場合もあります。
t検定や分散分析、相関、重回帰分析など基本的な分析は大体1行で書けます。
元データを読み込んで都度分析を行う
一般的な統計ソフトを使う場合、オリジナルデータとは別に、データファイルを分析ソフトにあったファイル形式で用意して、そのファイルにデータの下処理を加えたり変数を追加したりします。
Rの場合ももちろん、R上でデータの下処理や変数の追加などを行いますが、基本的にはRを立ち上げるたびに、オリジナルデータを直接読み込んで、スクリプトと呼ばれるRのコードを読み込ませて、変数の作成から分析まで一気に行うことになるので、分析使用用のデータセットとオリジナルデータを分けることはしません。
このことにより、ファイルがいたずらに増えることを防ぐだけでなく、データを後から追加したり修正した場合があっても、元データにだけ反映させれば自動的に、後の分析にも反映させることができるので間違いのリスクを減らすことができます。
元データと分析用データを分けていると、元データの修正後に、分析用データの修正も行わないといけないという形で2倍かかってしまいます。
R言語でできること
Rでは具体的にどのようなことができるのでしょうか。
以下に紹介することは、Rでできることのほんの一部にはなりますが、どれも研究を行ううえではとても役立つものです。
また、プログラミング言語の側面の強いRだからこそできる、Rが得意な側面もありますのであわせて紹介していきたいと思います。
データの前処理
個人的に統計解析にRを使用することの一番のメリットは「データの前処理」にあると思います。
データの前処理とは本格的な分析を行う前に行う処理のことです。
質問紙調査であれば、逆転項目の処理や尺度得点の計算であったり、極端な外れ値の処理などです。
Rには「dplyr」パッケージと呼ばれるデータの操作を便利に行うパッケージがあり、このパッケージに含まれる、mutate関数を使えば、変数の追加も簡単に行うことができますし、fileter関数やselect関数を使うことで、分析に必要なデータのみを抽出することも可能です。
もちろん、データセットを作成する際によく使われるえExcelやGoogleスプレッドシート上で変数を作成・追加することも可能です。
しかし、Excelやスプシでは、マウス操作が主になるので、どういった動かし方をしたかといった情報を1つずつ記録していくのは現実的に難しく、後から見返したときに追加された変数がどのように作成されたのかといったことがわからいことがあります。
マウス操作は記録に残すのが難しいので、後から見返したときに大変なのです。
一方で、Rではスクリプトを実行することでデータの処理を行います。
そのため、追加した変数の作成過程を残すことができ、後から見返す際の時間的コストがかからないのが魅力です。
データ解析
Rは統計解析が得意なプログラミング言語なので、様々な統計手法をカバーしています。
例えば心理学の研究でもよく使うようなt検定や分散分析、重回帰分析や因子分析(カテゴリカル因子分析も含む)、クラスター分析はもちろん、医療分野でよく使われるようなROC解析、生存期間解析なども使えます。
また、クラスカル=ウォリス検定やマン=ホイットニーのU検定といったノンパラメトリック検定も行うことができます。
私も、つい最近マン=ホイットニーのU検定は利用する機会がありました。
商品として販売されている統計ソフトは基本的にはその統計ソフトに備わっている分析手法しか使えないことが多いのですが、Rの場合はフリーのプログラミング言語という側面があるため、デフォルトの関数として備わっていない分析も、たいていの場合、無料で公開されているパッケージをインストールすることで使うことができます。
ウェブ記事やYouTubeで「分析手法 R」で検索したりすると分析手順が紹介されていることが多いです。
最近だとChat-GPTに聞くという手段もありますね(今後はそっちが主流になるのかな?)。
結果のアウトプット
一般的な統計ソフトでは、分析結果として出力されたものをExcelに貼り付けてグラフを作成する必要がありますが、Rでは分析結果をまとめるうえで欠かせない図表の作成についてもしっかりカバーされています。
そのため、分析~結果のアウトプットまですべてR上で完結することができるのは、とてもありがたいです。
グラフの作成には、デフォルトで備わっている関数でも出力することはできますし、ggplot2というパッケージを使えば、層をいくつか重ねて、綺麗なグラフを作成することができます。
(図はRに入っているirisデータを使ってデフォルトのplot関数(右)、ggplot関数(左)で作図したものです。)
R言語を学ぶメリット・使うメリット
ここからは、Rを使うメリットや、学ぶメリットについて個人的に感じる点について紹介します。
分析の過程を残せる
先述している内容でもありますが、分析の過程をスクリプトに残せるというのは非常に大きなメリットです。
GUIベースの統計ソフトでも分析コードを結果に残せる機能を実装していますが、マウスクリックでポチポチ編集できると、肝心なところで記録を残し忘れていたり、あれこれ分析を試してみた結果、何が必要なものか見返してみてわからないことがあります。
一方で、Rであれば、データの前処理やグラフ作成も含めた分析医の過程をすべてコードに残せるので、非常に大きなメリットです。
複雑な処理を通して試行錯誤しながら分析をしたいという方はRを使うと良いかもしれません。
相手のパソコンのOSとの相性を気にせずに使える
Rは特定のOSに依存しない仕様になっています。
そのため、Windows、Mac、LinuxといったOSに依存せず、同じデータで同じスクリプトを走らせれば基本的には同じ結果が出力されます。
このことは、共同研究を行う上で、相手の実行環境によらずに結果の共有や分析手順の相談ができるというメリットにつながります。
分析に役立つ豊富なパッケージが無料で使える
通常、製品販売されている統計ソフトや表計算ソフトでは、インストールしたソフトのバージョンで実装されている機能しか使用できません。
中には拡張機能として追加インストールすると使用可能な機能もありますが、有料だったりします。
Rの場合は、オープンソースのフリーソフトウェアという位置づけでもあるため、世界中の人が様々な機能を開発し、それをパッケージとして一般公開しています。
そのため、誰でも無料でインストールして使用することができます。
「こういう結果を出力できたら楽なんだけど、そんな便利な機能はないのかな?」
というような、日常の中で感じる些細な疑問はおそらく、ほかの人も感じている疑問になります。
そして、その疑問を解決してくれる神みたいな人もまた、世界中のどこかにいます。
私は最近、持っているデータの要約を一瞬で出してくれるgtSummaryという機能を知って、分析でとても重宝しています。
プログラミングの基本的な理解にも役立つ
Rは正確にはプログラミング言語の1つになります。
そのため、変数やデータ型といった概念の理解はもちろん、必要に応じて繰り返し処理(for文)や条件分岐(if文)といったものも使っていきます。
プログラミング言語の学習には多くの時間がかかりますし、挫折する人も多いのですが、その理由はおそらく、プログラミング言語の多くが利用範囲が広すぎるため、学ぶ目的が曖昧になりやすいことではないかなと思います。
一方で、Rを使おうと考えている方の多くは、「卒論で結果を分析する必要がある」といったように目的が明確な場合が多いと思います。
Rはデータ分析に特化した仕様になっているため、プログラミング言語としての学習難易度はそこまで高くないので、自分自身の目的とプログラミング言語の相性の良さから、必然的に目的を達成するための道筋が見えてきやすくなります。
そういった点では、現在学生で、将来的にプログラミングもできるようになりたいけど、明確に何か作りたいものがない、という方は、授業の課題や論文作成のツールとしてRを学ぶことでプログラミングの基礎も学べると思います,
R言語の始め方
Rはコンピュータさえあれば、無料ですぐに使用ができます。
特定のOSに依存しているわけではなく、Windows、Macはもちろん、Linuxも使用可能ですので、少しでも興味がある方はぜひ使ってみてはいかがでしょうか。
Rに関するインストール手順は以下の記事が参考になると思います。
まとめ
この記事では、Rの特徴や学ぶメリットを紹介しました。
Rは専門的な分析手法が使えることはもちろん、データ分析の第1歩である基本的なグラフの出力はもちろん、データの前処理まで含めて実施可能な点は大きな特徴でありメリットの1つだと思います。
Rの中には、サンプルデータがいっぱいあるので、手元に分析に適したデータがない場合でも分析の勉強もしやすいと思います。
また、ウェブ上にも色々な役立つ記事が公開されているので、自分のやりたい分析方法に関する紹介記事を参考に実際に動かしてみると良いと思います。
ぜひこの機会にRを使ってみてはいかがでしょうか。
この記事が少しでも皆様のお役に立てれば幸いです。