*このページは編集中です。公開予定:6月12日 16:00  Rを使ったデータ解析 [#l16ec3ec]
*Rを使ったデータ解析 [#l16ec3ec]
#contents

**第9回授業の獲得目標:&worried; [#da844234]
-1. Rの基本操作を理解する
-2. Rを使って数値計算を行うことができるようになる
-3. Rを使った簡単な統計解析とシンプルなグラフを作成できるようになる。
-4. Rを使った統計的検定の方法を理解する

**Rの操作説明に入る前にやって置いて欲しいこと(%%%男子学生のみ!%%%) [#f4d431b3]
[[【ここをクリック】>http://bean.bio.chiba-u.jp/joho/index.php?joho20#s8b626c3]]←左のリンクのページに入り、画面の説明に従って、データを入力。今回の復習課題に使う(間違った形式で入力すると、自分でやるデータ整形処理が複雑になるので注意)。入力が同じ時間に集中すると「更新の衝突」がおきるので。「コメントの挿入」ボタンをクリックする直前に、一度、ページをリロード(再読込)すること。


**パワーポイントによる作図・評価の高かった作品例 [#tcc8f3b1]
&ref(./PP_fig.gif,50%);

**データ解析ソフト R のインストール [#rfd305d3]
以下の手順に従ってインストール。
***Rのインストール [#rb7bd16f]
-http://cran.md.tsukuba.ac.jp/bin/windows/base/R-2.7.0-win32.exe をデスクトップにダウンロード
--上のリンクで繋がらなかったら:ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/bin/windows/base/R-2.7.0-win32.exe
-デスクトップにできたR-2.7.0-win32.exeをダブルクリック
-インストールで使用する言語でJapaneseを選び、使用許諾が出るまで「次へ」.使用許諾確認では「同意する」をクリックして「次へ」.
-インストール先は次のようになっていることを確認。なっていなければ、ここからコピーペーストで入力。
 Z:\R\R-2.7.0
−残りは、「次へ」やOKをクリックする。バージョン情報をレジストリに書き込むかという質問のチェックボックスははずしておくこと。
-Rを起動すると、画面が文字化けしているかもしれません。その場合、メニューバーの「編集/GUIプレファレンス」を選んで、FontをMS Gothicにする。

***Rの日本語説明 [#jad2772f]
今日の時間中、暇をもてあました人は、Rがインストールできた人は、次のサイトに書かれている説明文を読んでサンプルデータの解析をやってみること。いろんな処理を真似してRを使うことで、使用方法に慣れることができる。どれでもいいから、説明にある通りの解析や、グラフの作成を試してみることをオススメする。
-以下、[[船尾さんhttp://cse.naro.affrc.go.jp/takezawa/funao.html]]という方が書かれた詳しい説明です([[竹澤さんのホームページ>http://cse.naro.affrc.go.jp/takezawa/index2.html]]内にあります).
--HTML版: http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
--PDF版: http://cse.naro.affrc.go.jp/takezawa/r-tips.pdf


**Rの基本操作を理解しよう:⌣ [#if665bd5]
***Rを一人で使う場合: 参考になる情報 [#fc273bbd]
Rには様々な参考書が出版されているので、どれか一冊を選んで買ってきて、随時参照しながら操作をするといいだろう。フリーのオンライン情報だけを使って使いたい人は、次のようにするといい。
 1. Rの命令一覧が載っている説明書のPDF(上記)を画面に表示させる
 2. Adobe Readerの検索機能を使って、行いたい処理を検索
 3. 説明を読んで入力すべき命令文をコピー
 4. Rにペーストして、値を編集して実行
こうやって、常に説明書を参照しながら操作すれば、命令を覚える必要は無い。

まず、インストールしたRのフォルダで、Rのアイコンをダブルクリックする。~
そうすると、画面が切り替わり、小さいウィンドウの中にいくつかのメッセージと、一番最後に、
 >
が表示される。この">"をプロンプトと言う。プロンプトの右側には通常、カーソルがあり、「このマークの後に何かコマンド(命令)を打ち込んでくださいよ」とあなたに促している。式を入力して、最後にenter(or returnキー)を押せば計算される。

***Rによる簡単な数値計算 ⌣ [#c36c9f2c]
以下、Rを使った簡単な計算。プロンプト(>)から右の部分をコピーペーストすれば、計算できる。
 > 4/3*pi*5^3  #半径5の球の体積
 
 > pi  #円周率が表示される(デフォルトでは小数点以下6桁まで)
 
 > (1+ 2 +  3   +    4     +    5    )/5   #式の間に半角スペースがいくつか入っても大丈夫
 
 > 【ここでキーボードの上矢印(↑)を押す: 前に入力した命令を表示させることができる】
 
 > (10 + 2 +  3   +  4 + 15 )/5   #前に入力した式が表示されるので、左矢印(←)でカーソルを動かし修正

***オブジェクトへの数値の代入 [#z4caac90]
Rでは、好きな名前をつけたオブジェクト("もの")に、数値や文字列などのデータを代入できます。オブジェクトには大文字小文字の区別があります。
 > x = 3  #xに3という数字を代入した
 > X = 4  #Xに4という数字を代入した
 > x + X #xとXの足し算   (なお、#の後はコメント文と呼ばれ、処理には関係の無い説明を書いておける)
なお、上では"="を使って数値を代入しましたが、 "<-"を使っても同じことができます。
 > x <- 3
 > X <- 4
 > x+X

***オブジェクトへのベクトルの代入 [#z9ef194a]
Rではベクトル (1, 5, 6, 8)などという値の並びを利用して、様々な表形式のデータを計算することができる。まずは簡単な命令(こういう命令のことを''関数''と言う)を使って、オブジェクトにベクトルを大入してみよう。
~
 Rでは、''c()'' という関数で、オブジェクトにベクトルを代入できる
 > x=c(1,2,3,4,5,6,7)
 >

entterキーを押しても何もおこらない?いえいえ。エラーメッセージが何も表示されず、新しいプロンプトが表示されたら大成功。上のようにならなかった人は、半角・全角の文字の違いとコンマやカッコに注意してもう一度やってみよう。

では、プロンプトの後に"x"と入力して、結果を見てみよう。
 >x
 [1] 1 2 3 4 5 6 7
上の様に表示されれば「xというオブジェクトにベクトル(1,2,3,4,5,6,7)が代入されたことになる。では、今用いたベクトルを対象に、統計解析の基本である平均値の計算を計算してみよう。mean()という関数(meanは英語で平均値の意味)で平均値が計算できます。コマンド(命令)の入力に自信の無い人は、下の囲みの中をコピー・ペースト。
 >mean(x)
 [1] 4

平均値"4"が表示されれば大成功(これで、あなたがRを使って行う、初めての統計解析は、無事に成功た)~
 では、数値をもう少し変えて、自分の好きな値で計算してみよう。。。
上で説明したように、キーボードの"↑"記号を何回か押してみると、 
 > x=c(1,2,3,4,5,6,7)
と表示された。そしたら"←"と"Back space"などを使って、数値を好きに変更して、最後に"Enter"キーを押そう。
 > x=c(1232,223.33,3  ,4 ,  5666)
半角文字であるかぎり、別にスペースがいくつ入っていても大丈夫。入力したら、上と同じことをしてみると、
 > x
 [1] 1232.00  223.33    3.00    4.00 5666.00
 > mean(x)
 [1] 1425.666
これで、自分の好きな値を入力して、平均を計算することができた。

**Rを使った統計解析 &smile; [#c05281ea]
生物学を学ぶ限り、自分が実験や観察で得たデータを使うときに、統計解析は必ず使うことになる。生物学のための統計解析の本も、数多く出版されている。一年生の皆さんも、機会をみつけて、できるだけ統計学に慣れ親しんでおいて欲しい。そんなとき、Rは非常に役に立つ。Rは非常に強力な統計解析ソフトであるため、与えられたデータの持つ統計的特徴を瞬時に計算したり、データの持つ意味を推測するための図版を一瞬に作図してくれる。この授業ではRを使って実際にデータを解析することで、統計解析に慣れ親しむ方法を解説する。実際の理論的裏付けは、統計の本を読んだり、授業に出たりして、各自学習してほしい。

***統計解析の2つの主要目的 [#h3f6690e]
 この授業では統計解析を、次の2つの目的のために使う。
~&size(14){1. ある対象(母集団)から得られた部分的な数値データから、その対象の持っている性質や特徴を知ること};
~&size(14){2. ある対象や実験で得られた数値データを用いて、その対象についてどういう判断を下せば良いかを論じること};

***母集団の性質の推測 [#t51617c8]
&color(green){&size(14){"ある対象(集団)から得られた部分的な数値データから、その対象の持っている性質や特徴を知ること"};};

生物学の大きな目的の一つに、自然界に存在する様々な生物の特徴を知ることがある。しかし、自然界の全ての生物個体を計測して、特徴を知ることは不可能。そこで、対象とする生物から、一部だけ(''標本'')を偏り無く取り出して(これを''任意抽出''とか''ランダムサンプリング''と呼ぶ)、特徴を計測し、対象生物全体(''母集団'')の特徴を推定する。こういう作業を「統計的推測」と言う。
#ref(授業/H19/情報処理/09/Untitled-1.gif,60%)
この、「一部を使って全体を知る」という点が、が統計の基本だろう。~
&ref(授業/H18/情報処理/09/kasupin.gif);
 生態学などのマクロ系の生物学では、上のような方法で標本を採集し、母集団の性質の解析に統計学的手法を用いることが、非常に多くある。この授業では、統計学全般について語っている時間は無いので、ほんのさわりしか扱わないが、下に示す参考書などを読んで、勉強しておいて欲しい。受験で培った数学力が落ちておらず、学問に対する情熱が非常に高い、1年生の今が統計学習得のチャンスですぞ!
-お勧め参考書: 「生物学を学ぶ人のための統計のはなし 〜きみにも出せる有意差〜」(粕谷英一著・文一総合出版・1998. 2400円)。最初の方はほとんど予備知識無しに読んでも大丈夫。


それでは、実際に統計的推測やってみよう。。
~[[【ここをクリック】>http://bean.bio.chiba-u.jp/joho/index.php?joho20#qb80708e]]←ここに、産業技術総合研究所 デジタルヒューマン研究センターから提供して頂いた、1997年の男子大学生110人の身長、体重のデータがある。このデータを使って、1997年当時の大学生の身長と体重の一般的傾向について議論してみよう。

このとき、
~&size(16){''母集団''は%%%1997年当時の大学生全て%%%};
~&size(16){''標本''は%%%1997年の男子大学生110人%%%};
~今回の統計的推測では、
 110人分のデータから、1997年当時の大学生全体の身長と体重の傾向を推測する
ことを目的としている。

+まず、Rにデータを取り込む。データは数が多いし空白で区切られているので、c()を使ってデータを取り込むよりは、scan()という関数を使って、h というオブジェクトにデータを入れる方がいい(データの取り込みには他にもいろんな方法があるが、ここではコピー・ペーストで行えるscan()を使って解説する)。

 > h=scan()
 1:
画面に表示された 1: の後に、上のページから身長データをコピー・ペーストして、最後にenter キーを押す。次のように表示される。
 1: 1775  1710 ..
   ..<省略>..
 111: 
同様にして、体重データも w というオブジェクトにを入れる。次のように表示される。
 1: 79.8 58.0 ..
   ..<省略>..
 111: 
確認のために
 > h
 > w
と入力。データが一覧表示される。

+&size(16){''標本データの視覚化''};
~計測データが得られたら、まず、グラフにしてみることをオススメする。グラフとして視覚化することで、データの持つ性質が直観的に理解できる。こういうとき、Rを使えば、いろんなグラフを一瞬にして描画できるので、非常に楽。~
まずはヒストグラム(柱状グラフ)を使っみる。Rを使ってヒストグラムを書く場合は
 > hist(h)
キーボードからたった7文字打ち込むだけ。
身長の度数分布がグラフで表示される。
&ref(授業/H18/情報処理/09/hist.gif,around,right);
 このグラフを見ただけで、標本データでは身長170cmぐらいの学生が最も多く、
 データは釣り鐘型の分布をしている。
ということが分かる。同様のことを体重についてもやってみよう。
 > hist(w)
+''要約統計量の表示''
~次に、この標本データの平均とか最大値とか、最小値とか、データの集まりがもっている基本的な性質を表示させて見よう。次のように入力。
 > summary(h)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1578    1671    1700    1706    1734    1839 
これで、1997年当時の調査した大学生110人の身長は、平均170.0cm(最大:183.9cm, 最小: 157.8cm)ということが分かった。1st Qu.と3rd Qu.というのは、全体の4分の1の人数がどの高さまでの間に含まれているかということを表している。つまり、167.1cm以下の人が25%、173.4cm以上の人が25%、その間の人が全体の50%ということ。~
&ref(./Untitled-5.gif);~
体重も同様に解析してみよう。
 > summary(w)
//   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
// 44.20   55.10   59.40   59.53   64.40   82.20 
+''身長と体重の関係を視覚化''
~身長も体重も釣り鐘型の分布になっていた。では、この2つの数値の間に何か、関係があるだろうか?これもまた、グラフで表示させてみる。こういう場合、縦軸に体重、横軸に身長をとって、一人一人の持つ身長と体重の散布図を作る。Rの場合、次のように入力するだけ。
 > plot(h,w)
身長と体重の関係は右上がりの直線関係にありそうだ。~
&ref(授業/H18/情報処理/09/plot.gif);
+''統計的推定で分かったこと''
~今回、110人分のデータを使って、1997年当時の大学生男子の身長と体重について、
 グラフによる視覚化
 要約統計量の表示
 散布図の作成
という3つのことを行った。この標本が母集団の性質を表しているとするならば、1997年当時の大学生について、次のような推定ができる。
 1997年当時の男子大学生は、身長の平均が170.6cmで、データは釣り鐘型に分布している
 体重は平均が59.53kgで、身長と同様にデータは釣り鐘型に分布している
 身長と体重の間には、正の相関がある
~なお、今回は分散や標準偏差の話しは省略した。Rを使った統計解析の基本(データの図示、代表値の計算、データ間の相関)などについてはここでは説明しきれないので、下のリンクにある[[中澤さんによる解説>http://phi.med.gunma-u.ac.jp/statlib/stat.pdf]]などを読んで、勉強してみて欲しい。。


//-例1. 架空の例ですが、西千葉キャンパス内には、チバクサという植物が沢山あるとします。この植物100個体分の葉の長さを計測したものが、次のデータです。
// 1.00 1.03 1.11 0.98 1.03 0.94 1.01
// 0.92 1.02 1.06 1.00 1.00 1.02 1.04
// 0.97 1.02 1.00 1.00 1.04 1.00 0.95
// 0.97 1.03 1.01 1.06 1.00 1.05 0.94
// 1.01 0.93 0.99 0.96 0.99 1.00 1.01
// 1.02 1.06 1.00 1.04 1.05 0.97 0.94
// 0.97 0.98 1.00 1.10 1.03 0.96 1.05
// 1.01 0.93 0.96 1.01 0.94 0.98 1.01
// 0.94 0.93 1.01 0.99 0.90 0.97 1.04
// 1.00 1.08 0.94 1.06 0.99 0.91 0.98
// 0.97 1.11 0.99 0.93 0.99 0.97 1.02
// 1.07 1.05 0.99 1.07 1.01 0.96 1.03
// 0.99 0.99 1.02 1.03 1.03 0.91 0.95
// 1.02 0.99 1.02 0.94 0.89 1.04 0.94
// 1.00 1.00 
// (単位:cm)
//このデータから、西千葉キャンパス内のチバクサの葉の長さにはどういう傾向があるといえるでしょうか?Rを使って解析してみましょう。
//
//+まず、Rにデータを取り込みます。上のデータは数が多いし空白で区切られているので、scan()という関数を使って、Leaf_length というオブジェクトにデータを代入します。
// > Leaf_length=scan()
// 1:
//画面に表示された 1: の後に、上の囲みの中のデータををコピー・ペーストして、最後にenter キーを2回押します。次のように表示されるはずです。
// 1:  1.00 1.03 ..
//   ..<省略>..
// 99:  1.00 1.00 
// 101:
//確認のために
// > Leaf_length
//と入力してみましょう。データが一覧表示されたはずです。
//
//-''標本データの視覚化''
//~それではまず、計測したデータがどういう性質を持っているのか、目で見て分かりやすいグラフにしてみましょう。こういう場合はヒストグラム(柱状グラフ)を使って、ある長さの範囲にある葉が全体のうちどのくらいの割合で存在するのかを示すことができます。Rを使ってヒストグラムを各場合は
// > hist(Leaf_length)
//と入力するだけです。グラフが表示されましたよね。このグラフを見ただけで、
// 標本データは長さ1cmぐらいのものが最も多く、釣り鐘型の分布をしている。
//ということが分かります。
//
//-''要約統計量の表示''
//~次に、この標本データの平均とか最大値とか、最小値とか、データの集まりがもっている基本的な性質を表示させて見ましょう。
// > summary(Leaf_length)
//    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
// 0.8900  0.9700  1.0000  0.9976  1.0300  1.1100 
//これで、このチバクサ100個体の葉の長さは、平均1.00cm(最大:1.11cm, 最小: 0.89cm)ということが分かりました。1st Qu.と3rd Qu.というのは、全体の4分の1の個体がどの長さまでの葉を持つかということを表しています。つまり、0.97cm以下の葉を持つ個体が25%(すなわち1/4)、1.03cm以上の葉を持つ個体が25%、両者の値の間の長さを持つのが全体の50%ということです。


**統計的検定のやりかた&smile; [#ndb90e40]
この授業で対象とする統計解析の2つめは、~
&color(green){&size(14){"ある対象や実験で得られた数値データを用いて、その対象についてどういう判断を下せば良いかを論じること"};};~

こういう状況を想定してみて欲しい。~
 ここに一枚のコインがある。聞くところによると、もしかするといかさまコインかもしれない。
 実際に20回投げて、裏表の出る回数を数えてみたら、オモテが5回しか出なかった。
 このコインはいかさまコインと判断していいだろうか?
 
 ちょっと自分で考えてみてよう(昨年の例は、次のような考え)
 コインの裏表どちらが出るかは純粋に偶然で決まるので、何回もやれば必ず1:1になる
 サンプル数(試行回数)が少ないなどの理由で、結論づけられない
 20回中オモテが5回は少なすぎ李ので、イカサマコインだと考えられる
 その他の考え

***直観的説明 [#m061b0fd]
この後、長い説明があるので、まずは正確さは二の次にして、仮説検定の流れを直観的に理解してもらえるような説明を試みたい。この説明のどこが、後で出てくる「帰無仮説」、「有意水準」、「帰無仮説の棄却」にあたるのか、後ほど考えてみて欲しい。なんとなく理解できたら、どれでもいいから統計の教科書を読んでみて、正確に理解することをオススメする。
~
~
>
#ref(授業/H19/情報処理/10/snmpenwl.gif,left,around,nolink) 
#ref(授業/H19/情報処理/10/WS000002.JPG,right,around,nolink)
&size(16){1枚のコインを20回投げたら、オモテが5回しかでなかった。このコインはいかさまコインかなー?};
~
~
~
//#ref(授業/H19/情報処理/10/snmpendf.gif,right,around,nolink)
~&size(16){もし、このコインがいかさまコインじゃない(正常なコイン)とすると...};
~&size(16){「20回投げて5回しかオモテが出ない」っていうのも、わりとフツーに起こることなんだろーね。};
~
~
~
#ref(授業/H19/情報処理/10/snmpensl.gif,left,around,nolink)
#ref(授業/H19/情報処理/10/pengraph.gif,right,around)
~&size(16){わりとフツーに起こるこってどうやって数字で示す?95パーセントぐらいの確率でおこるならフツーって言っていいかな?...};~
&size(16){「正常なコインを20回投げる実験」を何度も何度も繰り返して、どの程度オモテがでることかをグラフで表してみると...};
~
~
~
~
~
#ref(授業/H19/情報処理/10/snmpengi.gif,left,around,nolink)
&size(19){なんと!!};&size(17){20回中オモテが出る回数が6回から14回までの場合が、全体の95パーセントだっ!};
~&size(17){オモテがでる回数が5回の場合は、残りの5%の範囲に含まれちゃってる...。5%の範囲というのは、フツーじゃ起こらないとした範囲だよなー。};
~
~
~
&size(16){「20回投げて5回しかオモテが出ない」っていうのが、「正常なコイン」ではフツーに起こらないっていうわけだから、};
~&size(16){このコインが「正常なコイン」っていう前提が間違っていたと考える方がいいんだろうね。};
~&size(16){うん、きっとこのコインは、いかさまコインなんだ};
~
~
~
#ref(授業/H19/情報処理/10/snmpenas.gif,right,around,nolink)
&size(16){でも、待てよ。フツーじゃ起こらないことの判断基準が5%って大きすぎない?};~
&size(16){5%っていうと、、、100回中5回。。。}; &size(18){20回中に1回だ!};~
&size(16){っていうことは、もしも、今投げたのが「正常なコイン」だったとしても、20回に1回は、間違った判断を下してしまう可能性があるってことだね。};

-&size(11){&color(brown){注:};今回このページで用いたペンギンのアイコンは、ホームページ用フリー素材集★沙奈の小物箱★ http://www2g.biglobe.ne.jp/~misana/ から使わせていただきました。};

***もう少しだけ詳しい統計的検定の説明 [#n7954542]
上の例では、あるコインがいかさまコインかどうかを判断するのを、20回の実験の結果を使って行った。こんな単純な例では、生物学の研究と関連しにくいと思われるかもしれないので、少し説明を変えてみよう。

 あなたは生物学科の4年生です。卒業研究テーマは「ヨコヅナサシガメの性表現について」というものです。
 ヨコヅナサシガメは外来種として問題視されています。通常、集団内の雌雄の比率は1:1ですが、千葉県のある
 地域の集団では、どうも、雄の方が多そうだということに気がづきました。この雌雄の差が生じた原因をつきとめ
 れば、ヨコヅナサシガメの防除にも使えるかもしれません。予備実験でその地域の調査に行き、あちこちで採集
 したところ、20個体採集することができました。性比を調べたところ、15匹が雄、5匹が雌でした。
 今後、もっと大規模な調査を計画するためにも、今回の調査結果が、単なる偶然か、それとも、その地域の集団の
 性比に偏りがあるせいなのかを判断したいと思います。どうすれば良いでしょうか?

卒業のかかった実験なので、「雄・雌は偶然に決まるに違いない」などとは言ってられなさそうだ。

 そこで、統計的検定の出番。今、知りたいのは、
 「採集したうち20匹中5匹が雌という状況は、性比が1:1の生物で、単なる偶然で起こるようなことか、
  あるいは、偶然では滅多に起こらないことか」
ということ。このように、得られたデータが単なる偶然で生じることからかけ離れたことかどうかを知るには、''統計的検定''という作業が必要になる。

 統計的検定では、次のような論証う。

+''帰無仮説と対立仮説を作る''
&br;
 問題にしているのは、%%%千葉県の調査地域における全てのヨコヅナサシガメからなる集団(''母集団''と呼びます)%%%の性比。今回の例だと、通常は1:1の性比が、千葉県のある地域集団では、1:1からずれているかどうかを知りたい。そこで、母集団の性質について次のような仮説を作る
 母集団の性比は1:1である
この仮説のことを ''帰無仮説''と言いう。&size(11){(統計の教科書を見ると、帰無仮説には「違いがない」とか「差がない」という仮説を使うと書かれている。今回の場合「『母集団の性比は1:1である』というだけで、「差が無い」とか「違いが無い」とかは言って無いじゃないか?」と思う人がいるかもしれない。しかし、「性比が1:1である」ということは「雄と雌の出現確率には''違いが無い''」ということを意味している。字面だけで判断するとこんがらがる場合があるので、要注意。)};
&br;
 帰無仮説に対応して、あなたが持っている仮説は、得られたデータは偶然のせいで偏ったのでは無く、母集団の性比そのものが偏っているというもの。この仮説の事を''対立仮説''と呼ぶ。今回の場合、対立仮説は、
 母集団の性比は1:1では無い
というもの。対立仮説は帰無仮説を否定したものになっている。
+''p値の計算''
&br;
 次に、%%%帰無仮説が正しいと仮定した場合に%%%、得られたデータが実現する確率を計算する。~
「母集団の性比は1:1である」(帰無仮説)というのを正しいと仮定しているけれど、サンプリングの際の偶然のバラツキで、20匹中5匹が雌になるということがよくあることなのかもしれません。~
そこで、「性比が1:1である母集団から20匹を抽出したとき、5匹が偶然雌になる」という確率を計算して、その確率をもとに、「それがどれだけ起こりにくいこと」かを判断する。この確率の事を''p値''(Rでは''p-value''と表示される)と呼ぶ。~
&br;
&size(11){ このp値の計算で、一つ注意しなければならないことがあります。それは、};
 p値の計算をするときに、20匹中5匹が雌の場合だけを計算するだけではなく
 20匹中雌が5匹以下(5, 4, 3, 2, 1, 0)の場合の確率も計算しなくてはならない
&size(11){ということ。この後の議論に出てくるように、起きた事象がどれだけ珍しいことかを判断して、それが滅多におこらないようなことなら、帰無仮説を棄却する。「5匹以下が雌」というそれぞれの事象は「5匹が雌」という事象よりも起こりにくいことなので、そう言う場合にも、帰無仮説は棄却される。そのため、p値の計算は「5匹以下」の場合の確率が必要になるのです。この確率のことを''累積確率''と呼びます。};~
&ref(授業/H19/情報処理/09/Untitled-4.gif);
 hist(xlim=c(0,20),rbinom(10000,20,0.5)) で表示させた
~&size(10){今回の解説では、片側検定、両側検定の話しは意図的に省略してあります};
+''有意水準との比較''
&br;
 次に、得られたデータが実現する確率(p値)と%%%ある基準%%%とを比較することで、こういう状況が起きることが、どれほど珍しいことなのかを判断する。多くの場合、基準には0.05(つまり5%)あるいは0.001(つまり0.1%)とか0.0001(つまり0.01%))という値が使われます。この基準のことを''有意水準''とか''危険率''と呼ぶ。上で得られたp値と有意水準を比較すると、次の2つの場合が考えられる:
++''p値が有意水準よりも低い'': 「母集団の性比は1:1だけど、サンプリングの際に、たまたまデータに偏りが生じた」(帰無仮説)の状況が生じる確率(''p値'')が、「希さ」の基準(''有意水準'')よりも小さいので、そういう状況は''滅多に起こらない''と考える。つまり、''帰無仮説は否定される''ということになります。
&br;
 くどいようですが、
 「母集団の性比は1:1である」(帰無仮説)(つまり、データの偏りは単なる偶然)
が棄却されたのですから、
 「母集団の性比は1:1では無い。」(対立仮説)(つまり、データの偏りは、単なる偶然では無い)
&br;
という仮説が採択されます(こういう論理の進め方を''背理法''と呼びます)。つまり、「%%%20匹中5匹が雌である状況は、偶然で生じることはほとんど無いので、母集団の性比に偏りがある可能性は高い%%%」と考えられる。この場合、得られたデータ(この場合、は20匹中の5匹が雌)には、...の有意水準で、''有意差がある''と言います。
++''p値が有意水準よりも高い'':上と同様に考えると、
 「母集団の性比は1:1である」(帰無仮説)
が正しいという仮定の下で、「20匹中5匹が雌」という状況が生じる確率(p値)が、「希さ」の基準(有意水準)よりも大きい。言い換えると、「母集団の性比が1:1であるときに、20匹中15匹が雄になるという状況は、別に不思議ではない」ということ。つまり
 「母集団の性比は1:1である」(帰無仮説)という仮説は 棄却 されない
得られたデータからは帰無仮説を否定できなかったので、この場合、得られたデータ(この場合、は20匹中の雄・雌の数)には、...の有意水準で、''有意差が無い''と言う。ここで注意しなければならないのは、''「有意差が無い」''からといって、''「母集団の性比は1:1である」と結論づけてはいけない''こと。「有意産が無い」のは、「母集団の性比は1:1であってもおかしくは無い」ということを意味しているだけで、単なる偶然の結果かもしれないし、データ数が少ないせいかもしれないし、いろんな場合があり得る。

***Rを用いた実際の解析: [#oa15b146]
 では、実際に先ほどの例をRを使って解析してみよう。この検定は二項検定と呼ばれている。まず、帰無仮説は
 母集団の性比は1:1である
ということ。この帰無仮説が正しいと仮定すると、 得られたデータの偏りは、サンプリングの際の偶然の偏りであると考えられます。確率50%で生じる事象が、20回中5回得られたわけだが、検定の際には、これより希な条件も全て含めて確率を計算する。つまり、20回中、5回以下と、さらには雄の数が15以上の事象が生じる確率を計算。
 手で計算してもいいが、今回はすぐにRを使ってみよう。上の検定を行うにはbinom.test()関数を使う。
 > binom.test(x,n)
と入力するだけで、実際のx個のサンプルの中で、データ値がn回実現したという状況で、そのデータ値は(もう一つの対になるデータ値に対して)母集団中で1:1で出現するという帰無仮説をテストできる。

このテストの詳しい解説は、上記、粕谷さんの統計の本に載っている。~
&ref(./Untitled-2.gif,60%);

上の例だと、20サンプル中15サンプルが雄で、帰無仮説は「母集団の性比は1:1」だということでしたから、
 > binom.test(5,20)
	Exact binomial test
 data:  5 and 20 
 number of successes = 5, number of trials = 20, p-value = 0.04139
 alternative hypothesis: true probability of success is not equal to 0.5 
 95 percent confidence interval:
  0.5089541 0.9134285 
 sample estimates:
 probability of success 
                   0.25 
p値の値は0.04139なので、有意水準が5%よりも小さい。そこで、帰無仮説「母集団の性比は1:1である」は棄却される。(もちろん、有意水準を0.001にすると棄却されません)

つまり、「調査した地域のヨコヅナサシガメの母集団には、有意水準5%では、雄と雌の性比に偏りがあると考えられる」ということができる(有意水準0.1%の場合は、「性比に偏りがあるかどうか分からなかった」)。「有意水準5%では、性比が1:1という帰無仮説は棄却された」という言い方もある。

どうやらその地域のヨコヅナサシガメの母集団には性比に偏りがありそうなので、卒業研究の調査をすすめても良いかもしれない。
~&size(10){今回の解説では、片側検定、両側検定の話しは意図的に省略してある};


***Rを使った実際の解析2:2集団の差の検定 [#t2707962]
 先ほど1997年の男子大学生110の身長データをhというオブジェクトに入れた。[[【ここをクリック】>http://bean.bio.chiba-u.jp/joho/index.php?joho20#qb80708e]]のもう少し下の方には、1998年当時60歳以上の男性51人の身長のデータものっている。大学生(平均20.52歳)と60以上(平均68.61歳)では、48歳ほどの差がある。同じ成人男性といったって、40年も違う時代に成長期を迎えたわけだから、身長には違いがあってもおかしく無いような気がする。この2つのデータをみて、2つのサンプルの母集団(ランダムサンプリングが行われたとして、1997年当時の男子大学生全てと1998年当時の60歳以上の男性全て)の間で身長には差があると言っても良いだろうか?

60歳以上の男性の身長データをオブジェクトに格納。scan()関数を使って
 > h2=scan()
 1:  1547  1689 ..
   ..<省略>..
 52: 

hとh2のそれぞれの平均値やヒストグラムを比べる。
 > summary(h)
 > summary(h2)
 > hist(h)
 > hist(h2)

平均値やヒストグラムを見た限りでは、けっこう違いがありそう。
~&ref(授業/H19/情報処理/09/Untitled-6.gif);~
もう一つグラフを作ってみよう。2集団のデータを簡単に比較するときに便利な関数が、boxplot()。
 > boxplot(h,h2)

さて、いよいいよ検定。考え方は上で示したのと全く同じ。ただし、データの持っている性質が違うので、p値の計算方法は異なる。このような2集団の違いの検定には、Wilcoxonの順位和検定という方法を使う。検定の説明はブラックボックスになりがちだが、上で紹介した粕谷さんの本や、[[中澤さんのRの使い方pdf>http://phi.med.gunma-u.ac.jp/statlib/stat.pdf]]には、詳しい考え方の説明があるので、読んでおいて欲しい。今回は''Rを使った統計的検定がいかに楽か''ということを示すのが目的なので、詳しくは触れない。

 まず、ヨコヅナサシガメの例で見たように、帰無仮説と対立仮説を決める。
 帰無仮説: 2つのサンプルの母集団の身長に差は無い
 対立仮説: 2つのサンプルの母集団の身長に差はある
 2つの母集団に違いがなければ、hとh2という集団のデータは、母集団から抽出したときに、たまたま偶然で偏ってしまったものということ。そういう偶然の偏りでこれだけの違いが生じるのは、どのくらいの確率(p値)で生じるのかを計算する。Rではwilcox.test()という関数を使います。
 > wilcox.test(h,h2)
	Wilcoxon rank sum test with continuity correction
 data:  h and h2 
 W = 4957, p-value = 5.329e-15
 alternative hypothesis: true mu is not equal to 0 

p値の値は 5.329e-15 で、これは 5.329x10^(-15) を示している。つまり、0.0000000000000005329。これは有意水準の0.01%よりもずーっと小さい値なので、2つの身長データの違いが同一母集団から偶然のサンプリングのバラツキでで生まれたということはほとんど無い、ということを示している。統計学っぽく表現すると、「2集団の差をWilcoxonテストで検定した結果、0.01%の有意水準で有意な差があった」と書く。

どうやら、40年も年齢の異なる2つの母集団の身長には差があると言って良さそう。やっぱり、成長期に摂取できた栄養の影響などが、きっと大きいのだろう。

**リンク: [#oe4e28ee]
-[[CRAN>http://cran.r-project.org/]]欲しい情報、欲しい機能はきっとここで見つかる(でも英語サイト)
-[[RjpWiki>http://www.okada.jp.org/RWiki/index.php?%a5%ea%a5%f3%a5%af%bd%b8]] Rに関する様々な情報
-http://phi.ypu.jp/swtips/R.html 統計処理ソフトウェアRについてのTips(群馬大・中澤さんによるページ)
--[[同筆者による解説PDF>http://phi.med.gunma-u.ac.jp/statlib/stat.pdf]](これを全部読んで、Rを使って練習すれば、統計が得意になるかも)


**演習:今日の正規表現: データ整形[#a35e7429]
***前回課題2 [#xd11a2fd]
    * 1:30	    * 2:28
    * 1:30	    * 2:18
    * 1:34	    * 2:30
    * 1:31	    * 2:28
    * 1:18	    * 2:31
    * 1:34	    * 2:18
    * 1:18	    * 2:30
    * 1:34	    * 2:30
    * 1:31	    * 2:28
    * 1:34	    * 2:30
    * 1:34	    * 2:16
    * 1:28	    * 2:16
    * 1:30	    * 2:28
    * 1:30	    * 2:18
    * 1:30	    * 2:19
    * 1:18	    * 2:11
    * 1:31	    * 2:28
    * 1:28	    * 2:30
    * 1:30	    * 2:31
    * 1:18	    * 2:30
    * 1:28	    * 2:34
    * 1:30	    * 2:31
    * 1:22	    * 2:31
    * 1:28	    * 2:32
    * 1: 28	    * 2: 30
    * 1:34	    * 2:18
    * 1:34	    * 2:28
    * 1:30	    * 2:28
    * 1:23	    * 2:34
    * 1:30	    * 2:18
    * 1:18	    * 2:17
    * 1:30番の葉緑体	    * 2:15番の葉緑体
    * 1:28	    * 2:24
    * 1:30	    * 2:31

***前回課題3 : Ozawa-kenによるタイピング技能測定結果[#ba68946d]
 C	B	B	B	C	A
 B	B	A+++	B	S	C
 A+	B	G	B	B	C
 B	C	C	A	C	C
 B	B	C	G	B	A+++
 B	C	C	C		
タイピングに苦手意識が無くなれば、コンピュータへの苦手意識も減少するので、今後もぜひ練習をつづけるように。~
最後の講義の前にもう一度測定するが、上達の程度によっては加点対象になるかも。


**第9回授業の課題 [#k2378506]
-提出期限:6月18日月曜正午
***課題1.意見調査 [#xba040ac]
+&size(16){http://bean.bio.chiba-u.jp/joho/index.php?joho20 に、「自分のID」/09 という新しいページを作成し、下の囲みの中にあるアンケートをコピー・ペーストして、「回答:」の後に答えを書き込むこと。};
-手順
++画面の上の方にある〔 新規 〕をクリック
++ページ名を尋ねる入力スペースが表示されるので、半角英数字で、ドット・スラッシュ・0・9を下のように入力
 ./09
++下の囲みの中をコピー・ペーストし、回答や答えを書き込む
 *第9回授業・基本課題 
 **氏名:
 **課題への回答
 -今日の授業の進み方は?(はやい、丁度いい、おそい)
 --回答:
 -今日の授業の難しさはどう感じましたか(簡単 丁度いい 難しい):
 --回答:
 -難しいと答えた人は、特にどの点が難しかったですか?:
 --回答:
 -今日の授業は(分かった 半分ぐらいは分かった 分からなかった):
 --回答:
 -分からないと答えた人は、特にどの点が分からなかったですか?:
 --回答:
 -今日の講義で分からなかった用語があったら挙げてください:
 --回答:
 -授業に関する要望・質問があったらなんでもどうぞ:
 --回答:
 ***課題2.Rを使った統計解析:ヒストグラムの表示
 &ref(./添付したヒストグラムの画像ファイル名);
 ***課題3. 
 &ref(./添付したヒストグラムの画像ファイル名);
 ***課題4.
 -問1の答え:身長の平均:     体重の平均:
 -問2の答え:帰無仮説:「     」
 -問3の答え:対立仮説:「     」
 -問4:検定に用いたRの計算式と結果
 計算式:
 結果:
 -問5:検定の結果から議論できること:


***課題2. Rを使った統計解析:ヒストグラムの表示 [#x386c699]
-[[身長・体重データ>http://bean.bio.chiba-u.jp/joho/index.php?joho20#qb80708e]]
にある体重データ(2つめの囲み)のヒストグラムを、Rを使って描きなさい。できたヒストグラムはWinshotで切り取って、上で作成した課題提出ページに表示させなさい。

***課題3.Rを使った統計解析 [#r38cb1f6]
-[[身長・体重データ>http://bean.bio.chiba-u.jp/joho/index.php?joho20#qb80708e]]を用いて次の操作を行い、身長(x)と体重(y)の散布図を描きなさい
~手順
++scan関数を用いてオブジェクトxに身長のデータを代入
++scan関数を用いてオブジェクトyに体重のデータを代入
++plot(x,y)というコマンドで、散布図を表示
++できたグラフをWinShotを用いて切り取り、課題3のところに貼り付ける

***課題4. Rを使った統計的検定 [#hd19e45e]
-次の説明文を読んで、Rを使った統計的検定を行いなさい。下の囲みを上で作ったページにコピー・ペーストし、「:」の後に答えを書き込みなさい。
-注:この課題は教員からの指示があるまで行わないこと。男子学生全員がデータ入力をし終わったのをみてから、指示を出す。
-[[生物学科1年男子学生の身長・体重>http://bean.bio.chiba-u.jp/joho/index.php?joho20#s8b626c3]]
データを用いる。データはスペース区切りになっているので、K2Editorとエクセルを使って、これまでやってきたように整形し、身長のみ、体重のみのデータにしてかdら使うこと。Rのscan()関数を使ってオブジェクトに格納すると楽です。この問題は、上でやった「統計的検定2」の内容とほぼ同じ。
-1997年男子大学生110人と、生物学科1年男子学生の身長のデータは、それぞれが、当時の大学生の集団から、任意にサンプリングされたものだと仮定します。このとき、両者の母集団の身長に差があるかどうかを検定します。
-問1:生物学科1年男子学生の身長の平均と、体重の平均を答えなさい
-問2:この場合の帰無仮説は何ですか?:
-問3:この場合の対立仮説は何ですか?:
-問4:検定に用いたRの計算式と結果をコピー・ペーストしてください
-問5:検定の結果からどのようなことが議論できますか?: