ひょっこり方式は、具体的なデータで実験する探究学習のことです。
  「実験から仮説を立て、更なる実験によって確かめていく」
これは、科学全般に共通する探究的な方法です。
その際、

  • 手計算できる簡単な例を自ら構成すること.
  • 予測と帰納を用いること.
  • 予測した法則が一般でも成り立つことをICTで確かめること.

が重要と考えます。

1 混合分布.

母集団を、複数群を混合したものと捉えることは重要です。
人間全体は、男性集団と女性集団という2つの異質な集団が混合したものです。
生徒の医療データは、学校ごとに集計されており、1つにまとめたときに平均や分散がどのようになるかを知っておくことは有用でしょう。

1.1 総説.

全ての法則をゼロから発見・構成することは、1つの世代では不可能でしょう。
次のように場面設定をしてみましょう。
あなたが古代遺跡から発掘した文書に、統計学の数式が書かれていました。統計学は遠い古代では研究が盛んでしたが、AIの進歩とともに理論は忘れさられてしまいました。あなたは古代の文書をもとに統計学の理論を自分の手で復元してみることにしました。

\(U=U_1\cup U_2\cup\cdots\cup U_L\).

各集合の平均・分散を.
   \(U\sim (\mu,~\sigma^2)\)  \(U_l\sim (\mu_l,~\sigma_l^2)~~~(l=1,2,\cdots , L)\)  とする。

\(U\)\(U_l\) の混合分布であるから、

 平均は、 \(\displaystyle \mu=\sum_{s=1}^M W_s\mu_s\) (群平均の加重平均)

 分散は、 \(\displaystyle \sigma^2=\sum_{s=1}^M W_s\sigma_s^2+ \sum_{s=1}^MW_s(\mu_s-\mu)^2\)  で与えられる。
      (群内分散の加重平均+群間分散)

偏差平方和の分解は、
  \(\begin{split} \sum_{i\in U}(y_i-\mu)^2&=\sum_{l=1}^L\sum_{i\in U_l}(y_i-\mu)^2= \sum_{l=1}^L\sum_{i\in U_l}\left((y_i-\mu_l) -(\mu_l-\mu)\right)^2\\ &=\sum_{l=1}^L\sum_{i\in U_l}(y_i-\mu_l)^2+\sum_{l=1}^L\sum_{i\in U_l}(\mu_l-\mu)^2-2\sum_{l=1}^L\sum_{i\in U_l}(y_i-\mu_l)(\mu_l-\mu)\\ &=\sum_{l=1}^L\sum_{i\in U_l}(y_i-\mu_l)^2+\sum_{l=1}^L\sum_{i\in U_l}(\mu_l-\mu)^2-2\sum_{l=1}^L(\mu_l-\mu)\left(\sum_{i\in U_l}(y_i-\mu_l)\right)\\ &=\sum_{l=1}^L N_l\sigma_l^2+\sum_{l=1}^LN_l(\mu_l-\mu)^2\\ \end{split}\)

要点をまとめると次の2式です。

  • 分散の分解式:\(\displaystyle \sigma^2=\sum_{s=1}^M W_s\sigma_s^2+ \sum_{s=1}^MW_s(\mu_s-\mu)^2\).
  • 平方和の分解:\(\begin{split} \sum_{i\in U}(y_i-\mu)^2&=\sum_{l=1}^L N_l\sigma_l^2+\sum_{l=1}^LN_l(\mu_l-\mu)^2\\ \end{split}\).

このとき、2つの立場が考えられます。

  • 各群に差がないか調べたい.
  • 各群から全体平均を推測したい.

この2つの立場について考えてみましょう。

第1の立場は、分散分析の立場です
 各群に差がないならば、各群の平均と分散は、母平均と母分散に等しいはずです.
 この場合、
 平方和分解の第1項、第2項を自由度で割った群内分散群間分散は、母分散に近似的に等しいと考えられます。
 F=(群間分散)/(郡内分散) の値が1より有意に大きいかで各群に差があるか判断するのが分散分析です。

第2の立場は、層化抽出の立場です
 「標本平均の分散=層化抽出分散+群間分散」であり.
 群間分散を大きくとれば層化抽出分散は小さくなり推定精度は上がります。

詳しく言うと、
   \(\displaystyle \sigma^2=\dfrac{1}{N}\sum_{i\in U}(y_i-\mu)^2=\dfrac{1}{N}\sum_{l=1}^L N_l\sigma_l^2+\dfrac{1}{N}\sum_{l=1}^LN_l(\mu_l-\mu)^2\).

n個の標本平均 \(\overline{y}\) の分散は、

   \(\displaystyle V(\overline{y})=\dfrac{\sigma^2}{n}=\dfrac{1}{n}\left[\dfrac{1}{N}\sum_{l=1}^L N_l\sigma_l^2+\dfrac{1}{N}\sum_{l=1}^LN_l(\mu_l-\mu)^2\right]\).

層化比例抽出の標本分散は  \(\displaystyle V(\widetilde{y}) =\dfrac{1}{n}\left(\sum_{l=1}^{L}\dfrac{N_l}{N}\sigma_l^2\right)\) であるので、

   \(\displaystyle \dfrac{\sigma^2}{n}=V(\widetilde{y})+\dfrac{1}{nN}\sum_{l=1}^LN_l(\mu_l-\mu)^2\) (第2項は群間変動に相当)

左辺は定数であり、右辺で群間変動が大きくなるように層をとれば、層化抽出の分散 \(V(\widetilde{y})\) は小さくなる。
(精度が上がる).

補足.
一般の層化抽出平均は.
   \(\displaystyle \widetilde{y}=\dfrac{1}{N}\sum_{l=1}^{L}\widehat{T_l}=\dfrac{1}{N}\sum_{l=1}^{L} \left( N_l\cdot\dfrac{1}{n_l}\sum_{i \in S_l}y_i\right) =\sum_{l=1}^{L} \left( \dfrac{N_l}{N}\right)\overline {y_l}\)
   \(\displaystyle V(\widetilde{y})=\sum_{l=1}^{L} \left( \dfrac{N_l}{N}\right)^2\cdot \dfrac{\sigma_l^2}{n_l}\).

特に、層化比例抽出では、\(\dfrac{n_l}{N_l}=\dfrac{n}{N}~~~\therefore~~n_l=\dfrac{N_l}{N}n~~~\therefore \dfrac{N_l}{N}\cdot \dfrac{1}{n_l}=\dfrac{1}{n}\)だから、
   \(\displaystyle V(\widetilde{y})=\sum_{l=1}^{L} \left( \dfrac{N_l}{N}\right)\cdot \dfrac{\sigma_l^2}{n}= \dfrac{1}{n}\left(\sum_{l=1}^{L}\dfrac{N_l}{N}\sigma_l^2\right)\)

n個の標本平均 \(\overline{y}\) の分散は、

   \(\begin{split}\displaystyle V(\overline{y})=\dfrac{\sigma^2}{n}&=\dfrac{1}{n}\left[\sum_{l=1}^L \dfrac{N_l}{N}\sigma_l^2+\sum_{l=1}^L\dfrac{N_l}{N}(\mu_l-\mu)^2\right]\\    &=V(\widetilde{y})+\dfrac{1}{n}\sum_{l=1}^L\dfrac{N_l}{N}(\mu_l-\mu)^2    \end{split}\).

以上が、混合分布の将来的な重要性です。

ここから先は、具体例で試してみましょう。

2 2群の混合分布.

2.1 データが1個.

  • 1をデータとする群を(1).
  • 3をデータとする群を(3).
  • 2群の混合を(1)-(3)と表します.

2.2 データが1個の2群.

  • (1)の平均は1、分散は0.
  • (3)の平均は3、分散は0.
  • 混合分布(1)-(3)の平均は2、分散は1.

混合分布の平均2は各群の平均1,3の平均ですが、分散はどう解釈すればよいでしょうか?

   vA,vB,vU.

## [1] 0 0 1

A,B 単独では分散0だったものが、合わせることで分散は1に増えています.

これは各群の平均1,3の分散(群間分散)が 0に加算されたと考えられます.
    \(\dfrac{(1-2)^2+(3-2)^2}{2}=1\).

2.2.1 混合率を変える.

  • (1)の平均は1、分散は0.
  • (3,3,3)の平均は3、分散は0.
  • 混合分布(1)-(3,3,3)の平均は2.5、分散は0.75.

   vA,vB,vU.

## [1] 0.00 0.00 0.75

これは各群の平均1,3,3,3の分散(群間分散)が 0に加算されたと考えられます.
    \(\dfrac{(1-2.5)^2+3\times (3-2.5)^2}{4}=\dfrac{3}{4}\).

2.2.2 探究1.

  • 2群の混合比率を変えてみる.
  • 2群の距離を変えてみる.

自分の作った具体例で、納得のいくまで試してみましょう。

2.3 データが2個の2群.

  • (1,-1)の平均は0、分散は1.
  • (1,3)の平均は2、分散は1.
  • 混合分布(1,-1)-(1,3)の平均は1、分散は0.75.

   vA,vB,vU.

## [1] 1 1 2

これは各群の平均0,2の分散(群間分散)が 0に加算されたと考えられます.
    \(\dfrac{(0-1)^2+ (2-1)^2}{2}=1\).

2.4 一般の2群.

(1) \(A=\{1,3,3,5\}\)について、平均と分散を計算しなさい。  

a=c(1,3,5)
A <- rep(a,c(1,2,1))
A
## [1] 1 3 3 5

  \(m=\)  
 

  \(V=\) 
 

(2) \(B=\{3,3,6,6,6,6,9,9\}\)について、平均と分散を計算しなさい。  

b=c(3,6,9)
B <- rep(b,2*c(1,2,1))
B
## [1] 3 3 6 6 6 6 9 9

  \(m=\)  
 

  \(V=\) 
 

(3) A,Bを合わせた12個のデータ\(C=\{1,3,3,5,3,3,6,6,6,6,9,9\}\)について、平均と分散を計算しなさい。  

U <- c(A,B)
U
##  [1] 1 3 3 5 3 3 6 6 6 6 9 9

  \(m=\)  
 

  \(V=\) 
 

vA <- var(A)*(nA-1)/nA
vB <- var(B)*(nB-1)/nB
vU <- var(U)*(nU-1)/nU#合併集合の分散
#公式で計算した分散
vP<- (nA/nU)*vA+ (nB/nU)*vB+(nA/nU)*(nB/nU)*(mean(A)-mean(B))^2
v <- c(vA,vB,vU,vP)
v
## [1] 2.000000 4.500000 5.666667 5.666667

2.4.1 探究2.

  • 2群の混合比率を変えてみる.
  • 2群の距離を変えてみる.

自分の作った具体例で、納得のいくまで試してみましょう。

3 3群の混合分布.

3.1 データが1個.

3.1.1 データが1個の3群.

  • (1)の平均は1、分散は0.
  • (2)の平均は2、分散は0.
  • (3)の平均は3、分散は0.
  • 混合分布(1)-(2)-(3)の平均は2、分散は2/3.

混合分布の平均2は各群の平均1,2,3の平均ですが、分散はどう解釈すればよいでしょうか?

## [1] 0.0000000 0.0000000 0.0000000 0.6666667

A,B,C 単独では分散0だったものが、合わせることで分散は2/3に増えています.

これは各群の平均1,2,3の分散2/3(群間分散)が 0に加算されたと考えられます.
    \(\dfrac{(1-2)^2+(2-2)^2+(3-2)^2}{3}=\dfrac{2}{3}\)

4 研究.

4.1 連続分布の混合分布.

連続分布の合成分布についても同様の性質が成り立つか考えます。

A:平均5、標準偏差1の正規乱数30個.
B:平均5、標準偏差1の正規乱数30個.

a=rnorm(30,5,1)
A <- rep(a,1)
b=rnorm(30,5,1)
B <- rep(b,1)
U <- c(A,B)
nA <- length(A)
nB <- length(B)
nU <- length(U)
vA <- var(A)*(nA-1)/nA
vB <- var(B)*(nB-1)/nB
vU <- var(U)*(nU-1)/nU#合併集合の分散

   vA,vB,vU.

v <- c(vA,vB,vU)
v
## [1] 0.9193181 0.7470573 0.9012670
nA <- length(A)
nB <- length(B)
nU <- length(U)
par(mfrow=c(2,2))
hist(A,prob=T,breaks=c(seq(-0.5,10.5,by=0.5)),col="#ff00ff40",ylim=c(0,1))
hist(B,prob=T,breaks=c(seq(-0.5,10.5,by=0.5)),col="#0000ff40")
hist(U,prob=T,breaks=c(seq(-0.5,10.5,by=0.5)),col="grey88",ylim=c(0,1.5))

第一の見方.

  • 分散の分解式:\(\displaystyle \sigma^2=\sum_{s=1}^M W_s\sigma_s^2+ \sum_{s=1}^MW_s(\mu_s-\mu)^2\).
se <- var(A)*29+var(B)*29 #群内変動
se/58
## [1] 0.8619183
sr <- 30*(mean(A)-mean(c(A,B)))^2+30*(mean(B)-mean(c(A,B)))^2 #群間変動
sr
## [1] 4.084762
SE <- 0.5*var(A)*29/30+0.5*var(B)*29/30 #群内変動
SR <- 0.5*(mean(A)-mean(c(A,B)))^2+0.5*(mean(B)-mean(c(A,B)))^2
SE
## [1] 0.8331877
SR
## [1] 0.06807936
SE+SR
## [1] 0.901267

4.2 F分布.

SE = c()
SR = c()
X=c()
for (i in 1:1000) {
  x1<-rnorm(30,5,1);x2<-rnorm(30,5,1)
  se <- var(x1)*29+var(x2)*29 #群内変動
  SE <- c(SE,se)
  sr <- 30*(mean(x1)-mean(c(x1,x2)))^2+30*(mean(x2)-mean(c(x1,x2)))^2 #群間変動
  SR <- c(SR,sr)
  f <- (sr)/(se/58)#F値
  X <- c(X,f)
}
mean(X)
## [1] 1.06364
hist(X,prob=T,breaks = "Scott")
curve(df(x, 1, 58),add=T)

mean(SE/58)
## [1] 0.9949625
hist(SE/58)

mean(SR/1)
## [1] 1.023671
hist(SR/1)

cor(SE,SR)
## [1] -0.001406613

 

この学びは次回の.
  「混合分布から分散分析へ」
繋がります。