ベクトルには小文字を使用し、行列には大文字を使用します。
次の形式の線形モデルの場合:
y=Xβ+ε
ここで、はランク行列で、と仮定します。 N × (K + 1 )K + 1 ≤ N ε 〜N(0 、σ 2)Xn×(k+1)k+1≤nε∼N(0,σ2)
我々は推定することができるによって、以降の逆が存在します。(X⊤X)-1X⊤YX⊤Xβ^(X⊤X)−1X⊤yX⊤X
さて、ANOVAの場合、はもうフルランクではありません。これの意味するところは、がなく、一般化された逆行列。X(X⊤X)−1(X⊤X)−
この一般化された逆行列を使用する際の問題の1つは、一意でないことです。別の問題は、
ため、不偏推定量が見つからないことですβ
β^=(X⊤X)−X⊤y⟹E(β^)=(X⊤X)−X⊤Xβ.
したがって、推定することはできません。しかし、の線形結合を推定できますか?ββ
我々は、の線形結合することを持っている s「は、言う、ある見積りベクトルが存在する場合となるように。βg⊤βaE(a⊤y)=g⊤β
コントラストは、係数の和した推定可能な機能の特別なケースでありゼロに等しいです。g
また、線形モデルのカテゴリカル予測子のコンテキストでコントラストが生じます。(@amoebaによってリンクされたマニュアルを確認すると、それらのすべてのコントラストコーディングがカテゴリ変数に関連していることがわかります)。次に、@ Curiousと@amoebaに答えると、ANOVAで発生しますが、連続予測変数のみの「純粋な」回帰モデルでは発生しません(カテゴリ変数があるため、ANCOVAのコントラストについても説明できます)。
さて、モデルではここで、はフルランクではなく、、線形関数見積IFFベクトルが存在しているよう。つまり、は行の線形結合です。また、以下の例でわかるように、など、ベクトルには多くの選択肢があります。
y=Xβ+ε
XE(y)=X⊤βg⊤βaa⊤X=g⊤g⊤Xaa⊤X=g⊤
例1
一方向モデルを考えます
yij=μ+αi+εij,i=1,2,j=1,2,3.
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111111111000000111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥,β=⎡⎣⎢μτ1τ2⎤⎦⎥
そして、であると仮定してを推定したいとします。g⊤=[0,1,−1][0,1,−1]β=τ1−τ2
を生成ベクトルにはさまざまな選択肢があることがわかります:take ; または ; または。aa⊤X=g⊤a⊤=[0,0,1,−1,0,0]a⊤=[1,0,0,0,0,−1]a⊤=[2,−1,0,0,1,−2]
例2
双方向モデルを取る:
。
yij=μ+αi+βj+εij,i=1,2,j=1,2
X=⎡⎣⎢⎢⎢11111100001110100101⎤⎦⎥⎥⎥,β=⎡⎣⎢⎢⎢⎢⎢⎢μα1α2β1β2⎤⎦⎥⎥⎥⎥⎥⎥
行の線形結合をとることにより、推定可能な関数を定義できます。X
()行2、3、および4から行1を引く:
X
⎡⎣⎢⎢⎢1000−10−1−10011−1−1−0−10101⎤⎦⎥⎥⎥
そして、4行目から行2と3を取得し:
⎡⎣⎢⎢⎢1000−10−1−00010−1−1−0−00100⎤⎦⎥⎥⎥
これにを掛けると、次のます。
β
g⊤1βg⊤2βg⊤3β=μ+α1+β1=β2−β1=α2−α1
したがって、3つの線形独立な推定可能な関数があります。今、唯一とその係数の和(または、行ので、コントラストを考慮することができますそれぞれのベクトルの合計)はゼロに等しくなります。g⊤2βg⊤3βg
一元均衡モデル
yij=μ+αi+εij,i=1,2,…,k,j=1,2,…,n.
そして、仮説を検定したいとします。H0:α1=…=αk
この設定では、行列はフルランクではないため、は一意ではなく、推定できません。推定可能にするために、あれば、にを掛けることができ。つまり、場合、は推定可能です。Xβ=(μ,α1,…,αk)⊤βg⊤∑igi=0∑igiαi∑igi=0
なぜこれが本当ですか?
我々は知っている見積IFFであるベクトルが存在しますよう。服用別個の行と:次に、
g⊤β=(0,g1,…,gk)β=∑igiαiag⊤=a⊤XXa⊤=[a1,…,ak]
[0,g1,…,gk]=g⊤=a⊤X=(∑iai,a1,…,ak)
結果は次のとおりです。
特定のコントラストをテストしたい場合、仮説はです。例えば:、これはと書くことができるので、と平均を比較しています。。H0:∑giαi=0H0:2α1=α2+α3H0:α1=α2+α32α1α2α3
この仮説はとして表現できますここで。この場合、で、次の統計でこの仮説をテストします
H0:g⊤β=0g⊤=(0,g1,g2,…,gk)q=1
F=[g⊤β^]⊤[g⊤(X⊤X)−g]−1g⊤β^SSE/k(n−1).
場合は、で
は相互に直交するコントラスト()、をテストできます統計、ここでH0:α1=α2=…=αkGβ=0
G=⎡⎣⎢⎢⎢⎢⎢g⊤1g⊤2⋮g⊤k⎤⎦⎥⎥⎥⎥⎥
g⊤igj=0H0:Gβ=0F=SSHrank(G)SSEk(n−1)SSH=[Gβ^]⊤[G(X⊤X)−1G⊤]−1Gβ^。
例3
これをよりよく理解するために、使用して、をテストしたいとしますこれはとして表すことができます
k=4H0:α1=α2=α3=α4,
H0:⎡⎣⎢α1−α2α1−α3α1−α4⎤⎦⎥=⎡⎣⎢000⎤⎦⎥
または、:
H0:Gβ=0
H0:⎡⎣⎢000111−1−0−0−0−1−1−0−0−1⎤⎦⎥G,our contrast matrix⎡⎣⎢⎢⎢⎢⎢⎢μα1α2α3α4⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢000⎤⎦⎥
したがって、コントラストマトリックスの 3 行は、対象のコントラストの係数によって定義されていることがわかります。また、各列は、比較に使用している因子レベルを示しています。
私が書いたほとんどすべては、Rencher&Schaalje、「統計の線形モデル」、第8章と第13章(例、定理の表現、いくつかの解釈)から(恥知らずに)コピーされましたが、「コントラストマトリックス」 「(実際、この本には記載されていません)ここで与えられた定義は私自身のものでした。
OPのコントラストマトリックスを私の答えに関連付ける
OPのマトリックスの1つ(このマニュアルにも記載されています)は次のとおりです。
> contr.treatment(4)
2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
この場合、因子には4つのレベルがあり、次のようにモデルを記述できます。これは、行列形式で次のように記述できます。
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢μμμμ⎤⎦⎥⎥⎥⎥+⎡⎣⎢⎢⎢a1a2a3a4⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
または
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢11111000010000100001⎤⎦⎥⎥⎥X⎡⎣⎢⎢⎢⎢⎢⎢μa1a2a3a4⎤⎦⎥⎥⎥⎥⎥⎥β+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
現在、同じマニュアルのダミーコーディングの例では、参照グループとしてを使用しています。したがって、行列他のすべての行から行1を減算すると、ます。a1XX˜
⎡⎣⎢⎢⎢1000−1−1−1−1010000100001⎤⎦⎥⎥⎥
contr.treatment(4)マトリックスの行と列の数え方を観察すると、すべての行と因子2、3、および4に関連する列のみが考慮されていることがわかります。上記の行列の結果:
⎡⎣⎢⎢⎢010000100001⎤⎦⎥⎥⎥
このように、contr.treatment(4)マトリックスは、因子2、3、4を因子1と比較し、因子1を定数と比較していることを示しています(これは上記の私の理解です)。
そして、定義し(つまり、上記のマトリックスで合計が0になる行のみを取得します):
G
⎡⎣⎢000−1−1−1100010001⎤⎦⎥
をテストして、コントラストの推定値を見つけることができます。H0:Gβ=0
hsb2 = read.table('http://www.ats.ucla.edu/stat/data/hsb2.csv', header=T, sep=",")
y<-hsb2$write
dummies <- model.matrix(~factor(hsb2$race)+0)
X<-cbind(1,dummies)
# Defining G, what I call contrast matrix
G<-matrix(0,3,5)
G[1,]<-c(0,-1,1,0,0)
G[2,]<-c(0,-1,0,1,0)
G[3,]<-c(0,-1,0,0,1)
G
[,1] [,2] [,3] [,4] [,5]
[1,] 0 -1 1 0 0
[2,] 0 -1 0 1 0
[3,] 0 -1 0 0 1
# Estimating Beta
X.X<-t(X)%*%X
X.y<-t(X)%*%y
library(MASS)
Betas<-ginv(X.X)%*%X.y
# Final estimators:
G%*%Betas
[,1]
[1,] 11.541667
[2,] 1.741667
[3,] 7.596839
そして、推定値は同じです。
@ttnphnsの答えを私のものに関連付けます。
最初の例では、セットアップに3つのレベルを持つカテゴリカルファクターAがあります。これをモデルとして書くことができます(簡単にするために、):
j=1
yij=μ+ai+εij,for i=1,2,3
そして、、またはをテストし、を参照グループ/因子としてテストするとします。H0:a1=a2=a3H0:a1−a3=a2−a3=0a3
これは、次のように行列形式で記述できます。
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢μμμ⎤⎦⎥+⎡⎣⎢a1a2a3⎤⎦⎥+⎡⎣⎢ε11ε21ε31⎤⎦⎥
または
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢111100010001⎤⎦⎥X⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥β+⎡⎣⎢ε11ε21ε31⎤⎦⎥
ここで、行1と行2から行3を引くと、なります(と呼びます。XX˜
X˜=⎡⎣⎢001100010−1−1−1⎤⎦⎥
上記のマトリックスの最後の3列を@ttnphnsのマトリックス比較します。順序にもかかわらず、それらは非常に似ています。実際、乗算すると、次のようになります。LX˜β
⎡⎣⎢001100010−1−1−1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥=⎡⎣⎢a1−a3a2−a3μ+a3⎤⎦⎥
したがって、推定可能な関数があります: ; ; 。c⊤1β=a1−a3c⊤2β=a2−a3c⊤3β=μ+a3
以来、我々は、基準グループ(A_3)の係数に私達の定数を比較することを上から見ます。group1の係数からgroup3の係数。そしてgroup2からgroup3の係数。または、@ ttnphnsが言ったように、「係数に続いて、推定定数が参照グループのY平均に等しくなることがわかります。パラメータb1(つまり、ダミー変数A1の)は、差に等しくなります。 Yはグループ3の平均です。パラメータb2は差です。グループ2の平均からグループ3の平均を引いたものです。H0:c⊤iβ=0
さらに、(コントラストの定義に従って:推定可能な関数+行の合計= 0)、ベクトルとがコントラストであることを観察します。また、制約の行列を作成すると、次のようになります。c1c2G
G=[001001−1−1]
をテストするためのコントラストマトリックスH0:Gβ=0
例
@ttnphnsの「ユーザー定義のコントラストの例」と同じデータを使用します(ここで書いた理論は、相互作用のあるモデルを考慮するためにいくつかの修正が必要であるため、この例を選択しました。 、コントラストの定義と-私が呼ぶもの-コントラストマトリックスは同じままです。
Y<-c(0.226,0.6836,-1.772,-0.5085,1.1836,0.5633,0.8709,0.2858,0.4057,-1.156,1.5199,
-0.1388,0.4865,-0.7653,0.3418,-1.273,1.4042,-0.1622,0.3347,-0.4576,0.7585,0.4084,
1.4165,-0.5138,0.9725,0.2373,-1.562,1.3985,0.0397,-0.4689,-1.499,-0.7654,0.1442,
-1.404,-0.2201,-1.166,0.7282,0.9524,-1.462,-0.3478,0.5679,0.5608,1.0338,-1.161,
-0.1037,2.047,2.3613,0.1222)
F_<-c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,
5,5,5,5,5,5,5,5,5,5,5)
dummies.F<-model.matrix(~as.factor(F_)+0)
X_F<-cbind(1,dummies.F)
G_F<-matrix(0,4,6)
G_F[1,]<-c(0,3,3,-2,-2,-2)
G_F[2,]<-c(0,1,-1,0,0,0)
G_F[3,]<-c(0,0,0,2,-1,-1)
G_F[4,]<-c(0,0,0,0,1,-1)
G
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0 3 3 -2 -2 -2
[2,] 0 1 -1 0 0 0
[3,] 0 0 0 2 -1 -1
[4,] 0 0 0 0 1 -1
# Estimating Beta
X_F.X_F<-t(X_F)%*%X_F
X_F.Y<-t(X_F)%*%Y
Betas_F<-ginv(X_F.X_F)%*%X_F.Y
# Final estimators:
G_F%*%Betas_F
[,1]
[1,] 0.5888183
[2,] -0.1468029
[3,] 0.6115212
[4,] -0.9279030
したがって、同じ結果が得られます。
結論
存在しないと私には思える1つのコントラスト行列が何であるかの決定的な概念は。
Scheffe(「分散分析」、66ページ)によって与えられるコントラストの定義をとると、係数の合計がゼロになる推定可能な関数であることがわかります。したがって、カテゴリ変数の係数の異なる線形結合をテストする場合は、行列を使用します。これは、行の合計がゼロになる行列です。これらの係数を推定可能にするために、係数の行列を乗算するために使用します。その行は、テストしているコントラストのさまざまな線形の組み合わせを示し、その列は、比較されている因子(係数)を示しています。G
上記の行列は、各行がコントラストベクトル(合計は0)で構成されるように構成されているため、私にとってはを「コントラスト行列」と呼ぶのが理にかなっています(モナハン-「線形モデルの入門書」-この用語も使用します)。GG
しかし、@ ttnphnsで美しく説明されているように、ソフトウェアは何かを「コントラストマトリックス」と呼んでおり、マトリックスとSPSSの組み込みコマンド/マトリックス(@ttnphnsとの直接的な関係を見つけることができませんでした)またはR(OPの質問)、類似点のみ。しかし、ここで紹介する素晴らしい議論/協力は、そのような概念と定義を明確にするのに役立つと信じています。G