バイオ・データ・マイニング/Rで検定する
をテンプレートにして作成
開始行:
*はじめに [#w5ae99c9]
ここでは、Rを使って検定を行います。
*準備 [#q96ce9c2]
Rのインストールについては、次のページを見てください。
-[[MacでRを使う>機械学習/MacでRを使う]]
-[[WindowsでRを使う>機械学習/WindowsでRを使う]]
ここでは、標準で使用できる''irisデータセット''を使います。
#geshi(rsplus){{
data(iris)
}}
このデータセットは、アヤメの種類(Species)をがく片の長さ...
長さと幅は連続値、種類はsetosa, versicolor, virginicaのい...
このデータセットには、setosa, versicolor, virginicaという...
ランダムに10個のデータを選択して、見てみましょう。
#geshi(rsplus){{
iris[sort(sample(1:150,10)),]
}}
#geshi(rsplus){{
> iris[sort(sample(1:150,10)),]
Sepal.Length Sepal.Width Petal.Length Petal.Width ...
4 4.6 3.1 1.5 0.2 ...
22 5.1 3.7 1.5 0.4 ...
65 5.6 2.9 3.6 1.3 ver...
97 5.7 2.9 4.2 1.3 ver...
100 5.7 2.8 4.1 1.3 ver...
108 7.3 2.9 6.3 1.8 vi...
116 6.4 3.2 5.3 2.3 vi...
122 5.6 2.8 4.9 2.0 vi...
136 7.7 3.0 6.1 2.3 vi...
146 6.7 3.0 5.2 2.3 vi...
}}
論文に使用するグラフはカッコイイ方がいいので、グラフ作成...
#geshi(rsplus){{
install.packages("ggplot2")
library(ggplot2)
}}
*検定 [#s53a2538]
統計的検定では、「AとBの間には差がある」という仮説に対し...
否定される仮説を''帰無仮説''、帰無仮説を否定することを''...
帰無仮説が棄却されることによって支持される、帰無仮説の反...
**平均の差の検定(t検定) [#zf6ee43e]
Petal.Lengthについて、Versicolorの平均は4.906 cm、Virgini...
この二つの平均にの差には、意味があるのでしょうか。
(Virginicaの方がVersicolorよりも大きいと言えるでしょうか...
これを、''t検定''という方法によって調べることができます。
''t検定''では、対立仮説を「二つの平均の差には意味がある」...
t検定を行うには、''t.test関数''を使います。
#geshi(rsplus){{
t.test(versicolor$Petal.Length, virginica$Petal.Length)
}}
#geshi(rsplus){{
> t.test(versicolor$Petal.Length, virginica$Petal.Length)
Welch Two Sample t-test
data: versicolor$Petal.Length and virginica$Petal.Length
t = -12.604, df = 95.57, p-value < 2.2e-16
alternative hypothesis: true difference in means is not e...
95 percent confidence interval:
-1.49549 -1.08851
sample estimates:
mean of x mean of y
4.260 5.552
}}
これは、''二つの群の分散が同じであることを仮定しない''、'...
''二つの群の分散が同じであることを仮定する''検定は''Stude...
#geshi(rsplus){{
t.test(versicolor$Petal.Length, virginica$Petal.Length, v...
}}
#geshi(rsplus){{
> t.test(versicolor$Petal.Length, virginica$Petal.Length,...
Two Sample t-test
data: versicolor$Petal.Length and virginica$Petal.Length
t = -12.604, df = 98, p-value < 2.2e-16
alternative hypothesis: true difference in means is not e...
95 percent confidence interval:
-1.495426 -1.088574
sample estimates:
mean of x mean of y
4.260 5.552
}}
まず、''p値''(''p-value'')を見ます。
p値が、0.1よりも小さいときは「10%有意水準で統計的有意な差...
つぎに、平均の差の95%信頼区間(95 percent confidence inte...
この区間がゼロを含むときは、5%有意水準で有意な差があると...
「5%有意水準で有意な差がない」ではないことに注意しましょ...
ここで、p値が 1.612e-06 で、0.01よりも小さいため、「Versi...
次に、Versicolorを半分ずつに分けて、そのPetal.Lengthの平...
#geshi(rsplus){{
versicolor1 <- versicolor[1:25,]
versicolor2 <- versicolor[26:50,]
mean(versicolor1$Petal.Length)
mean(versicolor2$Petal.Length)
}}
#geshi(rsplus){{
> mean(versicolor1$Petal.Length)
[1] 4.312
> mean(versicolor2$Petal.Length)
[1] 4.208
}}
前半グループの平均は 4.312 cm、後半グループの平均は 4.208...
t検定を行うと、次のようになります。
#geshi(rsplus){{
t.test(versicolor1$Petal.Length, versicolor2$Petal.Length...
}}
#geshi(rsplus){{
> t.test(versicolor1$Petal.Length, versicolor2$Petal.Leng...
Two Sample t-test
data: versicolor1$Petal.Length and versicolor2$Petal.Len...
t = 0.77934, df = 48, p-value = 0.4396
alternative hypothesis: true difference in means is not e...
95 percent confidence interval:
-0.1643124 0.3723124
sample estimates:
mean of x mean of y
4.312 4.208
}}
p値が 0.4396 あり、平均の差の95%信頼区間にも0が含まれてい...
したがって、統計的に有意な差があるとはいえません。
**比率の差の検定 [#ibaf0da2]
VersicolorとVirginicaについて、Petal.Lengthの値がその平均...
#geshi(rsplus){{
sum(versicolor$Petal.Length > mean(versicolor$Petal.Lengt...
sum(virginica$Petal.Length > mean(virginica$Petal.Length))
}}
#geshi(rsplus){{
> sum(versicolor$Petal.Length > mean(versicolor$Petal.Len...
[1] 27
> sum(virginica$Petal.Length > mean(virginica$Petal.Lengt...
[1] 25
}}
Versicolorでは50個中27個(54%)、Virginicaでは50個中25個...
この二つの比率の差には、意味があるのでしょうか。
(Versicolorの方がVirginicaよりも比率が高いと言えるでしょ...
これを、''2標本の比率検定''という方法によって調べることが...
''2標本の比率検定''では、、対立仮説を「二つの比率の差には...
2標本の比率検定を行うには、''prop.test関数''を使います。
#geshi(rsplus){{
> prop.test(c(27, 25), c(50, 50))
2-sample test for equality of proportions with continuit...
data: c(27, 25) out of c(50, 50)
X-squared = 0.040064, df = 1, p-value = 0.8414
alternative hypothesis: two.sided
95 percent confidence interval:
-0.1756826 0.2556826
sample estimates:
prop 1 prop 2
0.54 0.50
}}
一つ目の引数は条件を満たす測定値の数のベクトル、二つ目の...
結果の見方はt検定と同じです。
ここではp値が0.841と0.05よりも大きく、(比率の差の)95%信...
**独立性の検定 [#idb1aed6]
今度は、Setosaについて、Sepal.LengthとPetal.Lengthについ...
#geshi(rsplus){{
sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
setosa$Sepal.Length > mean(setosa$Sepal.Length))
sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
setosa$Sepal.Length <= mean(setosa$Sepal.Length))
sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
setosa$Sepal.Length > mean(setosa$Sepal.Length))
sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
setosa$Sepal.Length <= mean(setosa$Sepal.Length))
}}
#geshi(rsplus){{
> sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
+ setosa$Sepal.Length > mean(setosa$Sepal.Length))
[1] 15
> sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
+ setosa$Sepal.Length <= mean(setosa$Sepal.Length))
[1] 11
> sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
+ setosa$Sepal.Length > mean(setosa$Sepal.Length))
[1] 7
> sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
+ setosa$Sepal.Length <= mean(setosa$Sepal.Length))
[1] 17
}}
これを表にまとめると、次の表のようになります。
このような表を''分割表''といいます。
|CENTER:~Setosa|CENTER:~Petal.Lengthが平均より大きい|CENT...
|CENTER:~Sepal.Lengthが平均より大きい|RIGHT:15|RIGHT:7|RI...
|CENTER:~Sepal.Lengthが平均以下|RIGHT:11|RIGHT:17|RIGHT:28|
|CENTER:~計|RIGHT:26|RIGHT:24|RIGHT:50|
そこで、分割表を表す行列を作っておきます。
#geshi(rsplus){{
> m <- matrix(c(15, 11, 7, 17), nrow=2)
> m
[,1] [,2]
[1,] 15 7
[2,] 11 17
}}
この二つの事象は、独立に生じているでしょうか。
(Sepal.Lengthが大きいこととPetal.Lengthが平均より大きい...
これを''カイ二乗検定''または''Fisherの正確検定''という方...
''カイ二乗検定''と''Fisherの正確検定''では、対立仮説を「...
基本的には、カイ二乗検定を行いますが、分割表が次のような...
-度数が0のセルが存在する、または
-期待度数が5未満のセルが20%以上存在する
期待度数というのは、それぞれの事象が生じる確率から求めら...
Petal.Lengthが平均より大きい確率は [math]26/50 = 0.52[/ma...
上の分割表は、この条件に当てはまらないので、カイ二乗検定...
カイ二乗検定を行うには、''chisq.test関数''を使います。
#geshi(rsplus){{
> chisq.test(m)
Pearson's Chi-squared test with Yates' continuity correc...
data: m
X-squared = 3.045, df = 1, p-value = 0.08099
}}
分割表を表す行列を作って引数とします。
ここでは、p値が0.081と0.05より大きいので、5%有意水準で独...
(帰無仮説が棄却できなかったときは、対立仮説についてはな...
Fisherの正確検定を行うには、''fisher.test関数''を使います。
#geshi(rsplus){{
> fisher.test(m)
Fisher's Exact Test for Count Data
data: m
p-value = 0.05176
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.8902322 12.7546580
sample estimates:
odds ratio
3.229179
}}
ここでも、p値が0.051と0.05より大きいので、5%有意水準で独...
*演習 [#t115f943]
VersicolorのSepal.Lengthの平均とVirginicaのSepal.Lengthの...
*参考文献 [#zf4d0948]
-樋口千洋: ''Rによるバイオインフォマティクスデータ解析 第...
#html{{
<iframe style="width:120px;height:240px;" marginwidth="0"...
}}
終了行:
*はじめに [#w5ae99c9]
ここでは、Rを使って検定を行います。
*準備 [#q96ce9c2]
Rのインストールについては、次のページを見てください。
-[[MacでRを使う>機械学習/MacでRを使う]]
-[[WindowsでRを使う>機械学習/WindowsでRを使う]]
ここでは、標準で使用できる''irisデータセット''を使います。
#geshi(rsplus){{
data(iris)
}}
このデータセットは、アヤメの種類(Species)をがく片の長さ...
長さと幅は連続値、種類はsetosa, versicolor, virginicaのい...
このデータセットには、setosa, versicolor, virginicaという...
ランダムに10個のデータを選択して、見てみましょう。
#geshi(rsplus){{
iris[sort(sample(1:150,10)),]
}}
#geshi(rsplus){{
> iris[sort(sample(1:150,10)),]
Sepal.Length Sepal.Width Petal.Length Petal.Width ...
4 4.6 3.1 1.5 0.2 ...
22 5.1 3.7 1.5 0.4 ...
65 5.6 2.9 3.6 1.3 ver...
97 5.7 2.9 4.2 1.3 ver...
100 5.7 2.8 4.1 1.3 ver...
108 7.3 2.9 6.3 1.8 vi...
116 6.4 3.2 5.3 2.3 vi...
122 5.6 2.8 4.9 2.0 vi...
136 7.7 3.0 6.1 2.3 vi...
146 6.7 3.0 5.2 2.3 vi...
}}
論文に使用するグラフはカッコイイ方がいいので、グラフ作成...
#geshi(rsplus){{
install.packages("ggplot2")
library(ggplot2)
}}
*検定 [#s53a2538]
統計的検定では、「AとBの間には差がある」という仮説に対し...
否定される仮説を''帰無仮説''、帰無仮説を否定することを''...
帰無仮説が棄却されることによって支持される、帰無仮説の反...
**平均の差の検定(t検定) [#zf6ee43e]
Petal.Lengthについて、Versicolorの平均は4.906 cm、Virgini...
この二つの平均にの差には、意味があるのでしょうか。
(Virginicaの方がVersicolorよりも大きいと言えるでしょうか...
これを、''t検定''という方法によって調べることができます。
''t検定''では、対立仮説を「二つの平均の差には意味がある」...
t検定を行うには、''t.test関数''を使います。
#geshi(rsplus){{
t.test(versicolor$Petal.Length, virginica$Petal.Length)
}}
#geshi(rsplus){{
> t.test(versicolor$Petal.Length, virginica$Petal.Length)
Welch Two Sample t-test
data: versicolor$Petal.Length and virginica$Petal.Length
t = -12.604, df = 95.57, p-value < 2.2e-16
alternative hypothesis: true difference in means is not e...
95 percent confidence interval:
-1.49549 -1.08851
sample estimates:
mean of x mean of y
4.260 5.552
}}
これは、''二つの群の分散が同じであることを仮定しない''、'...
''二つの群の分散が同じであることを仮定する''検定は''Stude...
#geshi(rsplus){{
t.test(versicolor$Petal.Length, virginica$Petal.Length, v...
}}
#geshi(rsplus){{
> t.test(versicolor$Petal.Length, virginica$Petal.Length,...
Two Sample t-test
data: versicolor$Petal.Length and virginica$Petal.Length
t = -12.604, df = 98, p-value < 2.2e-16
alternative hypothesis: true difference in means is not e...
95 percent confidence interval:
-1.495426 -1.088574
sample estimates:
mean of x mean of y
4.260 5.552
}}
まず、''p値''(''p-value'')を見ます。
p値が、0.1よりも小さいときは「10%有意水準で統計的有意な差...
つぎに、平均の差の95%信頼区間(95 percent confidence inte...
この区間がゼロを含むときは、5%有意水準で有意な差があると...
「5%有意水準で有意な差がない」ではないことに注意しましょ...
ここで、p値が 1.612e-06 で、0.01よりも小さいため、「Versi...
次に、Versicolorを半分ずつに分けて、そのPetal.Lengthの平...
#geshi(rsplus){{
versicolor1 <- versicolor[1:25,]
versicolor2 <- versicolor[26:50,]
mean(versicolor1$Petal.Length)
mean(versicolor2$Petal.Length)
}}
#geshi(rsplus){{
> mean(versicolor1$Petal.Length)
[1] 4.312
> mean(versicolor2$Petal.Length)
[1] 4.208
}}
前半グループの平均は 4.312 cm、後半グループの平均は 4.208...
t検定を行うと、次のようになります。
#geshi(rsplus){{
t.test(versicolor1$Petal.Length, versicolor2$Petal.Length...
}}
#geshi(rsplus){{
> t.test(versicolor1$Petal.Length, versicolor2$Petal.Leng...
Two Sample t-test
data: versicolor1$Petal.Length and versicolor2$Petal.Len...
t = 0.77934, df = 48, p-value = 0.4396
alternative hypothesis: true difference in means is not e...
95 percent confidence interval:
-0.1643124 0.3723124
sample estimates:
mean of x mean of y
4.312 4.208
}}
p値が 0.4396 あり、平均の差の95%信頼区間にも0が含まれてい...
したがって、統計的に有意な差があるとはいえません。
**比率の差の検定 [#ibaf0da2]
VersicolorとVirginicaについて、Petal.Lengthの値がその平均...
#geshi(rsplus){{
sum(versicolor$Petal.Length > mean(versicolor$Petal.Lengt...
sum(virginica$Petal.Length > mean(virginica$Petal.Length))
}}
#geshi(rsplus){{
> sum(versicolor$Petal.Length > mean(versicolor$Petal.Len...
[1] 27
> sum(virginica$Petal.Length > mean(virginica$Petal.Lengt...
[1] 25
}}
Versicolorでは50個中27個(54%)、Virginicaでは50個中25個...
この二つの比率の差には、意味があるのでしょうか。
(Versicolorの方がVirginicaよりも比率が高いと言えるでしょ...
これを、''2標本の比率検定''という方法によって調べることが...
''2標本の比率検定''では、、対立仮説を「二つの比率の差には...
2標本の比率検定を行うには、''prop.test関数''を使います。
#geshi(rsplus){{
> prop.test(c(27, 25), c(50, 50))
2-sample test for equality of proportions with continuit...
data: c(27, 25) out of c(50, 50)
X-squared = 0.040064, df = 1, p-value = 0.8414
alternative hypothesis: two.sided
95 percent confidence interval:
-0.1756826 0.2556826
sample estimates:
prop 1 prop 2
0.54 0.50
}}
一つ目の引数は条件を満たす測定値の数のベクトル、二つ目の...
結果の見方はt検定と同じです。
ここではp値が0.841と0.05よりも大きく、(比率の差の)95%信...
**独立性の検定 [#idb1aed6]
今度は、Setosaについて、Sepal.LengthとPetal.Lengthについ...
#geshi(rsplus){{
sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
setosa$Sepal.Length > mean(setosa$Sepal.Length))
sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
setosa$Sepal.Length <= mean(setosa$Sepal.Length))
sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
setosa$Sepal.Length > mean(setosa$Sepal.Length))
sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
setosa$Sepal.Length <= mean(setosa$Sepal.Length))
}}
#geshi(rsplus){{
> sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
+ setosa$Sepal.Length > mean(setosa$Sepal.Length))
[1] 15
> sum(setosa$Petal.Length > mean(setosa$Petal.Length) &
+ setosa$Sepal.Length <= mean(setosa$Sepal.Length))
[1] 11
> sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
+ setosa$Sepal.Length > mean(setosa$Sepal.Length))
[1] 7
> sum(setosa$Petal.Length <= mean(setosa$Petal.Length) &
+ setosa$Sepal.Length <= mean(setosa$Sepal.Length))
[1] 17
}}
これを表にまとめると、次の表のようになります。
このような表を''分割表''といいます。
|CENTER:~Setosa|CENTER:~Petal.Lengthが平均より大きい|CENT...
|CENTER:~Sepal.Lengthが平均より大きい|RIGHT:15|RIGHT:7|RI...
|CENTER:~Sepal.Lengthが平均以下|RIGHT:11|RIGHT:17|RIGHT:28|
|CENTER:~計|RIGHT:26|RIGHT:24|RIGHT:50|
そこで、分割表を表す行列を作っておきます。
#geshi(rsplus){{
> m <- matrix(c(15, 11, 7, 17), nrow=2)
> m
[,1] [,2]
[1,] 15 7
[2,] 11 17
}}
この二つの事象は、独立に生じているでしょうか。
(Sepal.Lengthが大きいこととPetal.Lengthが平均より大きい...
これを''カイ二乗検定''または''Fisherの正確検定''という方...
''カイ二乗検定''と''Fisherの正確検定''では、対立仮説を「...
基本的には、カイ二乗検定を行いますが、分割表が次のような...
-度数が0のセルが存在する、または
-期待度数が5未満のセルが20%以上存在する
期待度数というのは、それぞれの事象が生じる確率から求めら...
Petal.Lengthが平均より大きい確率は [math]26/50 = 0.52[/ma...
上の分割表は、この条件に当てはまらないので、カイ二乗検定...
カイ二乗検定を行うには、''chisq.test関数''を使います。
#geshi(rsplus){{
> chisq.test(m)
Pearson's Chi-squared test with Yates' continuity correc...
data: m
X-squared = 3.045, df = 1, p-value = 0.08099
}}
分割表を表す行列を作って引数とします。
ここでは、p値が0.081と0.05より大きいので、5%有意水準で独...
(帰無仮説が棄却できなかったときは、対立仮説についてはな...
Fisherの正確検定を行うには、''fisher.test関数''を使います。
#geshi(rsplus){{
> fisher.test(m)
Fisher's Exact Test for Count Data
data: m
p-value = 0.05176
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.8902322 12.7546580
sample estimates:
odds ratio
3.229179
}}
ここでも、p値が0.051と0.05より大きいので、5%有意水準で独...
*演習 [#t115f943]
VersicolorのSepal.Lengthの平均とVirginicaのSepal.Lengthの...
*参考文献 [#zf4d0948]
-樋口千洋: ''Rによるバイオインフォマティクスデータ解析 第...
#html{{
<iframe style="width:120px;height:240px;" marginwidth="0"...
}}
ページ名: