統計のための専用ソフト「R」
数字の羅列をじっと見つめたところで私には何も分からないので、表計算ソフトのExcelなどを使ってみるのだけど、それらがこしらえるグラフを見てもPCの前で首をひねるばかり。たぶん理由は二つある。
まず、そもそもの問題として、私が統計のことを何もわかっていない。これはかなり深刻だ。データサイエンティストなんて肩書きを持つ人が続々と登場しているのに、おいてけぼりじゃないか。人生はまだ長いし、数字とは(イヤイヤながら)いっぱい出合うのに、それでいいのか。
二つめの理由は、ひょっとしてExcelたちはグラフを作ることが得意ではない……?という疑いだ。いや、失礼を承知で言ってます、すごくお世話になっているし、大好き。でもね、ブルーバックスの図表で見かけるようなグラフを作ろうとすると無理なんですよ。果てしない手間がかかる。世の研究者たちはExcel魔神なんだろうか。
と思っていたら、『統計ソフト「R」超入門〈最新版〉』にこんなことが書かれていた。
たとえば,企業で商品の売り上げをあげるための方法を検討するとき,経験や勘だけに頼るのではなく,市場調査などのデータに基づいた根拠が求められます。そのようなデータ解析に必要な計算やグラフ描画には,コンピュータのソフトウェアを利用することが必須ですが,手軽なExcelやNumbersなどの表計算ソフトを使っている人が多いのではないでしょうか。しかし,本格的な解析には操作の手間がかかりますし,出力されるグラフはプレゼンテーション用として満足できる品質とはいえません。
やはり……。ということで『統計ソフト「R」超入門〈最新版〉』の門をくぐったわけだ。
『統計ソフト「R」超入門〈最新版〉』は、世界中の研究機関や企業で使われている無料の統計ソフト「R」の操作手順を通して、統計学の最初の一歩に導いてくれる本。2018年に初版が出版された。このたび統計ソフト「R」のバージョンアップや、読者からの要望や質問を反映させて改訂された。5年もあればコンピュータもソフトウェアも変わってしまうからありがたい。
「R」のインストール方法から解説があります
本書は「R」と「R」を簡単に操作するために役立つ「Rコマンダー」のインストール方法からスタートする。
私はグラフィカルなスマホアプリに慣れきっているので「R」を起動しただけで面食らった。でも本書は「できる」と背中を押してくれるし、ひたすら音読しながら操作を進めていく。「えーっと、Rコマンダーメニューから『データ』を選んで、『パッケージ内のデータ』を選んで………」といった具合だ。たどたどしい操作でもグラフがきちんと出力されると、生まれてはじめてインターネットを触った頃の感動を思い出す。なつかしい。
こちらは「R」に付属しているサンプルデータをもとに、私が初めて出力したグラフだ。右にある数字がデータ。あまりにうれしかったので記念撮影した。
「おおっ!」と声が出るので、ぜひやってみてほしい。
本書の読者用に設けられた特設サイトで提供されているサンプルデータを用いて実際に「R」の操作を試しながら読み進めていくと、「なるほどねえ」となって、とても面白い。
このサンプルデータは、医療機関の外来を受診した患者の心理的ストレスに関する無数のデータだ。本書は、このデータを具体例として用いながら「R」を使って、ストレスの要因や患者の行動を分析する。年齢、性別、ストレス度、いろんな変数から特徴や相関を見つけて、要因を特定するのだ。
〈最新版〉用に作られたサンプルデータはMac版も用意されているのでうれしい(Macには非対応だった旧版のファイルをMac上のRで使うと一部が文字化けするんです)。Mac版のデータは変数名が半角の英語(1バイトの文字)で記されているので、本書の309ページからの変数対照表を確認しながら「R」にトライするとよいです。
データ解析の流れ
本書は「超入門」なので、変数ってそもそも何なの?というところから解説してくれる。
変数の種類によって,利用する統計手法が異なりますので,自分が扱う変数の種類を確認する必要があります。変数はとる値が数値か非数値かによって,つぎのように2種類あります。
数値をとる場合 年齢のように数値で表される変数を,数値変数あるいは量的変数といいます。(中略)
非数値をとる場合 性別や血液型のように分類のカテゴリーを表す変数を,非数値変数,質的変数,カテゴリカル変数,因子などと呼びます。
そしてデータ解析の流れは次のよう。3ステップある。
第1段階で,各変数の分布の性質に応じて,必要ならば数値変数の変換やカテゴリー化,因子の再カテゴリー化などをします。あわせて,外れ値(ほかのデータより極端に大きな値または小さな値)の有無を調べます。
第2段階で,変数間の相関や関連について調べます。(中略)
第3段階で,要因の影響の大きさを推測するために回帰分析を適用して,現象を記述するモデルを求めます。現象の結果を表す変数を目的変数,要因を表す変数を説明変数と呼びます。
超入門とはいえ、超初心者の私は第2段階あたりから次第に不安になってくるが、こういうのは写経と一緒だ。サンプルデータと本書とパソコンを行ったり来たりしながら、本書の言う通りに操作して、出力したグラフから何を読み取ればいいかの解説を読む。
あれこれ試していくと、程なくして「R」のすごさがわかる。たとえばデータ解析の第1段階に相当する「第5章 データの特徴を探る」のドットチャート。年齢区分でグループ分けしたストレス反応得点(うつ、不安などの心理的ストレスの大きさを表す値)の相関を見るための表が一瞬で作れる。
ほんと一瞬! Excelと格闘したことのある人ならRの威力がしみるはずだ。
実際にやってみた様子がこちら。
で、グラフができたよバンザーイと喜んでいるだけじゃ全然意味がないので、グラフから読み取れることも本書は解説してくれる。
年齢とともにストレス反応得点が減少している傾向がみえます。
ここで自分が出力したグラフを指でなぞりながら「ああそういうことね……」と覚えていく。
やがてこんなふうに相関を調べるグラフも作れるようになる。こちらは性別で分けた「日常苛立ちごと」と「ストレス反応」の散布図。
X軸(日常の苛立ちごと、DailyHassleScore)の値は、グラフ出力時のオプション設定で次のような工夫を施している。
「x変数にゆらぎを与えて表示」および「y変数にゆらぎを与えて表示」は,同じ観測値をプロットした点は重なるとグラフの傾向を読み誤るおそれがあるので,観測値に小さなノイズをランダムに加えてプロットの点がずれるようにするオプションです。データが多い場合や,離散値をとる変数の場合に役立ちます。
グラフを作ってみたら黒い点が団子のように集中してしまって「?」となった覚えがありませんか。私はあります。
ではこのグラフはどう読めばいい?
男性より女性においてストレス反応が少し高いですが,「日常苛立ちごと」と「ストレス反応」の関係性は類似しています。
そうか、これは「類似している」と判断していいんだ。こうやって実践してはあんばいを掴んでいくレッスンが無数につまった本だ。実践に最もページを多く割いている。
最終的にこんな分析にも触れられる。
回帰分析は,現象のメカニズムや因果関係の解明,予測をするために利用される重要な手法です。
(中略)
回帰分析によってデータから,トレス反応を目的変数とし,要因を説明変数とする両者の関係を記述する式(これを「回帰モデル」と呼びます)を求めます。モデルの候補はたくさん考えられます。その中から現象をよく説明できて,目的変数の予測に優れる「良い」モデルをいかに探るかがポイントになります。(中略)
さらに回帰分析では,データから回帰係数などの回帰モデルのパラメータを推定した後,モデルが妥当か否かについて吟味する「モデル診断」を行います。
ここで怯(ひる)まず読んでいくと、「この変数は要因になりそうで怪しいな」といったことがちょっとずつ分かっていく。繰り返しになるが、写経をする気持ちで実践を重ねる本なのだ。
手順に沿ってぽちぽちと「R」を操作して、出てきた数字とにらめっこして、解説を読む。1文字1文字が命綱! インストールであたふたしていたころを思い出すと、遠くまで来ちゃったなあと思った。
もちろん、本書は練習データだけでは終わらない。みずからデータセットを準備する方法も解説されているので、実際の仕事でも役に立つはずだ。ネットでハウツーを検索するだけでは絶対に身につかない知識に出合える。そして「やりかたを覚える」と「学ぶ」は別の行為だけど、とても深く結びついていることも実感できる1冊だ。
レビュアー
ライター・コラムニスト。主にゲーム、マンガ、書籍、映画、ガジェットに関する記事をよく書く。講談社「今日のおすすめ」、日経BP「日経トレンディネット」「日経クロステック(xTECH)」などで執筆。
twitter:@LidoHanamori