それでは,ここではt検定について説明します.

t検定は「t分布」という分布に基づいた分析です. ちなみに,カイ二乗分布はこんな感じです. ※以下のコードはRcmdrのプラグイン,“RcmdrPlugin.KMggplot2”コードを貼り付けました.

t分布について

自由度が1の時

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)

自由度が2の時

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)

自由度が3の時

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)

自由度が5の時

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検定の場合は,以下のように仮説を設定してあげることが必要です.

  • 帰無仮説:XとYの間の平均値に,差がない

++ ex.XとYの間の平均値に,差がない

  • 対立仮説:XとYの間の平均値に,差がある

++ ex.男女の間に,平均身長の差がある.

こちらのデータを元に分析を行います.

これ以外の質問項目については,一番下に掲載します.

  • 6.表裏がそれぞれ1/2で出るコインを投げて,表が出たらゲームは終わる.表が出たのが1回目なら200円,2回目なら400円,,,2回目ならば100×2n円というように賞金額が増大する.さて,この賭けの参加料としていくらまで支払ってもよいと思いますか?

この問題について,男女差があるかを検討する.

  • 帰無仮説H0:男女で支払ってもよい平均参加額に差がない

  • 対立仮説H1:男女で支払ってもよい平均参加額に差がある

検定統計量の値を求める

  • t検定はt値を元に評価する t値:説明変数の係数の確からしさの度合いを判断する際に用いる.t≧|2|が基準だが,p値に変換して解釈するのが通例.

ただし,その通例に対して否定的な意見もある.

t検定のプロセス

  • 旧来の方法:2つの検定を繰り返す

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  
## 

外れ値の確認1

箱ひげ図を使って,外れ値を確認します.

「グラフ」→「箱ひげ図」

変数: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"

まだ外れている数字が,,,とも怒られているけど,これくらいなら良いでしょう.

最近の潮流に沿って分析をします.

  • Rコマンダーで「統計量」→「平均」→「独立サンプルt検定」とクリックする.

「データ」タブでは,グループに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
  • Welchの2標本t検定

**" t = -2.8428, df = 22.679, p-value = 0.009293“**が主な結果

  • 95%信頼区間

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検定については,以上です.

こちらのアンケートを元に分析を行います.

  • F1.あなたの性別を教えて下さい

a:男性→men

b:女性→women

    1. 次のAとBのくじのうち,どちらのくじを選びますか?

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))

    1. 次のAとBのくじのうち,どちらのくじを選びますか?

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)

    1. 次のAとBのくじのうち,どちらのくじを選びますか?

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))

    1. 次のAとBのくじのうち,どちらのくじを選びますか?

4-1

A:45%の確率で6000円が得られる((6000, 0.45))

B:90%の確率で3000円が得られる((3000, 0.90))

  • 4-2

A:0.1%の確率で6000円が得られる((6000, 0.001))

B:0.2%の確率で3000円が得られる((3000, 0.002))

    1. 次のAとBのくじのうち,どちらのくじを選びますか?

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円というように賞金額が増大する.さて,この賭けの参加料としていくらまで支払ってもよいと思いますか?

    1. 90個の球が入った不透明な壺がある.

7-1:そのうち,30個は当たりであり,残りの60個は黒色と黄色であるがその比率はわからない.色を指定し,あたったら賞金が100ドル得られるものとする.赤に賭けるか,あるいは黒に賭けるか.

A:赤に賭ける

B:黒に賭ける

  • 7-2:そのうち,30個は当たりであり,残りの60個は黒色と黄色である.この中から2色を選び,どちらかが出たら賞金が得られるとする.次の選択肢のうち,どちらの組み合わせを選ぶか?

A:赤または黄色に賭ける

B:黒または黄色に賭ける

    1. あなたが一年間に事故にあう確率が0.5/1%だとします.

8-1.事故にあう確率が1%になる代わりに70000円もらえるとするならば,受け入れますか?受け入れませんか?

A:受け入れる

B:受け入れない

8-2

事故にあう確率が0.5%になる代わりに70000円支払うのであれば,あなたは支払いますか?支払いませんか?

A:支払う

B:支払わない

  • 9-1.小さなコピー店に従業員が一人いる.その店で六ヶ月間,時給1,000円で働いていた.店は順調にいっていたが近くの工場が閉鎖され,失業者が増加した.他の同規模の店はコピー店の従業員と同様の仕事をする人を時給800円で雇い始めた.そこでコピー店の経営者は時給を800円に下げた.

A:受け入れられる.

B:受け入れられない(不公正である).

  • 9-2.小さなコピー店に従業員が一人いる.その店で六ヶ月間,時給1,000円で働いていた.店は順調にいっていたが近くの工場が閉鎖され,失業者が増加した.他の同規模の店はコピー店の従業員と同様の仕事をする人を時給800円で雇い始めた.コピー店の従業員がやめてしまったので,経営者は時給800円で新規採用することとした.

A:受け入れられる.

B:受け入れられない(不公正である).

  • 10.あなたは1000円を払ってくじを買おうと思います.

10-1:そのくじを買うと10%の確率でいくらかをもらえます.さて,あなたはいくらもらえるくじであるならば,1000円で買っても良いですか?

10-2:40%

10-3:80%

  • 11.あなたは1000円をもらってくじを売ろうと思います.

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.