← 統計検定テキスト 一覧

📊 対象級:準1級 | 重要度:B(標準)

要点(BLUF)

実験計画における**局所管理(フィッシャーの3原則 の第3原則)**を、具体的な配置として実装したのが乱塊法とラテン方格です。

  ST=S処理+Sブロック+SE(乱塊法)  \boxed{\;S_T = S_{\text{処理}} + S_{\text{ブロック}} + S_E\quad\text{(乱塊法)}\;}   ST=S+S+S処理+SE(ラテン方格)  \boxed{\;S_T = S_{\text{行}} + S_{\text{列}} + S_{\text{処理}} + S_E\quad\text{(ラテン方格)}\;}

要するに「誤差として一括処理していたばらつきを、ブロック変動(または行・列変動)として切り出すことで、真の誤差分散を小さくし、処理効果を検出しやすくする」のが両手法の共通ロジックです。


1. 乱塊法(Randomized Block Design)

1-1. 設定と配置の発想

乱塊法とは何か。 処理因子(興味ある要因)とは別に、実験結果に影響しうる外乱因子が既知のとき、その外乱因子でブロックを作り、ブロック内で処理をランダムに割り付ける実験配置です。

局所管理の実装という観点から言えば、「環境の均一な区画(ブロック)を作り、その中で無作為化する」ことで、ブロック間の環境差を処理の比較から切り離せます。

記号の定義。

記号意味
aa処理の水準数(比較したい群の数)
bbブロックの数
N=abN = ab全観測数(各ブロックに各処理を1回ずつ)
xijx_{ij}ii 処理・第 jj ブロックの観測値
xˉi\bar{x}_{i\cdot}ii 処理の平均
xˉj\bar{x}_{\cdot j}jj ブロックの平均
xˉ\bar{x}全体の総平均

⚠️ 乱塊法では通常、各ブロック内で各処理を1回ずつ行います(繰り返しなし)。ブロック×処理のセルに1観測のみです。

1-2. 線形モデル

乱塊法のデータ生成モデルは次の式で書けます。

xij=μ+αi+βj+εijx_{ij} = \mu + \alpha_i + \beta_j + \varepsilon_{ij}
意味
μ\mu総平均
αi\alpha_iii 処理の主効果(iαi=0\sum_i \alpha_i = 0
βj\beta_jjj ブロックの主効果(jβj=0\sum_j \beta_j = 0
εij\varepsilon_{ij}誤差(N(0,σ2)\sim N(0, \sigma^2)、独立)

要するに「観測値 = 全体平均 + 処理の効果 + ブロックの効果 + 誤差」です。このモデルには交互作用項がありません。これは乱塊法の標準的な仮定で、「処理効果はどのブロックでも同じ」という前提に相当します。

1-3. 平方和分解の導出

分解の出発点。 各観測の総平均まわりの偏差 (xijxˉ)(x_{ij} - \bar{x}) を3つに分解します。

xijxˉ=(xˉixˉ)処理の効果+(xˉjxˉ)ブロックの効果+(xijxˉixˉj+xˉ)残差(誤差)x_{ij} - \bar{x} = \underbrace{(\bar{x}_{i\cdot} - \bar{x})}_{\text{処理の効果}} + \underbrace{(\bar{x}_{\cdot j} - \bar{x})}_{\text{ブロックの効果}} + \underbrace{(x_{ij} - \bar{x}_{i\cdot} - \bar{x}_{\cdot j} + \bar{x})}_{\text{残差(誤差)}}

要するに「全体平均からのズレを、処理でどれだけ説明できるか・ブロックでどれだけ説明できるか・それでも残る誤差はいくらか」に分けた、ということです。

2乗して総和を取る。 この恒等式を2乗し、i=1,,ai=1,\dots,aj=1,,bj=1,\dots,b で総和を取ります。クロス項(積の2倍)が消えることを確認します。

処理とブロックのクロス項:

ij(xˉixˉ)(xˉjxˉ)=(i(xˉixˉ))(j(xˉjxˉ))=0×0=0\sum_i \sum_j (\bar{x}_{i\cdot} - \bar{x})(\bar{x}_{\cdot j} - \bar{x}) = \left(\sum_i (\bar{x}_{i\cdot} - \bar{x})\right)\left(\sum_j (\bar{x}_{\cdot j} - \bar{x})\right) = 0 \times 0 = 0

各平均の定義から偏差の和は0になるため、クロス項はすべて消えます。一元配置で見た「平均まわりの偏差の和=0」(分散分析 参照)と同じ論理です。よって、

  ST=S処理+Sブロック+SE  \boxed{\;S_T = S_{\text{処理}} + S_{\text{ブロック}} + S_E\;}

各平方和の式は次の通りです。

ST=i=1aj=1b(xijxˉ)2S_T = \sum_{i=1}^{a}\sum_{j=1}^{b}(x_{ij} - \bar{x})^2 S処理=bi=1a(xˉixˉ)2(処理平均が全体平均からどれだけ散らばるか)S_{\text{処理}} = b\sum_{i=1}^{a}(\bar{x}_{i\cdot} - \bar{x})^2 \quad\text{(処理平均が全体平均からどれだけ散らばるか)} Sブロック=aj=1b(xˉjxˉ)2(ブロック平均が全体平均からどれだけ散らばるか)S_{\text{ブロック}} = a\sum_{j=1}^{b}(\bar{x}_{\cdot j} - \bar{x})^2 \quad\text{(ブロック平均が全体平均からどれだけ散らばるか)} SE=STS処理SブロックS_E = S_T - S_{\text{処理}} - S_{\text{ブロック}}

ブロックを設けることで誤差が小さくなる理由。 もし乱塊法を使わず一元配置で分析したとすると、ブロック変動 SブロックS_{\text{ブロック}} は「群内変動(誤差)」に混入します。乱塊法では SブロックS_{\text{ブロック}} をきちんと切り出すので、残る誤差 SES_E がその分だけ小さくなります。誤差が小さくなれば VE=SE/ϕEV_E = S_E / \phi_E が小さくなり、F値(=V処理/VE= V_{\text{処理}} / V_E)が大きくなって検出力が上がります。これが乱塊法を使う実質的な利益です。

1-4. 自由度の分解

N1ϕT=(a1)ϕ処理+(b1)ϕブロック+(a1)(b1)ϕE\underbrace{N-1}_{\phi_T} = \underbrace{(a-1)}_{\phi_{\text{処理}}} + \underbrace{(b-1)}_{\phi_{\text{ブロック}}} + \underbrace{(a-1)(b-1)}_{\phi_E}

検算:(a1)+(b1)+(a1)(b1)=a1+b1+abab+1=ab1=N1(a-1) + (b-1) + (a-1)(b-1) = a - 1 + b - 1 + ab - a - b + 1 = ab - 1 = N-1。成立します。

1-5. 分散分析表(乱塊法)

変動要因平方和 SS自由度 ϕ\phi平均平方 VVF値
処理S処理S_{\text{処理}}a1a-1V処理=S処理a1V_{\text{処理}} = \dfrac{S_{\text{処理}}}{a-1}V処理VE\dfrac{V_{\text{処理}}}{V_E}
ブロックSブロックS_{\text{ブロック}}b1b-1Vブロック=Sブロックb1V_{\text{ブロック}} = \dfrac{S_{\text{ブロック}}}{b-1}(参考値)
誤差 EESES_E(a1)(b1)(a-1)(b-1)VE=SE(a1)(b1)V_E = \dfrac{S_E}{(a-1)(b-1)}
全体 TTSTS_Tab1ab-1

⚠️ ブロック行のF値は「参考値」と表記しました。ブロックは処理効果を分離するために設けた層別変数であり、「ブロック間に差があるか」という仮説検定が主目的ではないからです(ブロックは興味の対象ではなく、誤差を削るための道具)。

1-6. 二元配置分散分析との関係

乱塊法は「処理 ×\times ブロック」を2因子とした繰り返しなし二元配置分散分析として解析できます(分散分析 準1級部分の「繰り返しなし(r=1r=1)」に対応)。モデル式・平方和・自由度がまったく同じです。違いは解釈だけで、一方の因子を「処理(興味ある因子)」、もう一方を「ブロック(誤差を削るための層別)」と見るかどうかです。

graph TD
    RBD["乱塊法\n(Randomized Block Design)"]
    TWO["繰り返しなし二元配置\n分散分析"]
    RBD -- "解析は同じ" --> TWO
    TWO -- "一方の因子を\nブロックとして解釈" --> RBD
    TWO --> TREAT["処理因子(A)\n自由度:a-1"]
    TWO --> BLOCK["ブロック因子(B)\n自由度:b-1"]
    TWO --> ERR["誤差\n自由度:(a-1)(b-1)"]

2. ラテン方格(Latin Square Design)

2-1. 発想と配置

乱塊法が「1方向の局所管理」なのに対し、ラテン方格は2方向同時の局所管理です。「行方向の外乱」と「列方向の外乱」の両方をブロックとして取り込み、少ない実験回数で処理効果を分離します。

ラテン方格の定義。 k×kk \times k のマス目に kk 種類の記号(処理)を、各行に1回・各列に1回ずつ現れるように並べた配置です。 k=3k=3 の例:

graph LR
    subgraph "3×3 ラテン方格(A・B・Cが各行各列に1回ずつ)"
    R1["行1:A B C"]
    R2["行2:B C A"]
    R3["行3:C A B"]
    end

実験回数は k2k^2 回。完全配置なら kk 水準×kk 水準×kk 水準 =k3= k^3 回必要なところを、 k2k^2 回に削減できます。たとえば k=4k=4 なら 64回 → 16回です。

直交性(各変動源が互いに独立である根拠)。 ラテン方格の「各行各列に1回ずつ」という構造により、行・列・処理の3つの変動源が互いに直交します。直交しているとは「一方の変動を固定して見たとき、他の変動の和がキャンセルされる」ことを意味します。これが平方和を独立に分解できる根拠です。

2-2. 線形モデル

xijk=μ+αi+βj+γk+εijkx_{ijk} = \mu + \alpha_i + \beta_j + \gamma_k + \varepsilon_{ijk}
意味
μ\mu総平均
αi\alpha_iii 行の効果(iαi=0\sum_i \alpha_i = 0
βj\beta_jjj 列の効果(jβj=0\sum_j \beta_j = 0
γk\gamma_kkk 処理の効果(kγk=0\sum_k \gamma_k = 0
εijk\varepsilon_{ijk}誤差(N(0,σ2)\sim N(0, \sigma^2)、独立)

要するに「観測値 = 全体平均 + 行の効果 + 列の効果 + 処理の効果 + 誤差」というモデルです。

⚠️ このモデルには行×列、行×処理、列×処理などの交互作用項がありません。ラテン方格は「交互作用は無視できる(または存在しない)」という前提のもとで使う設計です。

2-3. 平方和分解の導出

乱塊法と同じ手順で、総偏差を4つに分解します。

xijkxˉ=(xˉixˉ)行効果+(xˉjxˉ)列効果+(xˉkxˉ)処理効果+残差誤差x_{ijk} - \bar{x} = \underbrace{(\bar{x}_{i\cdot\cdot} - \bar{x})}_{\text{行効果}} + \underbrace{(\bar{x}_{\cdot j\cdot} - \bar{x})}_{\text{列効果}} + \underbrace{(\bar{x}_{\cdot\cdot k} - \bar{x})}_{\text{処理効果}} + \underbrace{\text{残差}}_{\text{誤差}}

ここで:

各偏差の和は定義から0になるため、クロス項はすべて消えます(乱塊法の場合と同じ論理)。よって、

  ST=S+S+S処理+SE  \boxed{\;S_T = S_{\text{行}} + S_{\text{列}} + S_{\text{処理}} + S_E\;}

各平方和の式:

ST=ij(xijkxˉ)2(全 k2 観測の総平方和)S_T = \sum_{i}\sum_{j}(x_{ijk} - \bar{x})^2 \quad\text{(全 } k^2 \text{ 観測の総平方和)} S=ki=1k(xˉixˉ)2,S=kj=1k(xˉjxˉ)2,S処理=kk=1k(xˉkxˉ)2S_{\text{行}} = k\sum_{i=1}^{k}(\bar{x}_{i\cdot\cdot} - \bar{x})^2, \quad S_{\text{列}} = k\sum_{j=1}^{k}(\bar{x}_{\cdot j\cdot} - \bar{x})^2, \quad S_{\text{処理}} = k\sum_{k'=1}^{k}(\bar{x}_{\cdot\cdot k'} - \bar{x})^2 SE=STSSS処理S_E = S_T - S_{\text{行}} - S_{\text{列}} - S_{\text{処理}}

要するに「総変動から行・列・処理の変動を差し引いた残り」が誤差です。交互作用が存在するとしたらそれも誤差に混入しますが、ラテン方格ではそれを「ない」と仮定して SES_E を純粋な誤差とみなします。

2-4. 自由度の分解

全観測数は k2k^2 なので、

k21ϕT=(k1)ϕ+(k1)ϕ+(k1)ϕ処理+(k1)(k2)ϕE\underbrace{k^2 - 1}_{\phi_T} = \underbrace{(k-1)}_{\phi_{\text{行}}} + \underbrace{(k-1)}_{\phi_{\text{列}}} + \underbrace{(k-1)}_{\phi_{\text{処理}}} + \underbrace{(k-1)(k-2)}_{\phi_E}

誤差自由度 (k1)(k2)(k-1)(k-2) の導出。

ϕE=(k21)3(k1)=k213k+3=k23k+2=(k1)(k2)\phi_E = (k^2 - 1) - 3(k-1) = k^2 - 1 - 3k + 3 = k^2 - 3k + 2 = (k-1)(k-2)

要するに、総自由度から行・列・処理の自由度を3つ分引けば残りが誤差自由度です。

実用上の注意点。 k=3k=3 のとき ϕE=(31)(32)=2\phi_E = (3-1)(3-2) = 2。これは非常に小さく、F分布の臨界値が大きくなって検出力が下がります。ラテン方格の実用推奨は k5k \ge 5 が多いのはこのためです。 k=2k=2 では ϕE=0\phi_E = 0 となり分析不能になります。

2-5. 分散分析表(ラテン方格)

変動要因平方和 SS自由度 ϕ\phi平均平方 VVF値
SS_{\text{行}}k1k-1VV_{\text{行}}V/VEV_{\text{行}} / V_E
SS_{\text{列}}k1k-1VV_{\text{列}}V/VEV_{\text{列}} / V_E
処理S処理S_{\text{処理}}k1k-1V処理V_{\text{処理}}V処理/VEV_{\text{処理}} / V_E
誤差 EESES_E(k1)(k2)(k-1)(k-2)VEV_E
全体 TTSTS_Tk21k^2 - 1

⚠️ 自由度の検算:(k1)+(k1)+(k1)+(k1)(k2)=3(k1)+(k1)(k2)=(k1){3+k2}=(k1)(k+1)=k21(k-1)+(k-1)+(k-1)+(k-1)(k-2) = 3(k-1)+(k-1)(k-2) = (k-1)\{3 + k - 2\} = (k-1)(k+1) = k^2 - 1。成立します。


3. 乱塊法・ラテン方格の位置づけ(まとめ図)

flowchart TD
    F3["フィッシャーの3原則\n反復・無作為化・局所管理"]
    F3 --> CRD["完全無作為化法\n(局所管理なし)\n⇒ 一元配置分散分析"]
    F3 --> RBD["乱塊法\n(1方向の局所管理)\n⇒ 繰り返しなし二元配置分散分析\nST = S処理 + Sブロック + SE"]
    F3 --> LS["ラテン方格\n(2方向の局所管理)\n⇒ 3変動源分解\nST = S行 + S列 + S処理 + SE"]
    RBD --> OA["直交表・他の計画"]
    LS --> OA

⚠️ 引っかけポイント・頻出論点

(1) ブロックは「興味ある要因」ではない。 ブロック因子は誤差を削るための層別変数です。「ブロック間に差があるか」を主目的とする検定ではありません。ブロックを「もう1つの処理因子として関心を持つ」のは設計の誤解です。処理因子と混同しないこと。

(2) ラテン方格は交互作用を「仮定しない」ではなく「無視できると前提する」。 ラテン方格の設計では、行×列・行×処理・列×処理の交互作用は存在しない(または無視できるほど小さい)という前提が必要です。交互作用が実は大きい場合、それは SES_E に混入し、誤差分散が過大になって(または過小になって)検定が歪みます。「交互作用がないと確信できる」場面でのみ使うべき設計です。

(3) 行・列・処理の3要因が直交していることが前提。 ラテン方格の「各行各列に1回ずつ」という構造が直交性を保証します。この構造を崩した(欠損のある)配置では平方和の独立分解が成り立たなくなります。

(4) ラテン方格の誤差自由度が小さい問題。 k=3k=3 では ϕE=2\phi_E = 2 で検出力が低く、実用上は k5k \ge 5 が推奨されます。誤差自由度を増やすには「グレコ・ラテン方格」(2つのラテン方格の重ね合わせ)など発展的な計画に進む必要があります(直交表 へつながります)。

(5) 乱塊法では誤差自由度が (a1)(b1)(a-1)(b-1) で繰り返しなし二元配置と同じ。 繰り返しがないため、交互作用と誤差を分離できません。「交互作用がない」という仮定のもとで誤差を (a1)(b1)(a-1)(b-1) の自由度で推定します。


よくある疑問(Q&A)

Q1. 乱塊法はただの二元配置分散分析と何が違うのですか?

分析手順はまったく同じです。違いは設計の意図と解釈だけです。二元配置の「B因子」を、処理効果を比較するための背景制御(誤差削減)に特化して使うのが乱塊法です。二元配置では両因子とも「その効果に関心がある」のに対し、乱塊法ではブロック因子は「邪魔な変動を取り除く道具」として使います。解析コードを書けば同じコマンドで動きますが、「なぜブロックを設けるか」という設計思想が核心です。

Q2. ラテン方格で交互作用が調べられないのに、使う意味がありますか?

はい、あります。交互作用が存在しないとあらかじめ理論的に言える(または工学的に無視できる)状況では、ラテン方格は「少ない実験回数で2方向の外乱を制御できる」という強い利点を持ちます。 k3k^3 回必要な完全配置実験を k2k^2 回に削減しながら、処理効果を分離できます。交互作用が疑われる状況では使わず、完全要因計画または繰り返しのある計画を選ぶべきです。

Q3. 乱塊法の「ブロック内でランダム割り付け」とはどういう意味ですか?

たとえば処理が3種類(A・B・C)でブロックが「実験日」(月・火・水)なら、月曜日に A・B・C をランダムな順序で実施し、火曜日・水曜日でも同様にランダムな順序で実施します。「月曜にAだけやる」ではなく、「月曜の中でA・B・Cをランダムに割り振る」ことが重要です。これが局所管理(ブロック内制御)+無作為化(ブロック内ランダム)の組み合わせです。

Q4. ブロックを設けたのに処理の検出力が上がるのはなぜですか?

ブロックを設けないと、ブロック間のばらつき(SブロックS_{\text{ブロック}})が誤差 SES_E に混入します。乱塊法で明示的にブロック効果を切り出すと、残る誤差 SES_E が小さくなります。誤差が小さくなれば誤差平均平方 VEV_E も小さくなり、F値 =V処理/VE= V_{\text{処理}} / V_E が大きくなって検定が有意になりやすくなります。「ブロックを設ける = 分母(物差し)を縮める = 処理効果が相対的に際立つ」というメカニズムです。

Q5. ラテン方格の自由度計算がなぜ (k1)(k2)(k-1)(k-2) になるのですか?

総自由度 k21k^2 - 1 から行・列・処理の各自由度(それぞれ k1k-1)を3つ引けば残ります。式で示すと k213(k1)=k23k+2=(k1)(k2)k^2 - 1 - 3(k-1) = k^2 - 3k + 2 = (k-1)(k-2) です。k=3k=3 なら (2)(1)=2(2)(1)=2k=4k=4 なら (3)(2)=6(3)(2)=6 です。行・列・処理の3方向を分離した代償として、誤差に使える自由度が少ない、というのがラテン方格の本質的な制約です。


まとめ


関連ノート