複数のグループ間の違いを検証する
(Press ?
for help, n
and p
for next and previous slide)
村田 昇
2020.07.03
分散分析における仮説の例:
- ある小売店について“売上高は月によって差があるか”
- ある銘柄の株価について“収益率は曜日によって差があるか”
2種類のデータの分散が等しいか否かを検定する
検定統計量:
\(H_0\) の下では以下が成立:
第一種過誤の上限が \(\alpha\) の棄却域:
以下の場合,帰無仮説を棄却
各グループ \(i\) ごとに \(n_i\) 個のデータを観測
例: 小売店の売上高の問題
- \(A_1,A_2,\dotsc,A_p\): 月
- \(Y_{i1},Y_{i2},\dotsc,Y_{in_i}\): \(i\) 月の各日における売上高
観測データのモデル:
検定問題
各水準 \(A_1,A_2,\dotsc,A_p\) の平均に差があるか否かを検定する
対立仮説: 平均の異なる水準がある
各種平均: (\(n=\sum_{i=1}^pn_i\) は全サンプル数)
\begin{align} &\text{(全データの標本平均)} &\bar{Y}_{\cdot\cdot}&=\frac{1}{n}\sum_{i=1}^p\sum_{j=1}^{n_i}Y_{ij},\\ &\text{(水準$A_i$の標本平均)} &\bar{Y}_{i\cdot}&=\frac{1}{n_i}\sum_{j=1}^{n_i}Y_{ij}\quad (i=1,\dotsc,p). \end{align}
各種変動:
\begin{align} &\text{(全変動)} &SS_T&=\sum_{i=1}^p\sum_{j=1}^{n_i}(Y_{ij}-\bar{Y}_{\cdot\cdot})^2,\\ &\text{(級内変動)} &SS_W&=\sum_{i=1}^p\sum_{j=1}^{n_i}(Y_{ij}-\bar{Y}_{i\cdot})^2,\\ &\text{(級間変動)} &SS_B&=\sum_{i=1}^p\sum_{j=1}^{n_i}(\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot})^2 =\sum_{i=1}^pn_i(\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot})^2. \end{align}
変動の分解:
\begin{equation} \underbrace{\text{(全変動) }SS_T}_{\text{自由度 }n{-}1} =\underbrace{\text{(級内変動) }SS_W}_{\text{自由度 }n{-}p} +\underbrace{\text{(級間変動) }SS_B}_{\text{自由度 }p{-}1} \end{equation}
検定統計量:
\(H_0\) の下で以下が成立:
第一種過誤の上限が \(\alpha\) となる棄却域:
以下の場合,帰無仮説を棄却
\(p\) 値を用いる方法: \(p\) 値を計算
(\(f(x)\) は自由度 \(p{-}1,n{-}p\) の \(F\) 分布の密度)
自由度 | 平方和 | 平均平方和 | \(F\) 値 | \(p\) 値 | ||
---|---|---|---|---|---|---|
級間 | \(p{-}1\) | \(SS_B\) | \(SS_B/(p{-}1)\) | \(F\) | \(\mathstrut\int_{F}^\infty f(x)dx\) | |
級内 | \(n{-}p\) | \(SS_W\) | \(SS_W/(n{-}p)\) | |||
全変動 | \(n{-}1\) | \(SS_T\) |
平均値の別表現:
帰無仮説 \(H_0\) は以下と同等:
基本書式
aov(formula, data)
formula
: 式,一元配置の場合は (観測値 ~ 因子)data
: データフレーム分散分析表の表示
summary(aovの結果)
model.tables(aovの結果, type="means") # 平均値
model.tables(aovの結果, type="effects") # 効果
基本書式
oneway.test(formula, data, subset, na.action, var.equal = FALSE)
formula
: 式data
: データフレームsubset
: subsetの指定na.action
: 欠損値の扱いvar.equal
: 等分散を仮定する場合は TRUE
tokyo_weather.csv
) の
気温の項目について以下の問に答えよ.
曜日ごとの気温の平均と分散を求めよ.
## 週日を因子(factor)とするには例えば以下のような項目を加えればよい
myData <- read.csv("data/tokyo_weather.csv", fileEncoding="utf8")
days <- with(myData, # 日付を取り出して整形する
as.Date(paste(年,月,日, sep="-")))
wdays <- weekdays(days) # 各日付の曜日を計算
myData <- cbind(myData, 曜日=as.factor(wdays)) # 曜日因子を追加
観測データのモデル:
検定問題
因子 \(A\) の各水準の効果に差があるか否かを検定する
対立仮説: 因子 \(A\) の効果に差のあるものがある
各種平均: (\(n=ab\))
\begin{align} &\text{(全データの標本平均)} &\bar{Y}_{\cdot\cdot}&=\frac{1}{n}\sum_{i=1}^a\sum_{j=1}^{b}Y_{ij},\\ &\text{(水準$A_i$の標本平均)} &\bar{Y}_{i\cdot}&=\frac{1}{b}\sum_{j=1}^bY_{ij}\quad (i=1,\dotsc,a),\\ &\text{(水準$B_j$の標本平均)} &\bar{Y}_{\cdot j}&=\frac{1}{a}\sum_{i=1}^aY_{ij}\quad (j=1,\dotsc,b). \end{align}
因子効果の推定量としての標本平均:
\begin{align} \bar{Y}_{i\cdot} &\to\alpha_i+\frac{1}{b}\sum_{j=1}^b\beta_j,\\ \bar{Y}_{\cdot j} &\to\frac{1}{a}\sum_{i=1}^a\alpha_i+\beta_j,\\ \bar{Y}_{\cdot\cdot} &\to\frac{1}{ab}\sum_{i=1}^a\sum_{j=1}^b(\alpha_i+\beta_j)=\frac{1}{a}\sum_{i=1}^a\alpha_i+\frac{1}{b}\sum_{j=1}^b\beta_j \end{align}\begin{equation} Y_{ij}-\bar{Y}_{i\cdot} -\bar{Y}_{\cdot j}+\bar{Y}_{\cdot\cdot} \to\varepsilon_{ij} \end{equation}
各種変動:
\begin{align} &\text{(行間変動)} &SS_A&=b\sum_{i=1}^a(\bar{Y}_{i\cdot}-\bar{Y}_{\cdot\cdot})^2,\\ &\text{(列間変動)} &SS_B&=a\sum_{j=1}^b(\bar{Y}_{\cdot j}-\bar{Y}_{\cdot\cdot})^2,\\ &\text{(誤差変動)} &SS_E&=\sum_{i=1}^a\sum_{j=1}^b(Y_{ij}-\bar{Y}_{i\cdot} -\bar{Y}_{\cdot j}+\bar{Y}_{\cdot\cdot})^2. \end{align}
変動の分解:
\begin{multline} \underbrace{\text{(全変動) }SS_T}_{\text{自由度 }ab-1} =\underbrace{\text{(行間変動) }SS_A}_{\text{自由度 }a-1}\\ +\underbrace{\text{(列間変動) }SS_B}_{\text{自由度 }b-1} +\underbrace{\text{(誤差変動) }SS_E}_{\text{自由度 }(a-1)(b-1)} \end{multline}
変動の分解:
\begin{multline} \underbrace{\text{(全変動) }SS_T}_{\text{自由度 }ab-1} =\underbrace{\text{(行間変動) }SS_A}_{\text{自由度 }a-1}\\ +\underbrace{\text{(列間変動) }SS_B}_{\text{自由度 }b-1} +\underbrace{\text{(誤差変動) }SS_E}_{\text{自由度 }(a-1)(b-1)} \end{multline}
検定統計量:
\(H_0\) の下で以下が成立:
第一種過誤の上限が \(\alpha\) となる棄却域:
以下の場合,帰無仮説を棄却
値を計算
(\(f\) は自由度 \(a{-}1,(a{-}1)(b{-}1)\) の \(F\) 分布の確率密度関数)
自由度 | 平方和 | 平均平方和 | \(F\text{値}\) | \(p\text{値}\) | |
---|---|---|---|---|---|
\(\text{因子}A\) | \(a{-}1\) | \(SS_A\) | \(\displaystyle\frac{SS_A}{a{-}1}\) | \(F_A\) | \(\displaystyle\int_{F_A}^\infty f_{a{-}1,(a{-}1)(b{-}1)}(x)dx\) |
\(\text{因子}B\) | \(b{-}1\) | \(SS_B\) | \(\displaystyle\frac{SS_B}{b{-}1}\) | \(F_B\) | \(\displaystyle\int_{F_B}^\infty f_{b{-}1,(a{-}1)(b{-}1)}(x)dx\) |
\(\text{誤差}\) | \((a{-}1)(b{-}1)\) | \(SS_E\) | \(\displaystyle\frac{SS_E}{(a{-}1)(b{-}1)}\) |
相対効果による定式化:
モデルの書き換え:
\begin{align} \mu^*&=\bar{\alpha}+\bar{\beta},& \alpha^*_i&=\alpha_i-\bar{\alpha},& \beta^*_j&=\beta_j-\bar{\beta}\\ &&\bar{\alpha}&=\frac{1}{a}\sum_{i=1}^a\alpha_i, &\bar{\beta}&=\frac{1}{b}\sum_{j=1}^b\beta_j \end{align}\begin{equation} Y_{ij}=\mu^*+\alpha^*_i+\beta^*_j+\varepsilon_{ij}\quad (i=1,\dotsc,a;\;j=1,\dotsc,b) \end{equation}\begin{equation} \text{ただし }\sum_{i=1}^a\alpha^*_i=\sum_{j=1}^b\beta^*_j=0 \end{equation}
帰無仮説 \(H_0\) は以下と同等:
基本書式
aov(formula, data)
formula
: 式,二元配置の場合は (観測値 ~ 因子 + 因子)data
: データフレーム
パッケージ datarium
をインストールして,
そこに含まれている jobsatisfaction
データ
(性別 (gender
) と学歴 (education_level
) の違いによる
仕事の満足度 (score
) を収集したデータ)
について以下の問に答えよ.
## パッケージのインストールと読み込みは以下のように行うことができる
install.packages("datarium") # インストール
library(datarium) # 読み込み