『悩めるみんなの統計学入門 統計学で必ず押さえたい6つのキーワード』をR(R言語)で

第2章 Rコード

# 『悩めるみんなの統計学入門』
# 
# 個人的に割愛しているところ多々あり。


# 第2章 分散
# p.46~
三人の練習タイム <- data.frame(吉田 = c(133.2, 127.7, 131.9, 133.5, 126.6),
                            桜庭 = c(143.8, 128.6, 120.2, 147.8, 122.0),
                            大江 = c(125.7, 128.5, 128.9, 131.1, 135.2))

三人の練習タイム


# 計算に使用するので変数に付値(代入)しておく
y <- 三人の練習タイム$吉田
y

s <- 三人の練習タイム$桜庭
s

o <- 三人の練習タイム$大江
o


# 三人の練習タイムの平均
y_m <- round(mean(y), 1)
y_m

s_m <- round(mean(s), 1)
s_m

o_m <- round(mean(o), 1)
o_m




# 分散の計算方法 p.53~
三人の兄弟の身長 <- data.frame(A = c(151), B = c(158), C = c(162))
三人の兄弟の身長


# 平均
a <- 三人の兄弟の身長$A
b <- 三人の兄弟の身長$B
c <- 三人の兄弟の身長$C

平均身長 <- mean(c(a, b, c))
平均身長


# 偏差
Aの偏差 <- a - 平均身長
Aの偏差

Bの偏差 <- b - 平均身長
Bの偏差

Cの偏差 <- c - 平均身長
Cの偏差


# 平方和
平方和 <- sum(c(Aの偏差, Bの偏差, Cの偏差)^2)
平方和


# 分散
分散 <- 平方和 / length(三人の兄弟の身長)
分散
round(分散, 2)


# 標準偏差
標準偏差 <- sqrt(分散)
標準偏差
round(標準偏差, 2)


# (三人の練習タイムの話に戻る)
# 三人の練習タイムの標準偏差を求める
#
# 吉田の標準偏差を求める
吉田の平方和 <- sum((y - y_m)^2)
吉田の平方和

吉田の分散 <- 吉田の平方和 / length(y)
吉田の分散
y_v <- round(吉田の分散, 2)
y_v

吉田の標準偏差 <- sqrt(吉田の分散)
吉田の標準偏差
y_s <- round(吉田の標準偏差, 2)
y_s


# 桜庭の標準偏差
桜庭の平方和 <- sum((s - s_m)^2)
桜庭の平方和

桜庭の分散 <- 桜庭の平方和 / length(y)
桜庭の分散
s_v <- round(桜庭の分散, 2)
s_v

桜庭の標準偏差 <- sqrt(桜庭の分散)
桜庭の標準偏差
s_s <- round(桜庭の標準偏差, 2)
s_s


# 大江の標準偏差
大江の平方和 <- sum((o - o_m)^2)
大江の平方和

大江の分散 <- 大江の平方和 / length(y)
大江の分散
o_v <- round(大江の分散, 2)
o_v

大江の標準偏差 <- sqrt(大江の分散)
大江の標準偏差
o_s <- round(大江の標準偏差, 2)
o_s




# 三人の比較 (観測対象を行に)。
三人の平均と分散と標準偏差 <- data.frame(名前 = c("吉田", "桜庭", "大江"),
                                    平均 = c(y_m, s_m, o_m),
                                    分散 = c(y_v, s_v, o_v),
                                    標準偏差 = c(y_s, s_s, o_s))

三人の平均と分散と標準偏差


# (もし...観測対象を列にしたいなら...)
# 三人の平均と分散と標準偏差 <- data.frame(統計量 = c("平均", "分散", "標準偏差"),
#                                     吉田1 = c(y_m, y_v, y_s),
#                                     桜庭1 = c(s_m, s_v, s_s),
#                                     大江1 = c(o_m, o_v, o_s))
#
# 三人の平均と分散と標準偏差

第2章 R Console

> # 『悩めるみんなの統計学入門』
> # 
> # 個人的に割愛しているところ多々あり。
> 
> 
> # 第2章 分散
> # p.46~
> 三人の練習タイム <- data.frame(吉田 = c(133.2, 127.7, 131.9, 133.5, 126.6),
+                             桜庭 = c(143.8, 128.6, 120.2, 147.8, 122.0),
+                             大江 = c(125.7, 128.5, 128.9, 131.1, 135.2))
> 
> 三人の練習タイム
   吉田  桜庭  大江
1 133.2 143.8 125.7
2 127.7 128.6 128.5
3 131.9 120.2 128.9
4 133.5 147.8 131.1
5 126.6 122.0 135.2
> 
> 
> # 計算に使用するので変数に付値(代入)しておく
> y <- 三人の練習タイム$吉田
> y
[1] 133.2 127.7 131.9 133.5 126.6
> 
> s <- 三人の練習タイム$桜庭
> s
[1] 143.8 128.6 120.2 147.8 122.0
> 
> o <- 三人の練習タイム$大江
> o
[1] 125.7 128.5 128.9 131.1 135.2
> 
> 
> # 三人の練習タイムの平均
> y_m <- round(mean(y), 1)
> y_m
[1] 130.6
> 
> s_m <- round(mean(s), 1)
> s_m
[1] 132.5
> 
> o_m <- round(mean(o), 1)
> o_m
[1] 129.9
> 
> 
> 
> 
> # 分散の計算方法 p.53~
> 三人の兄弟の身長 <- data.frame(A = c(151), B = c(158), C = c(162))
> 三人の兄弟の身長
    A   B   C
1 151 158 162
> 
> 
> # 平均
> a <- 三人の兄弟の身長$A
> b <- 三人の兄弟の身長$B
> c <- 三人の兄弟の身長$C
> 
> 平均身長 <- mean(c(a, b, c))
> 平均身長
[1] 157
> 
> 
> # 偏差
> Aの偏差 <- a - 平均身長
> Aの偏差
[1] -6
> 
> Bの偏差 <- b - 平均身長
> Bの偏差
[1] 1
> 
> Cの偏差 <- c - 平均身長
> Cの偏差
[1] 5
> 
> 
> # 平方和
> 平方和 <- sum(c(Aの偏差, Bの偏差, Cの偏差)^2)
> 平方和
[1] 62
> 
> 
> # 分散
> 分散 <- 平方和 / length(三人の兄弟の身長)
> 分散
[1] 20.66667
> round(分散, 2)
[1] 20.67
> 
> 
> # 標準偏差
> 標準偏差 <- sqrt(分散)
> 標準偏差
[1] 4.546061
> round(標準偏差, 2)
[1] 4.55
> 
> 
> # (三人の練習タイムの話に戻る)
> # 三人の練習タイムの標準偏差を求める
> #
> # 吉田の標準偏差を求める
> 吉田の平方和 <- sum((y - y_m)^2)
> 吉田の平方和
[1] 41.27
> 
> 吉田の分散 <- 吉田の平方和 / length(y)
> 吉田の分散
[1] 8.254
> y_v <- round(吉田の分散, 2)
> y_v
[1] 8.25
> 
> 吉田の標準偏差 <- sqrt(吉田の分散)
> 吉田の標準偏差
[1] 2.872978
> y_s <- round(吉田の標準偏差, 2)
> y_s
[1] 2.87
> 
> 
> # 桜庭の標準偏差
> 桜庭の平方和 <- sum((s - s_m)^2)
> 桜庭の平方和
[1] 638.53
> 
> 桜庭の分散 <- 桜庭の平方和 / length(y)
> 桜庭の分散
[1] 127.706
> s_v <- round(桜庭の分散, 2)
> s_v
[1] 127.71
> 
> 桜庭の標準偏差 <- sqrt(桜庭の分散)
> 桜庭の標準偏差
[1] 11.30071
> s_s <- round(桜庭の標準偏差, 2)
> s_s
[1] 11.3
> 
> 
> # 大江の標準偏差
> 大江の平方和 <- sum((o - o_m)^2)
> 大江の平方和
[1] 50.13
> 
> 大江の分散 <- 大江の平方和 / length(y)
> 大江の分散
[1] 10.026
> o_v <- round(大江の分散, 2)
> o_v
[1] 10.03
> 
> 大江の標準偏差 <- sqrt(大江の分散)
> 大江の標準偏差
[1] 3.166386
> o_s <- round(大江の標準偏差, 2)
> o_s
[1] 3.17
> 
> 
> 
> 
> # 三人の比較 (観測対象を行に)。
> 三人の平均と分散と標準偏差 <- data.frame(名前 = c("吉田", "桜庭", "大江"),
+                                     平均 = c(y_m, s_m, o_m),
+                                     分散 = c(y_v, s_v, o_v),
+                                     標準偏差 = c(y_s, s_s, o_s))
> 
> 三人の平均と分散と標準偏差
  名前  平均   分散 標準偏差
1 吉田 130.6   8.25     2.87
2 桜庭 132.5 127.71    11.30
3 大江 129.9  10.03     3.17
> 
> 
> # (もし...観測対象を列にしたいなら...)
> # 三人の平均と分散と標準偏差 <- data.frame(統計量 = c("平均", "分散", "標準偏差"),
> #                                     吉田1 = c(y_m, y_v, y_s),
> #                                     桜庭1 = c(s_m, s_v, s_s),
> #                                     大江1 = c(o_m, o_v, o_s))
> #
> # 三人の平均と分散と標準偏差

第3章 Rコード

# 第3章 相関
# 散布図のスクリーンショットは省略


# plotする場合、文字化けするなら。
par(family = "Osaka")


# p.80のデータ
ブログのログ <- data.frame(アクセス数 = c(20, 25, 28, 37, 41,
                                    45, 49, 52, 55, 57),
                        キーワードの数 = c(2, 1, 3, 2, 5,
                                        4, 5, 4, 6, 7),
                        写真の数 = c(0, 0, 0, 1, 0,
                                    1, 3, 0, 2, 1),
                        記事の長さ文字数 = c(3005, 4103, 1421, 2526, 2887,
                                        3250, 2451, 1274, 1360, 2429))

ブログのログ


アクセス数 <- ブログのログ$アクセス数
アクセス数

キーワードの数 <- ブログのログ$キーワードの数
キーワードの数

写真の数 <- ブログのログ$写真の数
写真の数

記事の長さ文字数 <- ブログのログ$記事の長さ文字数
記事の長さ文字数


# p.95のデータ
三人の身長と体重 <- data.frame(名前 = c("鈴木", "山本", "佐藤"),
                            身長 = c(168, 175, 170),
                            体重 = c(52, 70, 64))

三人の身長と体重


身長 <- 三人の身長と体重$身長
体重 <- 三人の身長と体重$体重


# 身長の平均
身長の平均 <- mean(身長)
身長の平均


# 体重の平均
体重の平均 <- mean(体重)
体重の平均


# 身長の偏差
身長の偏差 <- 身長 - 身長の平均
身長の偏差


# 体重の偏差
体重の偏差 <- 体重 - 体重の平均
体重の偏差


# 身長の偏差二乗
身長の偏差二乗 <- 身長の偏差^2
身長の偏差二乗

# 計算の簡略化のため、あえて、身長の偏差二乗和
身長の偏差二乗の合計 <- sum(身長の偏差二乗)
身長の偏差二乗の合計
# ルートをとる
ルートをとった身長の合計 <- sqrt(身長の偏差二乗の合計)
ルートをとった身長の合計
ルートをとって少数を丸めた身長の合計 <- round(ルートをとった身長の合計, 1)
ルートをとって少数を丸めた身長の合計


# 体重の偏差二乗
体重の偏差二乗 <- 体重の偏差^2
体重の偏差二乗

# 計算の簡略化のため、あえて、体重の偏差二乗和
体重の偏差二乗の合計 <- sum(体重の偏差二乗)
体重の偏差二乗の合計
# ルートをとる
ルートをとった体重の合計 <- sqrt(体重の偏差二乗の合計)
ルートをとった体重の合計
ルートをとって少数を丸めた体重の合計 <- round(ルートをとった体重の合計, 1)
ルートをとって少数を丸めた体重の合計


# 各データの「面積」を求める
面積 <- sum(身長の偏差 * 体重の偏差)
面積


# 相関係数の計算
# 面積 / (ルートをとって少数を丸めた身長の合計 * ルートをとって少数を丸めた体重の合計)
相関係数1 <- 面積 / (ルートをとって少数を丸めた身長の合計 * ルートをとって少数を丸めた体重の合計)
相関係数1
相関係数 <- round(相関係数1, 2)
相関係数


# R(R言語)の関数を使用すると。
cor(身長, 体重)
cor.test(身長, 体重)
plot(身長, 体重)




# (ブログのアクセス数の話に戻る)
# 手計算は、三人の身長と体重と同じなので割愛
# R(R言語)の関数を使用


アクセス数 <- ブログのログ$アクセス数
キーワードの数 <- ブログのログ$キーワードの数
写真の数 <- ブログのログ$写真の数
記事の長さ文字数 <- ブログのログ$記事の長さ文字数

# アクセス数とキーワードの数の相関係数
cor(アクセス数, キーワードの数)
cor.test(アクセス数, キーワードの数)
plot(アクセス数, キーワードの数)


# アクセス数と写真の数の相関係数
cor(アクセス数, 写真の数)
cor.test(アクセス数, 写真の数)
plot(アクセス数, 写真の数)


# アクセス数と記事の長さの相関係数
cor(アクセス数, 記事の長さ文字数)
cor.test(アクセス数, 記事の長さ文字数)
plot(アクセス数, 記事の長さ文字数)


# 項目間同士の相関係数
cor.test(キーワードの数, 記事の長さ文字数)
cor.test(写真の数, 記事の長さ文字数)
cor.test(キーワードの数, 写真の数)

第3章 R Console

> # 第3章 相関
> # 散布図のスクリーンショットは省略 
>
> 
> # plotする場合、文字化けするなら。
> par(family = "Osaka")
> 
> 
> # p.80のデータ
> ブログのログ <- data.frame(アクセス数 = c(20, 25, 28, 37, 41,
+                                     45, 49, 52, 55, 57),
+                         キーワードの数 = c(2, 1, 3, 2, 5,
+                                         4, 5, 4, 6, 7),
+                         写真の数 = c(0, 0, 0, 1, 0,
+                                     1, 3, 0, 2, 1),
+                         記事の長さ文字数 = c(3005, 4103, 1421, 2526, 2887,
+                                         3250, 2451, 1274, 1360, 2429))
> 
> ブログのログ
   アクセス数 キーワードの数 写真の数 記事の長さ文字数
1          20              2        0             3005
2          25              1        0             4103
3          28              3        0             1421
4          37              2        1             2526
5          41              5        0             2887
6          45              4        1             3250
7          49              5        3             2451
8          52              4        0             1274
9          55              6        2             1360
10         57              7        1             2429
> 
> 
> アクセス数 <- ブログのログ$アクセス数
> アクセス数
 [1] 20 25 28 37 41 45 49 52 55 57
> 
> キーワードの数 <- ブログのログ$キーワードの数
> キーワードの数
 [1] 2 1 3 2 5 4 5 4 6 7
> 
> 写真の数 <- ブログのログ$写真の数
> 写真の数
 [1] 0 0 0 1 0 1 3 0 2 1
> 
> 記事の長さ文字数 <- ブログのログ$記事の長さ文字数
> 記事の長さ文字数
 [1] 3005 4103 1421 2526 2887 3250 2451 1274 1360 2429
> 
> 
> # p.95のデータ
> 三人の身長と体重 <- data.frame(名前 = c("鈴木", "山本", "佐藤"),
+                             身長 = c(168, 175, 170),
+                             体重 = c(52, 70, 64))
> 
> 三人の身長と体重
  名前 身長 体重
1 鈴木  168   52
2 山本  175   70
3 佐藤  170   64
> 
> 
> 身長 <- 三人の身長と体重$身長
> 体重 <- 三人の身長と体重$体重
> 
> 
> # 身長の平均
> 身長の平均 <- mean(身長)
> 身長の平均
[1] 171
> 
> 
> # 体重の平均
> 体重の平均 <- mean(体重)
> 体重の平均
[1] 62
> 
> 
> # 身長の偏差
> 身長の偏差 <- 身長 - 身長の平均
> 身長の偏差
[1] -3  4 -1
> 
> 
> # 体重の偏差
> 体重の偏差 <- 体重 - 体重の平均
> 体重の偏差
[1] -10   8   2
> 
> 
> # 身長の偏差二乗
> 身長の偏差二乗 <- 身長の偏差^2
> 身長の偏差二乗
[1]  9 16  1
> 
> # 計算の簡略化のため、あえて、身長の偏差二乗和
> 身長の偏差二乗の合計 <- sum(身長の偏差二乗)
> 身長の偏差二乗の合計
[1] 26
> # ルートをとる
> ルートをとった身長の合計 <- sqrt(身長の偏差二乗の合計)
> ルートをとった身長の合計
[1] 5.09902
> ルートをとって少数を丸めた身長の合計 <- round(ルートをとった身長の合計, 1)
> ルートをとって少数を丸めた身長の合計
[1] 5.1
> 
> 
> # 体重の偏差二乗
> 体重の偏差二乗 <- 体重の偏差^2
> 体重の偏差二乗
[1] 100  64   4
> 
> # 計算の簡略化のため、あえて、体重の偏差二乗和
> 体重の偏差二乗の合計 <- sum(体重の偏差二乗)
> 体重の偏差二乗の合計
[1] 168
> # ルートをとる
> ルートをとった体重の合計 <- sqrt(体重の偏差二乗の合計)
> ルートをとった体重の合計
[1] 12.96148
> ルートをとって少数を丸めた体重の合計 <- round(ルートをとった体重の合計, 1)
> ルートをとって少数を丸めた体重の合計
[1] 13
> 
> 
> # 各データの「面積」を求める
> 面積 <- sum(身長の偏差 * 体重の偏差)
> 面積
[1] 60
> 
> 
> # 相関係数の計算
> # 面積 / (ルートをとって少数を丸めた身長の合計 * ルートをとって少数を丸めた体重の合計)
> 相関係数1 <- 面積 / (ルートをとって少数を丸めた身長の合計 * ルートをとって少数を丸めた体重の合計)
> 相関係数1
[1] 0.9049774
> 相関係数 <- round(相関係数1, 2)
> 相関係数
[1] 0.9
> 
> 
> # R(R言語)の関数を使用すると。
> cor(身長, 体重)
[1] 0.9078413
> cor.test(身長, 体重)

    Pearson's product-moment correlation

data:  身長 and 体重
t = 2.1651, df = 1, p-value = 0.2755
alternative hypothesis: true correlation is not equal to 0
sample estimates:
      cor 
0.9078413 

> plot(身長, 体重)
> 
> 
> 
> 
> # (ブログのアクセス数の話に戻る)
> # 手計算は、三人の身長と体重と同じなので割愛
> # R(R言語)の関数を使用
> 
> 
> アクセス数 <- ブログのログ$アクセス数
> キーワードの数 <- ブログのログ$キーワードの数
> 写真の数 <- ブログのログ$写真の数
> 記事の長さ文字数 <- ブログのログ$記事の長さ文字数
> 
> # アクセス数とキーワードの数の相関係数
> cor(アクセス数, キーワードの数)
[1] 0.867309
> cor.test(アクセス数, キーワードの数)

    Pearson's product-moment correlation

data:  アクセス数 and キーワードの数
t = 4.9282, df = 8, p-value = 0.001152
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.5236231 0.9682130
sample estimates:
     cor 
0.867309 

> plot(アクセス数, キーワードの数)
> 
> 
> # アクセス数と写真の数の相関係数
> cor(アクセス数, 写真の数)
[1] 0.5667777
> cor.test(アクセス数, 写真の数)

    Pearson's product-moment correlation

data:  アクセス数 and 写真の数
t = 1.9458, df = 8, p-value = 0.08756
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.09772116  0.88174583
sample estimates:
      cor 
0.5667777 

> plot(アクセス数, 写真の数)
> 
> 
> # アクセス数と記事の長さの相関係数
> cor(アクセス数, 記事の長さ文字数)
[1] -0.4690188
> cor.test(アクセス数, 記事の長さ文字数)

    Pearson's product-moment correlation

data:  アクセス数 and 記事の長さ文字数
t = -1.502, df = 8, p-value = 0.1715
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.8481738  0.2279112
sample estimates:
       cor 
-0.4690188 

> plot(アクセス数, 記事の長さ文字数)
> 
> 
> # 項目間同士の相関係数
> cor.test(キーワードの数, 記事の長さ文字数)

    Pearson's product-moment correlation

data:  キーワードの数 and 記事の長さ文字数
t = -1.4016, df = 8, p-value = 0.1986
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.8390721  0.2576256
sample estimates:
      cor 
-0.444025 

> cor.test(写真の数, 記事の長さ文字数)

    Pearson's product-moment correlation

data:  写真の数 and 記事の長さ文字数
t = -0.50327, df = 8, p-value = 0.6283
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.7248574  0.5107828
sample estimates:
       cor 
-0.1751826 

> cor.test(キーワードの数, 写真の数)

    Pearson's product-moment correlation

data:  キーワードの数 and 写真の数
t = 1.612, df = 8, p-value = 0.1456
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1953735  0.8574611
sample estimates:
      cor 
0.4951641 

第4章 Rコード

# 第4章 標本
# p144~
# 母平均の推定(大標本法)
# 信頼区間95%の場合
# 使用する統計量 魚100匹 平均23cm 標準偏差12cm
# 標本平均の標準偏差 = 標準偏差 / sqrt(標本のデータ数)
標本平均の標準偏差 <- 12 / sqrt(100)
標本平均の標準偏差

# 信頼区間の片側の幅 = 1.96 * (標本の標準偏差 / sqrt(標本のデータ数))
信頼区間の片側の幅 <- 1.96 * (12 / sqrt(100))
信頼区間の片側の幅

# 信頼区間を求める
# 標本平均 - 信頼区間の片側の幅 ~ 標本平均 + 信頼区間の片側の幅
23 - 信頼区間の片側の幅
23 + 信頼区間の片側の幅
信頼区間 <- c(23 - 信頼区間の片側の幅, 23 + 信頼区間の片側の幅)
信頼区間


# # p.147~149は手計算の方法は同じなので割愛
# 信頼区間の片側の幅 <- 1.96 * (100 / sqrt(3000))
# 信頼区間の片側の幅

第4章 R Console

> # 第4章 標本
> # p144~
> # 母平均の推定(大標本法)
> # 信頼区間95%の場合
> # 使用する統計量 魚100匹 平均23cm 標準偏差12cm
> # 標本平均の標準偏差 = 標準偏差 / sqrt(標本のデータ数)
> 標本平均の標準偏差 <- 12 / sqrt(100)
> 標本平均の標準偏差
[1] 1.2
> 
> # 信頼区間の片側の幅 = 1.96 * (標本の標準偏差 / sqrt(標本のデータ数))
> 信頼区間の片側の幅 <- 1.96 * (12 / sqrt(100))
> 信頼区間の片側の幅
[1] 2.352
> 
> # 信頼区間を求める
> # 標本平均 - 信頼区間の片側の幅 ~ 標本平均 + 信頼区間の片側の幅
> 23 - 信頼区間の片側の幅
[1] 20.648
> 23 + 信頼区間の片側の幅
[1] 25.352
> 信頼区間 <- c(23 - 信頼区間の片側の幅, 23 + 信頼区間の片側の幅)
> 信頼区間
[1] 20.648 25.352
> 
> 
> # # p.147~149は手計算の方法は同じなので割愛
> # 信頼区間の片側の幅 <- 1.96 * (100 / sqrt(3000))
> # 信頼区間の片側の幅

第5章 Rコード

# 第5章 カイ二乗検定
# p.161~
# 男の子と女の子が生まれてくる確率50対50
# 赤ちゃん1000人
男の子 <- 535
男の子

女の子 <- 465
女の子


# カイ二乗値
# カイ二乗値 = (((観測度数 - 期待度数)^2) / 期待度数)の総和
男の子の場合 <- ((535 - 500)^2) / 500 # 500は男女の確率が半々だとした場合の数
男の子の場合

女の子の場合 <- ((465 - 500)^2) / 500
女の子の場合

男の子と女の子のカイ二乗値 <- 男の子の場合 + 女の子の場合
男の子と女の子のカイ二乗値




# 独立性の検定
# p.171~
会社帰りにゲームセンターに行きたいかどうか <- data.frame(答え = c("Yes", "No"),= c(70, 50),= c(35, 45))

会社帰りにゲームセンターに行きたいかどうか


# データフレームから"答え"を入れないようにマトリクスを作成
男女 <- 会社帰りにゲームセンターに行きたいかどうか[, -1]
男女
mt1 <- as.matrix(男女)
mt1
chisq.test(mt1, correct = FALSE)

第5章 R Console

> # 第5章 カイ二乗検定
> # p.161~
> # 男の子と女の子が生まれてくる確率50対50
> # 赤ちゃん1000人
> 男の子 <- 535
> 男の子
[1] 535
> 
> 女の子 <- 465
> 女の子
[1] 465
> 
> 
> # カイ二乗値
> # カイ二乗値 = (((観測度数 - 期待度数)^2) / 期待度数)の総和
> 男の子の場合 <- ((535 - 500)^2) / 500 # 500は男女の確率が半々だとした場合の数
> 男の子の場合
[1] 2.45
> 
> 女の子の場合 <- ((465 - 500)^2) / 500
> 女の子の場合
[1] 2.45
> 
> 男の子と女の子のカイ二乗値 <- 男の子の場合 + 女の子の場合
> 男の子と女の子のカイ二乗値
[1] 4.9
> 
> 
> 
> 
> # 独立性の検定
> # p.171~
> 会社帰りにゲームセンターに行きたいかどうか <- data.frame(答え = c("Yes", "No"),
+= c(70, 50),
+= c(35, 45))
> 
> 会社帰りにゲームセンターに行きたいかどうか
  答え 男 女
1  Yes 70 35
2   No 50 45
> 
> 
> # データフレームから"答え"を入れないようにマトリクスを作成
> 男女 <- 会社帰りにゲームセンターに行きたいかどうか[, -1]
> 男女
  男 女
1 70 35
2 50 45
> mt1 <- as.matrix(男女)
> mt1
     男 女
[1,] 70 35
[2,] 50 45
> chisq.test(mt1, correct = FALSE)

    Pearson's Chi-squared test

data:  mt1
X-squared = 4.0936, df = 1, p-value = 0.04305

第6章 Rコード

# 第6章 t検定 対応のないt検定

送ったメール数 <- data.frame(彼氏あり = c(19, 25, 16, 12, 20,
                                    18, 16, 14, 16, 22),
                            彼氏なし = c(12, 15, 20, 18, 9,
                                    17, 13, 15, 9, 10))

送ったメール数

t.test(送ったメール数$彼氏あり, 送ったメール数$彼氏なし)

第6章 R Console

> # 第6章 t検定 対応のないt検定
> 
> 送ったメール数 <- data.frame(彼氏あり = c(19, 25, 16, 12, 20,
+                                     18, 16, 14, 16, 22),
+                             彼氏なし = c(12, 15, 20, 18, 9,
+                                     17, 13, 15, 9, 10))
> 
> 送ったメール数
   彼氏あり 彼氏なし
1        19       12
2        25       15
3        16       20
4        12       18
5        20        9
6        18       17
7        16       13
8        14       15
9        16        9
10       22       10
> 
> t.test(送ったメール数$彼氏あり, 送ったメール数$彼氏なし)

    Welch Two Sample t-test

data:  送ったメール数$彼氏あり and 送ったメール数$彼氏なし
t = 2.3215, df = 18, p-value = 0.0322
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.3800138 7.6199862
sample estimates:
mean of x mean of y 
     17.8      13.8 

参考文献

悩めるみんなの統計学入門 - 統計学で必ず押さえたい6つのキーワード

悩めるみんなの統計学入門 - 統計学で必ず押さえたい6つのキーワード