jnobuyukiのブログ

研究していて困ったことやその解決に関するメモ。同じように困ったあなたのために。twitter ID: @j_nobuyuki

データリテラシー向上のためのブートストラップは何か?

今回は、統計や確率、データ解析についてもっと理解し、理解してもらうためのヒントについて考えてみます。最初に言いますが、結論はないです。

確率や統計の学習は難しい

統計やデータは確率という目に見えない概念を論理的、数学的に扱う必要があります。しかも日常的には使わないような論理の展開をすることがあります。例えば、統計学の主な手法の1つに統計的仮説検定があります。これは、言いたいこととは逆の仮定をわざわざ作って、それをさらに否定することで元の主張の正しさを示そうとします。日常生活でそんな面倒なことはしないので、これが自然に身につくというのは考えにくいです。それでも諦めずに使おうと努力しているといつか、使えるようになります。いったん身につければ、それほどの苦労もなく、統計に潜む論理やその実践方法が理解できます。問題はどうやって使いこなせるようになるかです。今回はブートストラップという考え方からこの問題を考えてみましょう。

ブートストラップって何?

ブートストラップというのは、ブーツを履くときに引っ張る紐もしくはつまみです。自分自身で自分を高く上げるという意味で比喩的に用いられます。*1
例えば、ことばの発達ではいろいろなブートストラップ仮説が提案されています。というのも、ことばの学習は
誰もが経験したことでありながら、その学習メカニズムはよくわかっていません。ことばがわからない人にことばで
ことばの使い方を教えても(ややこしいですね)学習は進まないように思えます。でも赤ちゃんは、周りの会話から
単語の意味や文法を見つけていつのまにか使いこなせるようになります。そこで何かしら、自分自身でことばに関する
能力を上げる仕組み、つまりブートストラップがあるのではないかと考えるわけです。例えば、文の抑揚(音の上がり下がりや強弱のリズム)なんかが連続した音声から単語の音の塊を見つけるのに役立つのではないかと言われています。

データリテラシー向上につながるブートストラップ

さて、統計や確率を効率良く理解するためのブートストラップにはどんなものがあるでしょうか。個人的な直感として提案します。

身近な例に頼る?

統計学の教科書にはよく用いられる例があります。二項分布ならコイン投げ(表が出るか裏が出るか)がよく例として用いられます。一様分布ならサイコロを振る例があります。正規分布は、身長や体重がよく使われると思います。これらの例そのものの理解は確かに簡単なのですが、人は日常生活でそんなにコイン投げたりしないし、サイコロも振ったりしないし、周りの人と身長を比べたりもしないですよね。そういう意味ではもっと自分が実際の日常生活にある事例を用いるべきです。例えば、中高生にとって、偏差値70以上を取るのには非常な努力がいるものだし、どんなに怠けていても偏差値30までは下がらないという確かな感覚を持っています。偏差値は、分布として平均50、標準偏差10の正規分布が仮定されています。確率として、偏差値70以上もしくは30以下になるのは全体の5%程度です。正規分布の性質を説明するときには、偏差値を例として挙げることで、「確率的にどれくらいありえないか」ということばの意味をよく理解してもらえると思います*2

生命の生き残りに関連した話題?

生き物はおそらく自分の生命を維持することに対して注意がむきやすいと考えらえるので、これを利用します。例えば統計パッケージ言語のRでは最初から組み込まれているデータセットがいくつかあって、その1つにタイタニック号に乗っていた人の残存数データがあります。どの客室に泊まっていたか、大人か子供か、男性か女性かなどの属性によって、生き残った人の数が違うので、自分の直感にあっているかどうかをこのデータセットを使いながら生存の確率を検証していくことができるかもしれません。

*1:解析手法のブートストラップ法というのもありますがこの意味ではないかもしれないです。

*2:先日紹介した結城浩先生の「数学ガールの秘密ノート やさしい統計」でも偏差値の例が扱われています

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