「1. パン屋のインチキをあばく話」の編集履歴(バックアップ)一覧はこちら

1. パン屋のインチキをあばく話」(2008/08/12 (火) 22:26:19) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

レジメの[[PDFファイル>http://www39.atwiki.jp/stat_semi?cmd=upload&act=open&pageid=22&file=2-1.pdf]]をアップしておきます。また、このページの最後にレジメ中のグラフ作成に使用したRのソースコードとその解説を記載しておきます。Rのコンソールへコピペすることで同様のグラフが描画されるはずです。よろしければ参考にしてください。 以下PDFファイルの中身と同様のレジメです。 ---- **米をパンに切り替えたら血圧が下がるのか? 白米に比べライ麦パンなどはカリウムを多く含むため、血圧上昇の予防になる。パンでなくとも玄米でも可。 **ヒストグラム 「横軸にパンの重さをとり、縦軸にパンの数をとって(p38)」描いた次にようなグラフをヒストグラムと呼ぶ。 #image(1.png) 図1.ヒストグラム 本文中では60、70、80…グラムのパンの重さを数えたと書いてあるが、実際にはパンの重さがそのような調度の値だけをとるということはありえない。本文中表10(p39)は正しくは次のような形となる。 |階級(g)|階級値(パンの重さ、g)|度数(個数、個)| |55-65|60|1| |65-75|70|15| |75-85|80|23| |85-95|90|27| |95-105|100|20| |105-115|110|12| |115-125|120|2| このように、ある代表値(階級値)を中心とするある範囲(階級)に含まれるデータの個数(度数)をまとめた表を度数分布表と呼ぶ。 図1に点線で示したのはパンの数を無限大、階級幅を無限小にしたときのヒストグラムで、この曲線により示される分布を正規分布、Gauss分布などと呼ぶ。 データの切捨ての余蘊亜人為操作が加わると、本文中表12(p40)のように切断された分布となる。これは切断正規分布と呼ばれる。 コントロールできない偶然の誤差は結果として正規分布を生じやすい。これを逆に利用し、正規性を調べることで偶然でない誤差を探すこともできる。 **資料と母集団 「パン屋が売っている全体のパン(p44)」のように、全ての対象の集まりを母集団と呼ぶ。そして、「A老人が買った100切れのパン」のように母集団から抽出された集まりを資料、または標本と呼ぶ。 母集団の概念を使って仮設検定を説明すると、仮説検定と言うのは、「ある資料がある母集団から抽出されたものとみなすことができるかどうか」を調べているということができる。 **分布の代表値 平均値は分布がどこを中心としているかを述べるのに便利なパラメータであるが、同じ平均値でも分布が同じとは限らない。 #image(2.png) 図2.2つの正規分布 図2はいずれも平均値が0の正規分布であるが、明らかに形が違う。とがった分布は平均に近い値が出やすく、平らな分布は出にくい。バラつかない分布とばらついた分布と言い換えることもできる。「バラつき」を測る測度が必要である。そこで、次の式で定義される母分散$$\sigma^2$$を導入する*1。 $$\sigma^2 = \frac{1}{n}\sum^n_{i=1}(x_i-m)^2$$ $$n$$は母集団を構成するデータの数、$$x_i$$は個々のデータ、$$m$$は母平均値である。母分散は「母平均から個々のデータまでの距離の二乗」の平均値である。二乗ではイメージがしにくいので、それの平方根を取って標準偏差$$\sigma$$を定義する。 $$\sigma = \sqrt{\sigma^2}$$ 正規分布の形は平均値$$m$$と標準偏差$$\sigma$$(または母分散)の2つの情報があれば完全に決定される。 **正規分布の基準化 正規分布曲線を計算によって求めるのは多少骨が折れる。そのため、正規分布するデータに適当な変換を施して、何か1つの基準となる正規分布に変換できれば便利である。そうすれば、我々はその基準となる正規分布について値を計算しさえすればよい。 まずは平均値を0にする。これには、個々のデータ全てから母平均を引けばいい。 $$X_i = x_i - m$$ こうして作られた$$X_i$$というデータの集まりは平均が0の分布となる。 次に、標準偏差を1にする。これは、それぞれの$$X_i$$を標準偏差$$\sigma$$で割ればいい。 $$u_i = \frac{X_i}{\sigma}$$ こうして作られた$$u_i$$というデータの集まりは標準偏差が1の分布となる。 この一連の作業を施せば、どんな分布でも(正規分布でありさえすれば)平均が0、標準偏差が1の正規分布となる。この正規分布を基準正規分布、もしくは標準正規分布と呼ぶ。そして、今と逆の操作を施せば標準正規分布からもとの分布を作ることが可能である。 標準正規分布には「基準正規分布について、その中心ゼロから、ある距離以上にある値が出現する確率(p59)」をまとめた数表が作成されており、多くの統計学の教科書に付録として載っている。よって、 +ある基準値を考える。 +その基準値を正規化する。 +正規分布表を調べる。 +「ある基準値」以下(もしくは以上)の値が出現する確率がわかる! しかしながら、現在ではコンピュータを使ってあらゆる平均値、標準偏差の正規分布曲線を簡単な操作によって計算できる。そのため、正規分布表を引くことはおろか、基準化という作業すら不要な場合がほとんどである。 **$$m$$と$$\sigma$$の推定値 これまでは「母平均」や「母分散」を中心として議論を進めてきた。しかし、母集団のデータ全てが得られるようなケースはまずない。われわれが得ることの出来るのは大抵の場合は限られたデータからなる標本である。そこで、標本から得られる情報を用いて母集団の平均、分散を推定する方法が必要となる。 まず母平均の推定値であるが、これについては標本のデータを用いて計算した平均値、つまり標本平均が最もよい推定値であることが明らかとなっている。そのため、単純に標本平均を計算してこれを母平均の推定値であるとしてよい。 $$\bar{x} = \frac{1}{n}\sum^n_{i=1}x_i$$ ここで$$\bar{x}$$が標本平均で、$$n$$が標本の個数、$$x_i$$が個々の標本のデータである。 次に母分散の推定値であるが、平均と同じように標本から分散を計算してそれを推定値とすればいいかといえば、そうではない。母分散の定義は次のようなものだった。 $$\sigma^2 = \frac{1}{n}\sum^n_{i=1}(x_i-m)^2$$ しかし、この式を標本に適用して計算される標本分散は母分散に大して若干小さくなる傾向がある*2。 この偏りを修正するには、割る数を少し小さくしてやればいい。 $$s^2 = \frac{1}{n-1}\sum^n_{i=1}(x_i-\bar{x})^2$$ この式により計算される値$$s^2$$を、母分散に対して偏りのない分散という意味で不偏分散と呼ぶ。また、その平方根$$s$$を標準偏差と呼ぶ。 **自由度について 母分散を計算するときに使った$$n$$、不偏分散を計算するときに使った$$n-1$$は自由度と呼ばれる。これは単なるデータ数とは少し意味合いが違って、「ある系の位置を一意的に決定するのに必要な、独立な量の個数」と定義される*3。 「位置」というのは個々のデータの全ての値のことで*4、例えばn個のデータの値を何の事前情報も無い状態から決定するにはn個のデータが必要となる。しかし、そこに「n個のデータの平均値」という情報が与えられると、n個のデータの値をn-1個のデータから決定することができるようになる。n-1個のデータが分かれば、残りの一つはそれらのデータと平均値の値から計算できるためである。 この自由度という概念を用いて不偏分散の式を言葉により書き直せば次のようになる。       偏差平方和 不偏分散 = -------------        自由度 「偏差平方和」というのは、平均値からの距離(偏差)の平方(二乗)の総和という意味で、母分散、不偏分散の計算式からわかるように、次の式により計算される値である。 $$\sum_{i=1}^n(x_i-m)^2$$ ---- $$*1$$ ここで$$\sum$$という記号は、記号以降の数式中にある記号の下で指定された数字(ここでは$$i$$)を下で指定された数値(ここでは1)から記号の上で指定された数値(ここでは$$n$$)まで1ずつ増やして全てのパターンの数式を作り、その総和を計算するという操作を略記したものと約束する。例えば、$$\sum^n_{i=1}x_i=x_1 + x_2 + ... + x_n$$といった具合。$$x_1, x_2$$などの下付き数値は添え字と呼び、単に$$x_1$$と$$x_2$$が別物であることを区別する数値である(ただし値が同一の場合はありうる)。 $$*2$$標本平均の変わりに母平均を使えるのであれば偏りは生じない。ただしそのような状況はほとんどない。 $$*3$$ランダウ=リフシッツ「物理学小教程 力学・場の理論」 $$*4$$例えば、データが2つならそれは平面座標の一点と結び付けられる、という意味で「位置」である。データがn個なら、それはn次元空間の一点と結び付けられる。 ---- **グラフ描画用スクリプト[R] ***パンのヒストグラム pan <- c(rep(60,1), rep(70,15), rep(80,23), rep(90,27), rep(100, 20), rep(110, 12), rep(120,2)) hist(pan, breaks=c(55,65,75,85,95,105,115,125),xlim=c(40,140), xlab="パンの目方(g)", ylab="パンの数",main="") par(new=T) curve(dnorm(x,89.4,13.39531),xlim=c(40,140), xlab="", ylab="", main="",axes=F,lty=2) panというオブジェクトにパンの個数のデータをベクトルとして与えている部分はいいと思います。rep()関数は第一引数で与えられたベクトルを第二引数で与えられた数値の分繰り返したベクトルを作成する関数です(関連:[[ベクトルと代入]])。 次に、hist()という関数がヒストグラムを描画する関数です。最低限必要なのはデータベクトルだけなので、区切り点を意識しないのであれば hist(pan) という記述だけでヒストグラムが描けます。区切りはRが適当に判断してくれます。 引数のbreaks=が区切り点の指定です。区切り点はベクトルとして指定します。xlim=はx軸の領域を指定します。領域の最初の値と終わりの値の2つをベクトルにまとめて与えます。xlab=はx軸のラベル名を指定する関数です。文字列を入力する場合はダブルクオーテーション「"」で括るのを忘れないでください。ylab=は同様にy軸、main=はタイトルを指定する引数です。 次のpar()関数はグラフィックのパラメータを指定する関数で、 par(new=T) と入力した場合は前のグラフへ次のグラフがそのまま上書きされます(一回だけ)。 つぎのcurve()関数は曲線を描画する関数です。第一引数は関数を要求します。このように、関数の引数が関数ということも可能ですし、珍しくありません。第一引数に与えられている関数は正規分布の密度関数です。引数は最初から順に、xの値、平均値、標準偏差です。第二~第五引数は先のhist()関数と同様ですが、xlimを同じ値にすることでグラフをぴったり重ねさせ、軸の名前やタイトルは空の「""」を指定することでダブるのを防いでいます。グラフを重ね描きするときはしばしばこのようなことをします。第六引数のaxes=は軸の描画を指定し、FまたはFALSEの指定で描画しなくなります。最後の引数lty=は線の種類を数値で指定します。数値により使われる線の種類が異なります。グラフを見てわかるように2を指定した場合は点線です。 このようにグラフを描く関数は引数が沢山あって面倒な気もしますが、別に何も指定しなくてもそれなりのものは描いてくれますし、ほとんどのグラフ描画用の関数で引数は共通なのでボチボチ覚えていけばすぐに自由にグラフを描けるようになります。こうしたグラフを描画するときに指定する引数、パラメータをグラフィックスパラメータと呼びます。関数に直接指定する場合もありますし、par()関数によって間接的に指定する場合もあります。どのようなグラフィックスパラメータが存在しているか、どのように指定するかは例えば[[R-tipsのグラフィックスパラメータのページ>http://cse.naro.affrc.go.jp/takezawa/r-tips/r/53.html]]などを参照してみてください。 なお、パンは英語でbreadじゃねーかという突っ込みは受け付けますが修正しません。パンを表すオブジェクトはpanが分かりやすいに決まってます。べつに少しも負け惜しみとかそんなんじゃありません。 ***2つの正規分布曲線 curve(dnorm(x,0,1),xlim=c(-3,3),ylim=c(0,0.4) ,xlab="",ylab="") par(new=T) curve(dnorm(x,0,2),xlim=c(-3,3),ylim=c(0,0.4) ,xlab="",ylab="") ほとんど先ほど説明した関数で構成されていますが、xlim=のみでなくylim=という引数も指定しているのがポイントです。ylim=は名前から推定できると思いますがy軸の領域を指定する引数です。 ----
レジメの[[PDFファイル>http://www39.atwiki.jp/stat_semi?cmd=upload&act=open&pageid=22&file=2-1.pdf]]をアップしておきます。また、このページの最後にレジメ中のグラフ作成に使用したRのソースコードとその解説を記載しておきます。Rのコンソールへコピペすることで同様のグラフが描画されるはずです。よろしければ参考にしてください。 以下PDFファイルの中身と同様のレジメです。 ---- **米をパンに切り替えたら血圧が下がるのか? 白米に比べライ麦パンなどはカリウムを多く含むため、血圧上昇の予防になる。パンでなくとも玄米でも可。 **ヒストグラム 「横軸にパンの重さをとり、縦軸にパンの数をとって(p38)」描いた次にようなグラフをヒストグラムと呼ぶ。 #image(1.png) 図1.ヒストグラム 本文中では60、70、80…グラムのパンの重さを数えたと書いてあるが、実際にはパンの重さがそのような調度の値だけをとるということはありえない。本文中表10(p39)は正しくは次のような形となる。 |階級(g)|階級値(パンの重さ、g)|度数(個数、個)| |55-65|60|1| |65-75|70|15| |75-85|80|23| |85-95|90|27| |95-105|100|20| |105-115|110|12| |115-125|120|2| このように、ある代表値(階級値)を中心とするある範囲(階級)に含まれるデータの個数(度数)をまとめた表を度数分布表と呼ぶ。 図1に点線で示したのはパンの数を無限大、階級幅を無限小にしたときのヒストグラムで、この曲線により示される分布を正規分布、Gauss分布などと呼ぶ。 データの切捨ての余蘊亜人為操作が加わると、本文中表12(p40)のように切断された分布となる。これは切断正規分布と呼ばれる。 コントロールできない偶然の誤差は結果として正規分布を生じやすい。これを逆に利用し、正規性を調べることで偶然でない誤差を探すこともできる。 **資料と母集団 「パン屋が売っている全体のパン(p44)」のように、全ての対象の集まりを母集団と呼ぶ。そして、「A老人が買った100切れのパン」のように母集団から抽出された集まりを資料、または標本と呼ぶ。 母集団の概念を使って仮設検定を説明すると、仮説検定と言うのは、「ある資料がある母集団から抽出されたものとみなすことができるかどうか」を調べているということができる。 **分布の代表値 平均値は分布がどこを中心としているかを述べるのに便利なパラメータであるが、同じ平均値でも分布が同じとは限らない。 #image(2.png) 図2.2つの正規分布 図2はいずれも平均値が0の正規分布であるが、明らかに形が違う。とがった分布は平均に近い値が出やすく、平らな分布は出にくい。バラつかない分布とばらついた分布と言い換えることもできる。「バラつき」を測る測度が必要である。そこで、次の式で定義される母分散$$\sigma^2$$を導入する*1。 $$\sigma^2 = \frac{1}{n}\sum^n_{i=1}(x_i-m)^2$$ $$n$$は母集団を構成するデータの数、$$x_i$$は個々のデータ、$$m$$は母平均値である。母分散は「母平均から個々のデータまでの距離の二乗」の平均値である。二乗ではイメージがしにくいので、それの平方根を取って標準偏差$$\sigma$$を定義する。 $$\sigma = \sqrt{\sigma^2}$$ 正規分布の形は平均値$$m$$と標準偏差$$\sigma$$(または母分散)の2つの情報があれば完全に決定される。 **正規分布の基準化 正規分布曲線を計算によって求めるのは多少骨が折れる。そのため、正規分布するデータに適当な変換を施して、何か1つの基準となる正規分布に変換できれば便利である。そうすれば、我々はその基準となる正規分布について値を計算しさえすればよい。 まずは平均値を0にする。これには、個々のデータ全てから母平均を引けばいい。 $$X_i = x_i - m$$ こうして作られた$$X_i$$というデータの集まりは平均が0の分布となる。 次に、標準偏差を1にする。これは、それぞれの$$X_i$$を標準偏差$$\sigma$$で割ればいい。 $$u_i = \frac{X_i}{\sigma}$$ こうして作られた$$u_i$$というデータの集まりは標準偏差が1の分布となる。 この一連の作業を施せば、どんな分布でも(正規分布でありさえすれば)平均が0、標準偏差が1の正規分布となる。この正規分布を基準正規分布、もしくは標準正規分布と呼ぶ。そして、今と逆の操作を施せば標準正規分布からもとの分布を作ることが可能である。 標準正規分布には「基準正規分布について、その中心ゼロから、ある距離以上にある値が出現する確率(p59)」をまとめた数表が作成されており、多くの統計学の教科書に付録として載っている。よって、 +ある基準値を考える。 +その基準値を正規化する。 +正規分布表を調べる。 +「ある基準値」以下(もしくは以上)の値が出現する確率がわかる! しかしながら、現在ではコンピュータを使ってあらゆる平均値、標準偏差の正規分布曲線を簡単な操作によって計算できる。そのため、正規分布表を引くことはおろか、基準化という作業すら不要な場合がほとんどである。 **$$m$$と$$\sigma$$の推定値 これまでは「母平均」や「母分散」を中心として議論を進めてきた。しかし、母集団のデータ全てが得られるようなケースはまずない。われわれが得ることの出来るのは大抵の場合は限られたデータからなる標本である。そこで、標本から得られる情報を用いて母集団の平均、分散を推定する方法が必要となる。 まず母平均の推定値であるが、これについては標本のデータを用いて計算した平均値、つまり標本平均が最もよい推定値であることが明らかとなっている。そのため、単純に標本平均を計算してこれを母平均の推定値であるとしてよい。 $$\bar{x} = \frac{1}{n}\sum^n_{i=1}x_i$$ ここで$$\bar{x}$$が標本平均で、$$n$$が標本の個数、$$x_i$$が個々の標本のデータである。 次に母分散の推定値であるが、平均と同じように標本から分散を計算してそれを推定値とすればいいかといえば、そうではない。母分散の定義は次のようなものだった。 $$\sigma^2 = \frac{1}{n}\sum^n_{i=1}(x_i-m)^2$$ しかし、この式を標本に適用して計算される標本分散は母分散に大して若干小さくなる傾向がある*2。 この偏りを修正するには、割る数を少し小さくしてやればいい。 $$s^2 = \frac{1}{n-1}\sum^n_{i=1}(x_i-\bar{x})^2$$ この式により計算される値$$s^2$$を、母分散に対して偏りのない分散という意味で不偏分散と呼ぶ。また、その平方根$$s$$を標準偏差と呼ぶ。 **自由度について 母分散を計算するときに使った$$n$$、不偏分散を計算するときに使った$$n-1$$は自由度と呼ばれる。これは単なるデータ数とは少し意味合いが違って、「ある系の位置を一意的に決定するのに必要な、独立な量の個数」と定義される*3。 「位置」というのは個々のデータの全ての値のことで*4、例えばn個のデータの値を何の事前情報も無い状態から決定するにはn個のデータが必要となる。しかし、そこに「n個のデータの平均値」という情報が与えられると、n個のデータの値をn-1個のデータから決定することができるようになる。n-1個のデータが分かれば、残りの一つはそれらのデータと平均値の値から計算できるためである。 この自由度という概念を用いて不偏分散の式を言葉により書き直せば次のようになる。       偏差平方和 不偏分散 = -------------        自由度 「偏差平方和」というのは、平均値からの距離(偏差)の平方(二乗)の総和という意味で、母分散、不偏分散の計算式からわかるように、次の式により計算される値である。 $$\sum_{i=1}^n(x_i-m)^2$$ ---- $$*1$$ ここで$$\sum$$という記号は、記号以降の数式中にある記号の下で指定された数字(ここでは$$i$$)を下で指定された数値(ここでは1)から記号の上で指定された数値(ここでは$$n$$)まで1ずつ増やして全てのパターンの数式を作り、その総和を計算するという操作を略記したものと約束する。例えば、$$\sum^n_{i=1}x_i=x_1 + x_2 + ... + x_n$$といった具合。$$x_1, x_2$$などの下付き数値は添え字と呼び、単に$$x_1$$と$$x_2$$が別物であることを区別する数値である(ただし値が同一の場合はありうる)。 $$*2$$標本平均の変わりに母平均を使えるのであれば偏りは生じない。ただしそのような状況はほとんどない。 $$*3$$ランダウ=リフシッツ「物理学小教程 力学・場の理論」 $$*4$$例えば、データが2つならそれは平面座標の一点と結び付けられる、という意味で「位置」である。データがn個なら、それはn次元空間の一点と結び付けられる。 ---- **グラフ描画用スクリプト[R] ***パンのヒストグラム pan <- c(rep(60,1), rep(70,15), rep(80,23), rep(90,27), rep(100, 20), rep(110, 12), rep(120,2)) hist(pan, breaks=c(55,65,75,85,95,105,115,125),xlim=c(40,140), xlab="パンの目方(g)", ylab="パンの数",main="") par(new=T) curve(dnorm(x,89.4,13.39531),xlim=c(40,140), xlab="", ylab="", main="",axes=F,lty=2) panというオブジェクトにパンの個数のデータをベクトルとして与えている部分はいいと思います。rep()関数は第一引数で与えられたベクトルを第二引数で与えられた数値の分繰り返したベクトルを作成する関数です(関連:[[ベクトルと代入]])。 次に、hist()という関数がヒストグラムを描画する関数です。最低限必要なのはデータベクトルだけなので、区切り点を意識しないのであれば hist(pan) という記述だけでヒストグラムが描けます。区切りはRが適当に判断してくれます。 引数のbreaks=が区切り点の指定です。区切り点はベクトルとして指定します。xlim=はx軸の領域を指定します。領域の最初の値と終わりの値の2つをベクトルにまとめて与えます。xlab=はx軸のラベル名を指定する関数です。文字列を入力する場合はダブルクオーテーション「"」で括るのを忘れないでください。ylab=は同様にy軸、main=はタイトルを指定する引数です。 次のpar()関数はグラフィックのパラメータを指定する関数で、 par(new=T) と入力した場合は前のグラフへ次のグラフがそのまま上書きされます(一回だけ)。 つぎのcurve()関数は曲線を描画する関数です。第一引数は関数を要求します。このように、関数の引数が関数ということも可能ですし、珍しくありません。第一引数に与えられている関数は正規分布の密度関数です。引数は最初から順に、xの値、平均値、標準偏差です。第二~第五引数は先のhist()関数と同様ですが、xlimを同じ値にすることでグラフをぴったり重ねさせ、軸の名前やタイトルは空の「""」を指定することでダブるのを防いでいます。グラフを重ね描きするときはしばしばこのようなことをします。第六引数のaxes=は軸の描画を指定し、FまたはFALSEの指定で描画しなくなります。最後の引数lty=は線の種類を数値で指定します。数値により使われる線の種類が異なります。グラフを見てわかるように2を指定した場合は点線です。 このようにグラフを描く関数は引数が沢山あって面倒な気もしますが、別に何も指定しなくてもそれなりのものは描いてくれますし、ほとんどのグラフ描画用の関数で引数は共通なのでボチボチ覚えていけばすぐに自由にグラフを描けるようになります。こうしたグラフを描画するときに指定する引数、パラメータをグラフィックスパラメータと呼びます。関数に直接指定する場合もありますし、par()関数によって間接的に指定する場合もあります。どのようなグラフィックスパラメータが存在しているか、どのように指定するかは例えば[[R-tipsのグラフィックスパラメータのページ>http://cse.naro.affrc.go.jp/takezawa/r-tips/r/53.html]]などを参照してみてください。 なお、パンは英語でbreadじゃねーかという突っ込みは受け付けますが修正しません。パンを表すオブジェクトはpanが分かりやすいに決まってます。べつに少しも負け惜しみとかそんなんじゃありません。ありませんったら。 ***2つの正規分布曲線 curve(dnorm(x,0,1),xlim=c(-3,3),ylim=c(0,0.4) ,xlab="",ylab="") par(new=T) curve(dnorm(x,0,2),xlim=c(-3,3),ylim=c(0,0.4) ,xlab="",ylab="") ほとんど先ほど説明した関数で構成されていますが、xlim=のみでなくylim=という引数も指定しているのがポイントです。ylim=は名前から推定できると思いますがy軸の領域を指定する引数です。 ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: