第7回 変数間の関係
関西大学総合情報学部
2024-11-07
すぐに実習できるように準備しておきましょう。
Data
フォルダーを作成し、そこにアップロードしましょう。library(tidyverse)
# 作業フォルダーの下のDataフォルダー内になるGacha2.csvを読み込み、gacha_dfという名で格納
# 今回のデータは先週と同じであるが、result変数のダミー化済み
gacha_df <- read_csv("Data/Gacha2.csv")
gacha_df # gacha_dfの出力
# A tibble: 4,772 × 8
player trial stone_type result result_N result_R result_SR result_SSR
<dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 1 1 Paid R 0 1 0 0
2 1 2 Paid R 0 1 0 0
3 1 3 Paid SR 0 0 1 0
4 1 4 Free R 0 1 0 0
5 1 5 Paid N 1 0 0 0
6 1 6 Free N 1 0 0 0
7 1 7 Free SSR 0 0 0 1
8 1 8 Free N 1 0 0 0
9 1 9 Free N 1 0 0 0
10 1 10 Free N 1 0 0 0
# ℹ 4,762 more rows
あるソシャゲのガチャ確率を見ると、SSR(★5)の出現確率は5%と記載されている。しかし、ガチャでSSRが出現する確率が有償石か無料石かによって変わる噂を聞いた。これが本当なら大炎上するだろう。この噂は本当だろうか。
result_SSR
の平均値(\(\bar{x}_{\mbox{free}}\))は0.0425(4.25%)result_SSR
の平均値(\(\bar{x}_{\mbox{paid}}\))は0.0572(5.72%)t.test()
関数を使えば簡単t.test()
関数の使用平均値を計算する変数名 ~ グループ変数名
」(今回はresult_SSR ~ stone_type
)data = データ名
」(今回はdata = gacha_df
)
Welch Two Sample t-test
data: result_SSR by stone_type
t = -2.1653, df = 2960.6, p-value = 0.03045
alternative hypothesis: true difference in means between group Free and group Paid is not equal to 0
95 percent confidence interval:
-0.027932426 -0.001384442
sample estimates:
mean in group Free mean in group Paid
0.04251918 0.05717762
prop.test()
の使用x
: SSRの出現枚数(無償石ガチャで133枚、有償石ガチャで94枚)n
: 試行回数(無償石ガチャ3128回、有償石ガチャ1644回)
2-sample test for equality of proportions with continuity correction
data: c(133, 94) out of c(3128, 1644)
X-squared = 4.7923, df = 1, p-value = 0.02859
alternative hypothesis: two.sided
95 percent confidence interval:
-0.0283874901 -0.0009293778
sample estimates:
prop 1 prop 2
0.04251918 0.05717762
政治家・政党にとって「投票率の高い地域」は「票になる地域」であるため、補助金などで優遇されているかも知れない。一方、投票率の低い地域は票にならないため、政治家・政党にとって、関心が払われていない可能性もある。これは本当だろうか。仮説検定の際、\(\alpha = 0.05\)を用いる。
2つの連続変数間の関係: 「投票率」と「補助金額」
# A tibble: 47 × 4
ID Pref Turnout Subsidy
<dbl> <chr> <dbl> <dbl>
1 1 北海道 60.3 134.
2 2 青森県 54.2 193.
3 3 岩手県 59.1 265.
4 4 宮城県 52.8 98.2
5 5 秋田県 60.6 219.
6 6 山形県 64.1 187.
7 7 福島県 56.7 166.
8 8 茨城県 51.5 76.3
9 9 栃木県 51.7 72.8
10 10 群馬県 52.0 76.6
# ℹ 37 more rows
変数 | 説明 |
---|---|
ID |
都道府県ID |
Pref |
都道府県名 |
Turnout |
投票率 (%) |
Subsidy |
人口1万人当たり地方交付税額 (万円) |
相関係数(\(\rho\)): 2つの変数間の相関関係の強さを表す指標
変数1(\(x\))と変数2(\(y\))の関係(青い線)はいずれも\(y = 1.5 \times x\)の直線(若干のズレはある)
変数1(\(x\))と変数2(\(y\))の相関係数
\[ \begin{align} r_{x, y} = \frac{\mbox{Cov}_{x, y}}{s_x \cdot s_y} \end{align} \]
cov()
)
sd()
)sd()
)\[ t = \frac{r_{x, y}}{\sqrt{1 - r_{x, y}}} \sqrt{n - 2} \]
\(t\)は自由度\(n-2\)の\(t\)分布に従うため、統計的仮説検定が可能(前回参照)
cor.test()
の使用第一引数として変数1のベクトル、第二引数として変数2のベクトルを指定(順番は逆でも可)
method = "kendall"
(Kendallの順位相関係数\(\tau\))、またはmethod = "spearman"
(Spearmanの順位相関係数\(\rho\))を指定することを推奨
method = "pearson"
)
Pearson's product-moment correlation
data: subsidy_df$Turnout and subsidy_df$Subsidy
t = 2.9128, df = 45, p-value = 0.005558
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.1254750 0.6151042
sample estimates:
cor
0.3982905
相関係数の\(p\)値は約0.006であり、予め決めておいた\(\alpha\)(= 0.05)より小さい(\(p < \alpha\))。
もし、 \(p \geq \alpha\) なら…
Hinkle, Dennis E., William Wiersma, and Stephen G. Jurs. 2003. Applied Statistics for the Behavioral Sciences. 5th ed., Houghton Mifflin.
相関係数 | 説明 |
---|---|
\(0.9 < r \leq 1.0\) | とても強い正の相関関係 |
\(0.7 < r \leq 0.9\) | 強い正の相関関係 |
\(0.5 < r \leq 0.7\) | 中程度の正の相関関係 |
\(0.3 < r \leq 0.5\) | 弱い正の相関関係 |
\(0.0 \leq r \leq 0.3\) | わずかな正の相関関係 |
\(-0.3 \leq r \leq 0.0\) | わずかな負の相関関係 |
\(-0.5 \leq r < -0.3\) | 弱い負の相関関係 |
\(-0.7 \leq r < -0.5\) | 中程度の負の相関関係 |
\(-0.9 \leq r < -0.7\) | 強い負の相関関係 |
\(-1.0 \leq r < -0.9\) | とても強い負の相関関係 |
ミートソース、ナポリタン、ペペロンチーノ、カルボナーラ、…。みんなが大好きなパスタだが、性別によって好きなパスタは異なるだろうか。これが分かれば気になる彼(彼女)とのデートに参考にしたい。あるいは、性別よりも年齢によって好きなパスタが異なるかも知れない。実際はどうだろう。仮説検定の際、 \(\alpha = 0.05\) を用いる。
2つのカテゴリー変数間の関係: 「性別」と「好きなパスタ」/「40歳以上か否か」と「好きなパスタ」
# A tibble: 1,135 × 4
ID Female Over40 Pasta
<dbl> <dbl> <dbl> <chr>
1 1 0 0 Naporitan
2 2 1 0 Naporitan
3 3 0 0 Naporitan
4 4 0 0 Carbonara
5 5 0 0 Naporitan
6 6 0 1 MeatSauce
7 7 0 1 Peperoncino
8 8 0 1 MeatSauce
9 9 1 0 Carbonara
10 10 0 0 Carbonara
# ℹ 1,125 more rows
変数 | 説明 |
---|---|
ID |
回答者番号 |
Female |
女性なら1、男性なら0 |
Over40 |
40歳以上なら1、未満なら0 |
Pasta |
好きなパスタ |
table()
関数を使用(2つのベクトルオブジェクト名を指定)
性別と好きなパスタの関係
どのような場合、「性別(or 年齢)と好きなパスタには何らかの関係がある」と言えるだろうか。
「独立 (independent)」と「連関 (association)」の例
出身地と好きな飲物が「独立」している例
出身 | コーヒー | ソース | 計 |
---|---|---|---|
大阪 | 10 | 10 | 20 |
神戸 | 10 | 10 | 20 |
計 | 20 | 20 | 40 |
出身 | コーヒー | ソース | 計 |
---|---|---|---|
大阪 | 0.25 | 0.25 | 0.5 |
神戸 | 0.25 | 0.25 | 0.5 |
計 | 0.50 | 0.50 | 1.0 |
出身地と好きな飲物が「連関」している例
出身 | コーヒー | ソース | 計 |
---|---|---|---|
大阪 | 0 | 20 | 20 |
神戸 | 20 | 0 | 20 |
計 | 20 | 20 | 40 |
出身 | コーヒー | ソース | 計 |
---|---|---|---|
大阪 | 0.0 | 0.5 | 0.5 |
神戸 | 0.5 | 0.0 | 0.5 |
計 | 0.5 | 0.5 | 1.0 |
同時分布が周辺分布の積と一致すること
年齢 | カルボナーラ | ミートソース | ナポリタン | ペペロンチーノ | 計 |
---|---|---|---|---|---|
40歳未満 | 138 | 177 | 160 | 65 | 540 |
40歳以上 | 140 | 184 | 138 | 133 | 595 |
計 | 278 | 361 | 298 | 198 | 1135 |
年齢 | カルボナーラ | ミートソース | ナポリタン | ペペロンチーノ | 計 |
---|---|---|---|---|---|
40歳未満 | 0.122 | 0.156 | 0.141 | 0.057 | 0.476 |
40歳以上 | 0.123 | 0.162 | 0.122 | 0.117 | 0.524 |
計 | 0.245 | 0.318 | 0.263 | 0.174 | 1.000 |
年齢 | カルボナーラ | ミートソース | ナポリタン | ペペロンチーノ | 計 |
---|---|---|---|---|---|
40歳未満 | 0.117 | 0.151 | 0.125 | 0.083 | 0.476 |
40歳以上 | 0.128 | 0.167 | 0.138 | 0.091 | 0.524 |
計 | 0.245 | 0.318 | 0.263 | 0.174 | 1.000 |
年齢 | カルボナーラ | ミートソース | ナポリタン | ペペロンチーノ | 計 |
---|---|---|---|---|---|
40歳未満 | 133 | 171 | 142 | 94 | 540 |
40歳以上 | 145 | 190 | 157 | 103 | 595 |
計 | 278 | 361 | 299 | 197 | 1,135 |
Step 1: クロス表の値から期待度数の値を引く(周辺分布のセルは不要)。
年齢 | カルボナーラ | ミートソース | ナポリタン | ペペロンチーノ |
---|---|---|---|---|
40歳未満 | 138 - 133 = 5 | 177 - 171 = 6 | 160 - 142 = 18 | 65 - 94 = -29 |
40歳以上 | 140 - 145 = -5 | 184 - 190 = -6 | 138 - 157 = -19 | 133 - 103 = 30 |
Step 2: ズレを2乗し、期待度数で割る。
年齢 | カルボナーラ | ミートソース | ナポリタン | ペペロンチーノ |
---|---|---|---|---|
40歳未満 | 52 / 133 = 0.19 |
62 / 171 = 0.21 |
182 / 142 = 2.28 |
-292 / 94 = 8.95 |
40歳以上 | -52 / 145 = 0.17 |
-62 / 190 = 0.19 |
-192 / 157 = 2.30 |
302 / 103 = 8.74 |
Step 3: セルの値の合計を計算する
各セルの期待度数からのズレを二乗し、期待度数で割った値の和 \(\rightarrow\) \(\chi^2\)統計量
臨界値はqchisq()
で計算可能
chisq.test()
関数の使用性別と好きなパスタの関係
年齢と好きなパスタの関係
Pearson's Chi-squared test
data: table(pasta_df$Over40, pasta_df$Pasta)
X-squared = 22.515, df = 3, p-value = 5.095e-05
[1] 5.095027e-05
性別と好きなパスタの関係
年齢と好きなパスタの関係
独立性の検定は2つのカテゴリ変数が「独立」しているか、「連関」しているかを検定するものであり、変数間の具体的な関係を示すものではない。