今回は,この連載の第7回「t検定による問題解決,Rで実践できますか?~データサイエンティストの統計学─倉橋一成からの問題」の解説編です。そもそも「検定」とは今回は,統計学の最も基礎的な手法の1つ,「⁠検定」に焦点を当てた問題でした。検定とは,ある仮説が統計的に正しいかまちがっているかを確かめる手法です。データには常にばらつき(誤差)があるため,統計学を使って議論するのです。統計学では基本的に,取得したデータには「母集団」と呼ばれる,データの源となる集団があることを仮定しています(この仮定が統計学の難しいところでもあります⁠)⁠。その母集団からランダムサンプリングされて記録されたのが,手元にあるデータなのです。そのことをわかっていただくため,今回はまずA~C群があって,そこからランダムサンプリングしてデータを作る,という過程をRで実践してもらいました。使われるのは「t検定」と呼ばれるもので,2つのグループの平均値が等しいかどうかをチェックできます。今回の問題では,身長の平均値が等しいかどうかをチェックしてもらっています。~問1のポイントある集団の特性を知ろうとしたとき,その集団をすべて調査しなくても,ランダムサンプリングをすることで推測することができます。A,B,C群の身長の平均値に違いがあるかどうかをチェックするためには,A~C群からランダムサンプリングを行い,t検定を行えば良いのです。Rでは,sample()という関数が用意されているので,それを使ってランダムサンプリングを行います。ポイントは,毎回同じ人をサンプリングするために,set.seed()を使って乱数の種を固定することです。正確には,replace=FALSEのオプションを入れることで,重複サンプルを防げます(デフォルトでFALSEになってます⁠)⁠。問1の解答は以下のとおりです。100)]この問題には,回答者16人みなさんが正解されていました。~問2のポイントA群とB群からサンプリングしたデータの平均値を検定するときは,t検定を行います。Rでは,以下のようにt.test()関数を利用することで,A群のサンプルとB群のサンプルの平均値をt検定できます。heightBSmple)t検定では,比較する2群の分散が「等しい」と仮定するか,もしくは「等しくない」と仮定するかを選択します。2群の分散が等しいかどうかはわからないことが多いので,「⁠等しくない」と仮定することが多いです。この仮定をおいた検定を「ウェルチの検定」と呼ぶこともあります(正確には,2群の分散が等しいかどうかを検定してから,t検定をどうするか決めることもありますが,説明がややこしいのでまたの機会に......⁠)⁠。ちなみに,分散の仮定をどうするかは,t.test()関数のvar.equalオプションで選べます。デフォルトはFALSEなので,ウェルチの検定です。t.test()関数を実行すると,P値が計算されます。P値は慣習的に,0.05未満だと「有意」と判定します。,「⁠2群の平均値が異なる」と判定されます。今回のサンプリングデータでは,以下のように判定されました。有意この推測は,真の状態を正しく表しています。データ作成とサンプリングを行う前に,set.seed()で乱数を固定した解答者は,同じ結果になっていました。問2の解答は以下のとおりです。~問3のポイントここで1つの疑問が出てきます。サンプリングしたデータでは,本当に正しく推測できるのでしょうか?今回は正しかったわけですが,本当にいつも正しいのでしょうか。それを確かめるために,擬似的に1,000回サンプリングと検定を繰り返してもらいました。1,000回サンプリングと検定を繰り返すことで,P値が1,000回分計算されます。そのP値の分布をみることで,「⁠検定」というプロセスがどれほど信頼できるのかわかります。問3の解答は以下のとおりです。heightCSmple)$p.valueprint(i)問4のポイントP値が有意かどうかチェックしてみると,以下のことがわかります(みなさん,だいたいこれくらいの数でした⁠)⁠。Bでは,有意にならないのが正しいはず。Cでは,有意になるのが正しいはずです。Cでは70/1000の確率で,「⁠まちがい」が起こることになります。Bでのまちがいのことを,統計用語で「αエラー」(⁠2群の差がないのに,有意になってしまうまちがい)といいます。Cでのまちがいのことを,「⁠「⁠βエラー」(⁠2群の差があるのに有意にならないまちがい)といいます。このようにまちがいが起こるのは,統計学の限界でもあります。αエラーは,5%で固定になります(P値の有意水準が5%であることと関係してます⁠)⁠。βエラーは,数式を使って理論的に計算することもできますし,今回のようにデータを発生させてみてシミュレーションすることもできます。シミュレーションを速く行うために,工夫をされている回答者もいました。問4の解答は以下のとおりです。1000PvalABは0.05未満(有意)が約5%,PvalACは約90%強。Cの身長差は,約10%の確率で有意とならない⁠)⁠。Cのαエラーは存在しない。調査のコストを意識することが実務につながる今回は,検定がどのようなものかを体感していただくために,Rを使う前提としました。全体の値がわかれば,絶対まちがいは起こりません。サンプリングすることで測定を簡易にする代わりに,どうしてもある程度のまちがいが起こってしまいます。いって,全体の値を測定するには費用がかかりすぎることがあります。Cでは90%強で正しい推測を行えるのです。統計学を理解していれば,測定にコストのかかるビジネスシーンにおいて,全体調査を行うべきかサンプリング調査を行うべきかを,事前に判断することができ,コストカットや適切な予算見積もりにつながります。著者プロフィール倉橋一成(くらはしいっせい)東京大学で医療分野を中心に統計学を研究。機械学習に関して論文発表し博士号を取得。研究成果をビジネスに活かすために,卒業と同時に分析専門会社iAnalysis合同会社を設立。博士過程のころから製薬会社の統計アドバイザーも務める。現在は医療分野の他にソーシャルゲーム・Webサービス・金融分野などで,統計学を応用したデータマイニングサービスを展開している。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。