それでは,ここではt検定について説明します.
応答変数(非説明変数):量的変数
説明変数:質的変数
t検定は「t分布」という分布に基づいた分析です. ちなみに,カイ二乗分布はこんな感じです. ※以下のコードはRcmdrのプラグイン,“RcmdrPlugin.KMggplot2”コードを貼り付けました.
分子のXが標準正規分布 N(0, 1) に従う
分母の確率変数が自由度nの Xn2 に従う
確率変数XとXn2 が互いに独立
t検定も正規分布から発生してきたということを覚えておいていただければ十分です.
require("ggplot2")
## Loading required package: ggplot2
.x <- seq(-318.30883898555, 318.30883898555, length.out = 100)
.df <- data.frame(x = .x, y = dt(.x, 1))
.plot <- ggplot(.df, aes(x = x, y = y)) + geom_line(size = 1.5) +
scale_y_continuous(expand = c(0.01, 0)) + xlab("x") + ylab("Density") +
labs(title = "dt(x, 1)") + theme_bw(base_size = 14, base_family = "serif")
print(.plot)
rm(.x, .df, .plot)
require("ggplot2")
.x <- seq(-22.3271247701199, 22.3271247701199, length.out = 100)
.df <- data.frame(x = .x, y = dt(.x, 2))
.plot <- ggplot(.df, aes(x = x, y = y)) + geom_line(size = 1.5) +
scale_y_continuous(expand = c(0.01, 0)) + xlab("x") + ylab("Density") +
labs(title = "dt(x, 2)") + theme_bw(base_size = 14, base_family = "serif")
print(.plot)
rm(.x, .df, .plot)
require("ggplot2")
.x <- seq(-10.2145318524074, 10.2145318524074, length.out = 100)
.df <- data.frame(x = .x, y = dt(.x, 3))
.plot <- ggplot(.df, aes(x = x, y = y)) + geom_line(size = 1.5) +
scale_y_continuous(expand = c(0.01, 0)) + xlab("x") + ylab("Density") +
labs(title = "dt(x, 3)") + theme_bw(base_size = 14, base_family = "serif")
print(.plot)
rm(.x, .df, .plot)
require("ggplot2")
.x <- seq(-5.89342953135601, 5.89342953135601, length.out = 100)
.df <- data.frame(x = .x, y = dt(.x, 5))
.plot <- ggplot(.df, aes(x = x, y = y)) + geom_line(size = 1.5) +
scale_y_continuous(expand = c(0.01, 0)) + xlab("x") + ylab("Density") +
labs(title = "dt(x, 5)") + theme_bw(base_size = 14, base_family = "serif")
print(.plot)
rm(.x, .df, .plot)
こんな分布にしたがっていると仮定するのがt検定です. Rでは実際に,どのように分析していくのかをまとめます.
授業の際にお話したとおり,仮説検証は以下の流れで行っていきます.
帰無仮説の設定
検定統計量の値を求める
帰無仮説のもとでの,結果を出力する
帰無仮説が棄却されるかどうかを判断する.
ここからは,上記の流れに沿って説明をしていきます.
帰無仮説:自分が言いたくないことを設定する.
対立仮説:自分が言いたいことを設定する.
++ 仮説の立案は用いる統計手法(もっというと,分析するデータ)によってテクニカルに決められる.
t検定の場合は,以下のように仮説を設定してあげることが必要です.
++ ex.XとYの間の平均値に,差がない
++ ex.男女の間に,平均身長の差がある.
これ以外の質問項目については,一番下に掲載します.
この問題について,男女差があるかを検討する.
帰無仮説H0:男女で支払ってもよい平均参加額に差がない
対立仮説H1:男女で支払ってもよい平均参加額に差がある
ただし,その通例に対して否定的な意見もある.
F検定で分散の等分散性を確認
等分散である→スチューデントのt検定
不等分散である→ウェルチのt検定
ウェルチのt検定一発でよい
最初にデータを読み込みます.
ついでに,記述統計量も算出しておきます.
data_riskq6 <- read.table("https://dl.dropboxusercontent.com/u/10749822/R_edu_public/data/data_riskq6.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
summary(data_riskq6)
## f1 q1.1 q1.2 q2.1 q2.2 q3.1 q3.2 q4.1 q4.2 q5.1
## men :10 A: 4 A:16 A:10 A:13 A:22 A: 8 A: 3 A:24 A:15
## women:17 B:23 B:11 B:17 B:14 B: 5 B:19 B:24 B: 3 B:12
##
##
##
##
##
## q5.2 q6 q8.1 q8.2 q9.1 q9.2 q10.1
## A: 1 Min. : 100 A: 9 A: 7 A: 8 A:20 Min. : 500
## B:26 1st Qu.: 200 B:18 B:20 B:19 B: 7 1st Qu.: 10000
## Median : 300 Median : 10000
## Mean : 537 Mean : 390315
## 3rd Qu.: 500 3rd Qu.: 20000
## Max. :5000 Max. :10000000
##
## q10.2 q10.3 q11.1 q11.2
## Min. : 800 Min. : 1000 Min. : 500 Min. : 600
## 1st Qu.: 4250 1st Qu.: 2000 1st Qu.: 2000 1st Qu.: 1525
## Median : 5000 Median : 3000 Median : 5000 Median : 3000
## Mean : 393223 Mean : 388342 Mean : 13115 Mean : 4104
## 3rd Qu.: 10000 3rd Qu.: 5000 3rd Qu.: 10000 3rd Qu.: 5000
## Max. :10000000 Max. :10000000 Max. :100000 Max. :20000
## NA's :1 NA's :1 NA's :1 NA's :1
## q11.3
## Min. : 800
## 1st Qu.: 1200
## Median : 2000
## Mean : 2841
## 3rd Qu.: 4000
## Max. :10000
##
箱ひげ図を使って,外れ値を確認します.
「グラフ」→「箱ひげ図」
変数:q6 層別:f1
library(car)
Boxplot(q6~f1, data=data_riskq6, id.method="y")
## [1] "3" "16" "21" "24"
これを見ると,“3”の数字が明らかに大きく外れているので,削除してから再度箱ひげ図を作ってみる.
data_riskq6_2 <- read.table("https://dl.dropboxusercontent.com/u/10749822/R_edu_public/data/data_riskq6_2.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
summary(data_riskq6_2)
## f1 q1.1 q1.2 q2.1 q2.2 q3.1 q3.2 q4.1 q4.2 q5.1
## men :10 A: 4 A:16 A:10 A:13 A:22 A: 8 A: 3 A:24 A:15
## women:17 B:23 B:11 B:17 B:14 B: 5 B:19 B:24 B: 3 B:12
##
##
##
##
##
## q5.2 q6 q8.1 q8.2 q9.1 q9.2 q10.1
## A: 1 Min. : 100.0 A: 9 A: 7 A: 8 A:20 Min. : 500
## B:26 1st Qu.: 200.0 B:18 B:20 B:19 B: 7 1st Qu.: 10000
## Median : 250.0 Median : 10000
## Mean : 365.4 Mean : 390315
## 3rd Qu.: 500.0 3rd Qu.: 20000
## Max. :1000.0 Max. :10000000
## NA's :1
## q10.2 q10.3 q11.1 q11.2
## Min. : 800 Min. : 1000 Min. : 500 Min. : 600
## 1st Qu.: 4250 1st Qu.: 2000 1st Qu.: 2000 1st Qu.: 1525
## Median : 5000 Median : 3000 Median : 5000 Median : 3000
## Mean : 393223 Mean : 388342 Mean : 13115 Mean : 4104
## 3rd Qu.: 10000 3rd Qu.: 5000 3rd Qu.: 10000 3rd Qu.: 5000
## Max. :10000000 Max. :10000000 Max. :100000 Max. :20000
## NA's :1 NA's :1 NA's :1 NA's :1
## q11.3
## Min. : 800
## 1st Qu.: 1200
## Median : 2000
## Mean : 2841
## 3rd Qu.: 4000
## Max. :10000
##
Boxplot(q6~f1, data=data_riskq6_2, id.method="y")
## [1] "9" "20" "16" "21" "24"
まだ外れている数字が,,,とも怒られているけど,これくらいなら良いでしょう.
「データ」タブでは,グループにf1,目的変数にq6とする.
「オプション」タブでは,対立仮説は「両側」,信頼水準は.95,等分散はNoとする.
以上を選んだらOKをクリックする.
以下には,Rコマンダーを使って以上のように選んだ時のコードを貼り付けて,その結果を出力する.
t.test(q6~f1, alternative='two.sided', conf.level=.95, var.equal=FALSE,
data=data_riskq6_2)
##
## Welch Two Sample t-test
##
## data: q6 by f1
## t = -2.8428, df = 22.679, p-value = 0.009293
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -407.77661 -64.11882
## sample estimates:
## mean in group men mean in group women
## 211.1111 447.0588
**" t = -2.8428, df = 22.679, p-value = 0.009293“**が主な結果
95 percent confidence interval:
-407.77661 -64.11882.
mean in group men mean in group women 211.1111 447.0588
「KMggplot2」→「箱ひげ図/バイオリンプロット/信頼区間」
横軸変数:f1,Y軸変数:q6
グラフの形式:95%信頼区間(t分布)
require("ggplot2")
.df <- data.frame(x = data_riskq6_2$f1, y = data_riskq6_2$q6)
.plot <- ggplot(data = .df, aes(x = factor(x), y = y)) +
stat_summary(fun.y = "mean", geom = "point" ) +
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.1, fun.args = list(conf.int = 0.95)) +
xlab("f1") + ylab("q6") + theme_bw(base_size = 14, base_family = "serif")
print(.plot)
## Warning: Removed 1 rows containing non-finite values (stat_summary).
## Warning: Removed 1 rows containing non-finite values (stat_summary).
rm(.df, .plot)
t値,自由度,p値をそれぞれ記入して,最後の文章としてまとめます.
なお,p値は指数で表記されているので,気をつけてください.指数が出てくるときは相当に桁数が大きい時です.
もし,指数がわかりにくければ,Excelなどで変換してから表示するとわかりやすいと思います.
t(22.679)=2.843(p<0.01)であり,帰無仮説を棄却して対立仮説を採択する.したがって,男性よりも女性の方が購入してもよいと思う金額が高い.
t検定については,以上です.
a:男性→men
b:女性→women
1-1
A:80%の確率で4000円を得られる((4000, 0.80))
B:確実に3000円を得られる((3000, 1.00))
1-2
A:80%の確率で4000円を失う((-4000, 0.80))
B:確実に3000円を失う((-3000, 1.00))
2-1
A:50%の確率で1000円が得られる((1000, 0.50))
B:確実に500円が得られる(500,1.00)
2-2
A:50%の確率で1000円を失う((-1000, 0.50))
B:確実に500円を失う(-500,1.00)
3-1
A:0.1%の確率で5000円が得られる((5000, 0.001))
B:確実に5円が得られる((5, 1.00))
3-2
A:0.1%の確率で5000円を失う((-5000, 0.001))
B:確実に5円を失う((-5, 1.00))
4-1
A:45%の確率で6000円が得られる((6000, 0.45))
B:90%の確率で3000円が得られる((3000, 0.90))
A:0.1%の確率で6000円が得られる((6000, 0.001))
B:0.2%の確率で3000円が得られる((3000, 0.002))
5-1
A:確実に10万円もらえる((100000, 1.00))
B:10%の確率で25万円もらえて,89%で10万円,1%で賞金なし((250000, 0.1; 100000, 0.89; 0, 0.01))
5-2
A:11%の確率で10万円もらえて,89%で賞金なし((100000, 0.11; 0, 0.89))
B:10%の確率で25万円もらえて,90%で賞金なし((250000, 0.1; 0, 0.9))
6.表裏がそれぞれ1/2で出るコインを投げて,表が出たらゲームは終わる.表が出たのが1回目なら200円,2回目なら400円,,,2回目ならば100×2n円というように賞金額が増大する.さて,この賭けの参加料としていくらまで支払ってもよいと思いますか?
7-1:そのうち,30個は当たりであり,残りの60個は黒色と黄色であるがその比率はわからない.色を指定し,あたったら賞金が100ドル得られるものとする.赤に賭けるか,あるいは黒に賭けるか.
A:赤に賭ける
B:黒に賭ける
A:赤または黄色に賭ける
B:黒または黄色に賭ける
8-1.事故にあう確率が1%になる代わりに70000円もらえるとするならば,受け入れますか?受け入れませんか?
A:受け入れる
B:受け入れない
8-2
事故にあう確率が0.5%になる代わりに70000円支払うのであれば,あなたは支払いますか?支払いませんか?
A:支払う
B:支払わない
A:受け入れられる.
B:受け入れられない(不公正である).
A:受け入れられる.
B:受け入れられない(不公正である).
10-1:そのくじを買うと10%の確率でいくらかをもらえます.さて,あなたはいくらもらえるくじであるならば,1000円で買っても良いですか?
10-2:40%
10-3:80%
11-1:そのくじを買うと10%の確率でいくらかをもらえます.さて,あなたはいくらもらえるくじであるならば,1000円で売っても良いですか?
11-2:40%
11-3:80%
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.