jnobuyukiのブログ

JavaScriptとR言語を中心に研究活動に役立つwebアプリケーション技術について考えていきます。twitter ID: @j_nobuyuki

RStudio バージョン1.0でインタラクティブな解析

今回は、R言語を便利に操作するためのアプリケーションRStudioについてです。いよいよバージョン1.0になったRStudioにできた新機能を試してみます。

Rmarkdownファイルを利用した解析(旧バージョン)

RStudioの便利機能の一つにRmarkdownファイルによる解析があります。R言語のデフォルトGUIでは、解析の手順や説明などのテキスト、解析スクリプトとその出力結果、グラフがすべて「別のファイル」として保存されます。あとで結果を見ながらレポートや論文を執筆する際に、スクリプトとその結果をどうにか関連づける必要があります。Rmarkdownファイルを使うとこれをすべて「1つのファイル」で管理し、すべてを1つの HTML、PDFファイルに出力できます。

旧バージョンの問題点

上で書いたようにとても便利な機能を持つRStudioですが、旧バージョンには1つ問題がありました。それは少しでもRmarkdownファイルに変更を加えたらファイル全体を再計算しなければならないことです。小さい解析であれば、再計算の手間はそれほどかからないので、毎回 PDFファイルを作れば良いでしょう。しかし、1回のファイル生成に何分もかかるような大きな解析ファイルでは、1行変更を加えるたびに変更を加えていない箇所まで再計算すると無駄な時間がどんどん増えてしまいます。これを防ぐには、Rの解析コードの結果をチャンク単位で出力できればいいわけです。そのような表示機能は既にjupyterやbeaker notebookなどが実装しています。なので、少し規模の大きな解析になると、そちらのアプリケーションを使わざるを得ませんでした。

RStudioでもインタラクティブな解析が可能になりました

アップデートされたRStudioでは、いよいよインタラクティブな出力表示ができるようになりました。やり方は非常に簡単で、チャンクの右上にある緑の三角ボタンを押すだけ(ショートカットはshift+command+return)です。ボタンを押すと出力結果がチャンクのすぐあとに表示されます。これで、ファイル全体の再計算なしで、必要な箇所のみの改変が簡便に行えます。

Rを使うためのアプリケーション: jupyter vs. RStudio vs. Beaker notebook

Rを便利に使うためのアプリケーションとしてjupyterとRStudioとBeaker notebookが台頭し、アプリケーション間の差がどんどん縮まってきているように感じます。今の所、最終的な結果を PDFファイルとして欲しければRStudio一択だと考えていますが、それも近い将来jupyterやBeaker notebookでエラーのない実装ができるかもしれません。ユーザーとしては便利な機能をしっかり使いこなせるように練習が必要ですね。

「数学ガールの秘密ノート やさしい統計」の感想(2)

今回も「数学ガール秘密ノート やさしい統計」の感想を書きたいと思います。

第4章 「コインを10回投げたとき」

この章では、コインの表が出るか裏がでるかという2つの事象の確率を2項分布で明らかにしていきます。「数学ガール」では、問題への取り組み方にキャラクターによる違いがあって、それが良く見える構成ですね。

「力技」のテトラちゃんは、実際にコインの出方を見ながら「10コインを投げたときの表が出る回数」の期待値を計算していきます。ただし、テトラちゃんも以前よりもいろいろな技が増えてきていて、今回はパスカルの三角形の利用して効率よく確率を計算していますね。「力技」のテトラちゃんに対して、「公式から探索する」「僕」は2項定理による期待値計算を試みます。キャラクターによる取り組み方の違いは、実は第5章まで続いています。「無駄のない教師」のミルカさんは2項分布の期待値の一般化された形式をあっさり導入するからです。統計学の教科書では、最初から一般化された式を紹介する場合が多いと思いますが、こうやって、同じ現象を「力技」「2項定理」「公式」と異なるアプローチで眺めてみると面白いですね。学ぶ側からすれば、手を替え品を替えといった説明からコイン投げという事象を多面的に理解できます。説明の全てを理解できないとしても、どれか一つでも納得できる説明があれば、コイン投げという事象について一定の理解に辿りつけます。

第4章でもう一つ特筆すべきことは、標準偏差を計算していることです。これは、次の章への伏線になっています。それと同時に、期待値(平均値)を計算するだけではデータ解析として不十分で、データのばらつきについてもっと考えようというメッセージになっていると思いました。

第5章 「投げたコインの正体は」

数学ガールシリーズは、最終章のハードルが高いことが特徴的なのですが、本作品の第5章もそれが踏襲されており、なかなか歯ごたえがあります。内容としては前章からの続きでコイン投げで、まず、2項分布が導入されます。ここから2項分布の正規分布による近似へと議論が発展します。さらに、記述統計から推測統計への移行や統計的仮説検定の手続きも紹介されています。高校生の数学という観点からするとするだいぶ背伸びの内容なので、議論をスムーズに展開するうえでミルカさんのリードが大事になりますね。第5章は、ぜひ、じっくりと時間をかけて読むべきです。個人的には、最後に展開されている統計的仮説検定は、別の章として独立させた方がいいかもしれないなと感じました。

この章で特筆すべき内容は、統計的仮説検定でどうデータを解釈するのかの説明です。いわゆるp値を計算するのですが、それを「驚くべきこと」と判断するかどうかとして解釈しています。データについて統計量からp値を計算する過程で、その意味がよくわからなくなる人が多いと思うのですが、「驚くべきこと」という説明方法はわかりやすくて良いなと思いました。

エピローグ

数学資料室での少女と先生の会話です。数学資料室って大学なのでしょうか。内容的には、正規分布確率密度関数が導入されており、ちらっと二階微分による変曲点の計算まで述べられています。数学科の統計学なら扱う内容だと思いますが、社会科学分野の学科ではここまで扱えませんね。この内容を理解するには、ある程度微分積分の練習を積んでいる必要があります。

全体の感想

数学が好きな高校生、大学1年生に統計学を紹介するならこの本しかないなと思える内容になっていました。あえて続編やスピンオフをリクエストするなら、次の2点を期待したいです。1つは中心極限定理です。推測統計を扱う上では大事な定理の1つなので、ぜひ「僕」やミルカさんによる中心極限定理の議論をぜひ聞いていみたいです。もう1つはシミュレーションによる公式・定理の検証です。数学ガールにはリサちゃんというキャラクターがいます。リサちゃんはコンピュータを使える子で、「乱択アルゴリズム」という作品ではアルゴリズムが丁寧に議論されています。ぜひリサちゃんに登場してもらって、2項分布、正規分布を仮定した乱数生成(ランダムサンプリングの重要性など)やそれを利用した公式、定理の検証を扱ってほしいなと思いました。

「数学ガールの秘密ノート やさしい統計」の感想(1)

今回は、統計学を扱った書籍の感想を2回に分けて述べたいと思います。タイトルでわかる通り、数学ガールの関連書籍で、メインのシリーズというよりは中高生向けのシリーズと認識しています。
そう、著者は結城浩先生です。書評というよりデータリテラシーとのつながりを考えた上での感想です。ガール的な要素のネタバレはしないように心がけますが、各章の概要には触れますので、ご注意ください。

結城先生は統計学をどう扱うのか?

この本を読む前の最大の興味は、結城流の統計学紹介とはどんなものなのかでした。読んでみてわかったのですが、この本は「数学ガール(と僕)からみた統計学の世界」が描かれています。中高生向けのシリーズの1冊として執筆されているのだから当然とも言えますが、このレベル設定が非常に良いと感じました。なぜなら「世間一般の認識」にとても近いと思うからです。もう少し具体的なイメージとしては、「中学、高校は割と理系だったが、大学で統計学関連の科目を取っていない、取らなかった人」です。このような人たちのデータリテラシーを向上させられれば、データがもっと社会で利用されるようになると思います。

第1章 「グラフのトリック」

第1章はグラフで表す便利さとトリッキーさの話です。グラフの作り方ではなく、グラフでどうやって嘘をつくのかに注目しているところがポイントですね。そして、グラフの表面的なメッセージを安易に受け取るのではなく、自分で考える(解釈する)ことが大事なんだと教えてくれています。社会全体のデータリテラシーが向上するには、これがとても大事だと思っているので、このメッセージに非常に共感しました。

第2章 「平らに均す平均」

第2章はいわゆる記述統計量のまとめになっています。平均、中央値、最頻値の3つの代表値に加えて、最大値、最小値、そして分散とデータの特徴を示す指標が一通り扱われています。あとはこれに四分位かパーセンタイルをつけたい気もします。いろいろな用語を出し過ぎて、混乱を招かないようにといった配慮がなされているのかもしれません。あとは、代表値の使い分けについても多少述べられていますね。ここでも、使い分けるためには「何のために代表値を求めるのか」をよく考えようというメッセージを感じます。

第3章 「偏差値の驚き」

第3章は分散(とその平方根をとった標準偏差)を計算する意味から正規分布が紹介されるまでになっています。実例として「偏差値」があげられています。確かに高校生って偏差値に馴染みのある年頃なので、これを使わない手はないですよね。ただし、一般的なデータの扱いへとつなげるためには偏差値ではなく、「標準偏差何個分か」という標準化の考え方ができた方がいいです。この点もしっかり意識されているところがすばらしいと思いました。

一気に読めたのがここまでなので、前半はここまでにします。

統計学の用語のややこしさ(2)

前回に引き続き、今回も統計学の用語で「言い方が違うのに指している内容は同じ」ものを紹介します。

## 回帰分析の原因と結果に関する変数の名前
統計学で利用される分析方法の1つに回帰分析があります。回帰分析では、ある事柄の程度を示す数値を予測するために1つまたは複数の事柄の程度を表す数値を利用し、その予測の程度を検証します。言い換えれば1つもしくは複数の原因となる事柄で結果となる事柄の予測を行います。今回の話題と関連しないので、分析方法の詳細は書きませんが、どんな分野でもよく使われる分析方法の1つです。この「どんな分野でも使われる」というところが実はポイントで、使われる分野によって、以下のように原因と結果を表す変数の呼び名が異なります。

  • 原因となる変数の呼び方:独立変数、説明変数、予測変数
  • 結果となる変数の呼び方:従属変数、目的変数、応答変数

それぞれ指している内容は同じでも、言い回しが少し違います。本来のどの呼び方をすべきかという議論もあるのですが、ここで大事なのは、呼び名が違っても同じものとして扱えることです。前回同様、複数の本や論文を比較するとには注意したほうが良いでしょう。

統計学の用語のややこしさ(1)

今回は、統計学やデータリテラシーで使われる用語のややこしさについて書いてみたいと思います。

## 統計学の用語
どんな専門領域でもその領域で通じる用語というものがありますよね。細かい言い回しを一言でまとめられれば、話の進みが早くてすみます。ただし、その用語を正しく理解していないと思わぬ誤解が生じてしまう可能性もあります。統計学も専門用語を駆使する領域の一つなのですが、独特のややこしさがあるように感じています。それは「専門用語にもかかわらず、同じ内容を違う表し方をする」ということです。一般に、専門用語は定義が存在するので、違う用語があれば、違い意味・用法で使われるだろうと考えがちですが、統計学やデータリテラシーではほぼ同じ内容を表すのに違う表現になることがあります。

なぜこうなるかというのを考えてみました。原因の一つはおそらく、統計学を利用する人の専門性の違いです。例えば心理学とか生物学とか経済学などの分野では典型的な表現が異なることがあります。そのほかの原因として、研究者による用語の再定義も考えられます。ある理論を提唱する統計学者は同様の内容も違う単語で再定義し、自分の理論内では、一貫してその用語を使っているということがあるように思えます。本人は一貫していたとしても、別の理論で同じ内容が異なる用語で呼ばれているのは混乱の元です。

## 変数の性質を表す用語
同じ内容を異なる表現で表す例として、変数の性質に関する表現があります。変数の性質、例えば、その変数の量は足し算や引き算が可能が不可能かなどです。これは、現象の理解や適切な統計手法の選択に関わる重要な事柄ですが、それを表す用語は様々です。

  • 量に関して、足し算や引き算が出来るようなもの: 量的変数、数量データ、間隔尺度データ、連続変数、連続量
  • 量に関して、足し算や引き算ができないもしくは無意味なもの:質的変数、質的データ、名義尺度データ、カテゴリー変数、カテゴリーデータ

この二つの区別は、非常に大事なのにもかかわらず、それぞれ表現がいろいろあります。文脈に応じて使い分けることもあるかもしれませんが、ほとんどの場合において、ある表現は、別の表現へと入れ替え可能です。このことを覚えておくと、ある本と別の本では、同じような内容が別の表現を取られているのを見た場合、細かい違いを探さずに、「まあ大体同じ内容のようなので、表現のちがいだけだな」ととりあえずの理解をできます*1統計学というと数学の一部なのだから、がちがちの定義が並んでいるんだと思いがちですが、初学のうちはあまり悩まずにいろいろな記述を読み進めるというのも大事なように思います。

*1:あとになってから「実はぜんぜん違う意味だった」ということもあるでしょう

大学生への教育を教員による「知的なクローニング」と考えてみる

今回は、大学教育というか教育一般について思うことを書きます。

学生は何を学ぶんだろう?

近年、学生による能動的な学びを促す仕組みが含まれる教授法をアクティブラーニングと呼び、大学をはじめとする高等教育機関で試行錯誤が続いています。学生がぼーっと教授の話を聞くようないわゆる座学が授業だった時代ではもうないようです*1。教員の側も、この状況の変化についていけるように、何をすべきかを考えて、どんどん学ばなければなりません。安定した教授・学習の仕組みが良くも悪くも崩壊した今、改めて教育とは何かを考えるタイミングになったのかなと思っています。

学びの内容を統制できない問題をどうするのか?

アクティブラーニングは、学習者の能動的な学びを促すことに重きが置かれており、ある決められた知識の全てを学ぶことを保証していないように思います。講義で網羅的にコンテンツを取り上げたところで、どうせ全てを学び取れる人はそうそういません。だから、まぁアクティブラーニングになったところで実際に学ばれる内容の幅は変わらないかもしれない。ただ教える側にたってみると「何を学んでいるのかわからない」という状況が不安を呼びます。もしも学生たちがその場その場だけで活動するだけで何にも学んでいなかったらどうしようという気持ちになります。義務教育ではないんだし、何を学ぶか、学ばないかは個人の自由だと思われる方もいるかと思います。しかし、大学には「研究推進」という側面もあり、研究室所属の学生は貴重な共同研究者でもあります。学生に研究を任せられるだけの素養を養ってもらうことが質の高い研究体制の維持の前提となっています。

むしろ教員側がアクティブになったらどうなるか?

そこで、もっと教員がアクティブに指導する体制はどうなのかなと考えてみましょう。学生の自由な発想自体は尊重しますが、研究者である教員自身が研究の動向、難しさ、成功の見込みなどをどのように捉えているのかをオブラートに包むことなく学生に伝えてしまいます。さらに、自分が持っている知識・スキルを学生にオープンにして、教員がやらなくてもいい作業を増やしていく。教えるのに多少の時間はかかりますが、大学院生になれば腰を据えて研究に取り組んでくれる(と期待したい)ので、使った時間以上の進捗を示してくれる(これも期待したい)でしょう。一言でいうなら「知的なクローン」を作るイメージです。

完全なクローンにはならないがそれでよい

学生は、一人の教員だけにつくわけではないですし、自分自身の興味もあるでしょう。なので、完全なクローンにはならないことははっきりしています。しかし、そうであるからこそ、教員が気づかなかったことに気づくかもしれないし、良くも悪くもですが、突然変異的な研究が生まれてきます。

*1:もちろん全ての科目がアクティブラーニングというわけでもありません。また、座学による教授がもっとも効率がよい場合もあります

データの散らばりは誤差にも情報にもなる

今回は、統計を使い始めの人が「ややこしい」と感じそうな話です。

データの散らばりとは

社会科学でも自然科学でも何かデータをとって(難しい言葉使いだと「実証的」)、そのデータから自分の考えを主張したい場合があります。このときデータは、2回以上測ります。なぜかというと、測るたびに値が異なる場合がほとんどだからです。測るたびに値が違う理由にはいろいろあって、「測る条件が毎回微妙に異なる」「測定装置の精度の限界」「実は全く違う条件が混ざっている」などなどです。そして、2回よりももっとたくさん測ることで、データは分布として考えることができます。

データの分布を表す3要素

データの分布は「形」「位置」「散らばり」で特徴付けられます。

「形」

形は全体的な形です。代表的な確率分布である正規分布は左右対称の山形です。サイコロの目の1から6がどの程度の頻度で出現するかというような場合には一様分布が想定されます。

「位置」

位置はその分布が測定に使う指標の中でどこに位置しているかを示します。正規分布だったら、その真ん中の値で代表とします。これは分布の平均値に対応します。

「散らばり」

散らばりは、データの出方が毎回どの程度異なるかを示します。分散や標準偏差といった指標が使われます。これらの指標が大きいほど、平均値からずれの大きいデータがたくさんあることを示しています。

散らばりは誤差です

上の説明にあるように、分散や標準偏差が大きい場合は、平均値からのずれが大きいことを示しています。例えば、ある測定条件やあるグループについて、1つの数でその性質を説明する場合に平均値を使うことが良くあります。しかし、実際には、全員が平均値と同じ値をとっているわけではありません。それでも、その条件やグループの測定を全て同じとみなして、1つの点で表現しています。これを逆に考えれば、散らばりの大きさはその1つの点の確からしさに影響していて、散らばりが大きいほど、1点で表現するのに無理があるようにも見えます。つまり、散らばりの大きさが誤差の大きさに対応しています。

散らばりは情報にもなります

上で述べてきたように、分散や標準偏差は平均値からのずれの指標です。これらの値が大きいほど、一つ一つの値の異なりが大きいとも考えられます。値の異なりが大きければ、それらを簡単に区別できます。こんな風に考えると、散らばりが大きい方が、一つ一つの個体の違いが良く分かると言えます。個体の違いを表すものは個体の情報なので、散らばりそのものが情報の量に対応しているというわけです。例えば、入学試験での合否の判定や順位付けなどではこの考え方が活きてくるので、ばらつきが大きい試験の方が、受験者の能力を判定する上でよいテストとなります。

まとめ:味方によって誤差にも情報にもなる

以上でみてきたように、個体ごとのデータの散らばりはときには誤差として、小さいほどよいものとなります。その一方で、データの散らばりを情報とする見方も可能で、この場合は大きいほどよいものとなります。いずれにしても散らばりの程度を適切に評価していくことが重要です。