My Notes

統計学とかR(R言語)とかPython3の覚え書きとか走り書きとか。 座右の銘にしたい: All work and no play makes Jack a dull boy.

対応のあるt検定 対応のある二標本t検定 をR(R言語)で

Rコード

#
# 対応のあるt検定 対応のある二標本t検定
#




#
# 使用するデータや数式や解説は、統計クイックリファレンス』 p.168~170
#




#
# 帰無仮説
# 2組の標本の平均の差は、0である。
#
# 対立仮説
# 2組の標本の平均の差は、0でない。
#




# "食事制限とエクササイズプログラムの実施前後のコレステロール値"のデータフレームを作成
実施前_vec <- c(220, 240, 225, 180, 210, 190, 195, 200, 210, 240)
実施後_vec <- c(200, 210, 210, 170, 220, 180, 190, 190, 220, 210)
df <- data.frame(実施前_df = 実施前_vec, 実施後_df = 実施後_vec)
df


実施前 <- df$実施前_df
実施前

実施後 <- df$実施後_df
実施後




summary(df)




# t.test()を使用した対応のあるt検定。 paired = TRUEを忘れずに。
t.test(実施前, 実施後, paired = TRUE)
# t = 2.5017
# t値が2.5017なので、両側t検定における自由度9、α = 0.05の棄却値は2.262
# t値(t統計量)の絶対値が棄却値を超える。したがって、帰無仮説は棄却される。
#
# p-value = 0.03377
# そもそも、p値が0.03377である
#
# 95%信頼区間
# 95 percent confidence interval:
#  1.053366 20.946634
# R(R言語)が出した対立仮説
# alternative hypothesis: true difference in means is not equal to 0
#




# 手計算
# 数式 t = (dbar - (μ1 - μ2)) / (sd / sqrt(n))
# dbarは、実施後と実施前の数値の差の平均
# sdはdの不偏標準偏差
#

d <- 実施後 - 実施前
d


# dの平均
dbar <- mean(d)
dbar


# dの不偏標準偏差
d_sd <- round(sd(d), 2)
d_sd


t <- (dbar - 0) / (d_sd / sqrt(length(d)))
t
t_2 <- round(t, 2)
t_2
# 平均の差とt値(t統計量)が負の値なので、ここから総コレステロール値が下がったことがわかる

# 絶対値
abs(t_2)

R Console

> #
> # 対応のあるt検定 対応のある二標本t検定
> #
> 
> 
> 
> 
> #
> # 使用するデータや数式や解説は、統計クイックリファレンス』 p.168~170
> #
> 
> 
> 
> 
> #
> # 帰無仮説
> # 2組の標本の平均の差は、0である。
> #
> # 対立仮説
> # 2組の標本の平均の差は、0でない。
> #
> 
> 
> 
> 
> # "食事制限とエクササイズプログラムの実施前後のコレステロール値"のデータフレームを作成
> 実施前_vec <- c(220, 240, 225, 180, 210, 190, 195, 200, 210, 240)
> 実施後_vec <- c(200, 210, 210, 170, 220, 180, 190, 190, 220, 210)
> df <- data.frame(実施前_df = 実施前_vec, 実施後_df = 実施後_vec)
> df
   実施前_df 実施後_df
1        220       200
2        240       210
3        225       210
4        180       170
5        210       220
6        190       180
7        195       190
8        200       190
9        210       220
10       240       210
> 
> 
> 実施前 <- df$実施前_df
> 実施前
 [1] 220 240 225 180 210 190 195 200 210 240
> 
> 実施後 <- df$実施後_df
> 実施後
 [1] 200 210 210 170 220 180 190 190 220 210
> 
> 
> 
> 
> summary(df)
   実施前_df       実施後_df  
 Min.   :180.0   Min.   :170  
 1st Qu.:196.2   1st Qu.:190  
 Median :210.0   Median :205  
 Mean   :211.0   Mean   :200  
 3rd Qu.:223.8   3rd Qu.:210  
 Max.   :240.0   Max.   :220  
> 
> 
> 
> 
> # t.test()を使用した対応のあるt検定。 paired = TRUEを忘れずに。
> t.test(実施前, 実施後, paired = TRUE)

    Paired t-test

data:  実施前 and 実施後
t = 2.5017, df = 9, p-value = 0.03377
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  1.053366 20.946634
sample estimates:
mean of the differences 
                     11 

> # t = 2.5017
> # t値が2.5017なので、両側t検定における自由度9、α = 0.05の棄却値は2.262
> # t値(t統計量)の絶対値が棄却値を超える。したがって、帰無仮説は棄却される。
> #
> # p-value = 0.03377
> # そもそも、p値が0.03377である
> #
> # 95%信頼区間
> # 95 percent confidence interval:
> #  1.053366 20.946634
> # R(R言語)が出した対立仮説
> # alternative hypothesis: true difference in means is not equal to 0
> #
> 
> 
> 
> 
> # 手計算
> # 数式 t = (dbar - (μ1 - μ2)) / (sd / sqrt(n))
> # dbarは、実施後と実施前の数値の差の平均
> # sdはdの不偏標準偏差
> #
> 
> d <- 実施後 - 実施前
> d
 [1] -20 -30 -15 -10  10 -10  -5 -10  10 -30
> 
> 
> # dの平均
> dbar <- mean(d)
> dbar
[1] -11
> 
> 
> # dの不偏標準偏差
> d_sd <- round(sd(d), 2)
> d_sd
[1] 13.9
> 
> 
> t <- (dbar - 0) / (d_sd / sqrt(length(d)))
> t
[1] -2.502522
> t_2 <- round(t, 2)
> t_2
[1] -2.5
> # 平均の差とt値(t統計量)が負の値なので、ここから総コレステロール値が下がったことがわかる
> 
> # 絶対値
> abs(t_2)
[1] 2.5

参考文献

統計クイックリファレンス 第2版

統計クイックリファレンス 第2版

Rによる統計解析

Rによる統計解析

Rクックブック

Rクックブック