벡터에는 소문자를, 행렬에는 대문자를 사용합니다.
다음과 같은 형식의 선형 모형의 경우 :
y=Xβ+ε
여기서 A는 랭크의 매트릭스 , 우리가 가정 .Xn×(k+1)k+1≤nε∼N(0,σ2)
의해 을 추정 할 수 있습니다 . 역으로 존재한다.β^(X⊤X)−1X⊤yX⊤X
이제 ANOVA 사례의 경우, 가 더 이상 전체 순위가 아닙니다. 이것의 의미는 없고 일반화 된 역 .X(X⊤X)−1(X⊤X)−
이 일반화 된 역을 사용하는 문제 중 하나는 고유하지 않다는 것입니다. 또 다른 문제는 이기 때문에
대한 편견 추정치를 찾을 수 없다는 것입니다.β
β^=(X⊤X)−X⊤y⟹E(β^)=(X⊤X)−X⊤Xβ.
따라서 추정 할 수 없습니다 . 그러나 의 선형 조합을 추정 할 수 있습니까?ββ
우리는의 선형 조합하는 것이이 의이 '말 이다 추정 할 벡터가 존재하는 경우 그러한를 .β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
을 산출 벡터의 선택이 다르다는 것을 알 수 있습니다 : ; 또는 ; 또는 입니다.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⎤⎦⎥⎥⎥
그리고 네 번째 행에서 행 2와 3을 가져옵니다.
⎡⎣⎢⎢⎢1000−10−1−00010−1−1−0−00100⎤⎦⎥⎥⎥
이것을 곱 수율 것은 :
β
g⊤1βg⊤2βg⊤3β=μ+α1+β1=β2−β1=α2−α1
따라서 우리는 3 개의 선형 독립 추정 함수를 가지고 있습니다. 이제 계수 (또는 행의 합계)이므로 및 대비로 간주 될 수 있습니다. 각각의 벡터 )의 합은 0과 같습니다.g⊤2βg⊤3βg
일방향 균형 모델
yij=μ+αi+εij,i=1,2,…,k,j=1,2,…,n.
그리고 가설 를 테스트한다고 가정 합니다.H0:α1=…=αk
이 설정에서 행렬 은 전체 순위가 아니므로 은 고유하지 않으며 추정 할 수 없습니다. 우리가 추정 할 곱할 수 있도록하려면 의해 ,만큼 . 즉, 는 iff 추정 할 수 있습니다.Xβ=(μ,α1,…,αk)⊤βg⊤∑igi=0∑igiαi∑igi=0
왜 이것이 사실입니까?
우리는 는 벡터가있는 경우 추정 할 수 있음을 알고 있습니다 되도록 . 및 의 고유 한 행을 취한 후
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 행은 관심 대조의 계수에 의해 정의됩니다. 그리고 각 열은 비교에 사용중인 요인 수준을 제공합니다.
내가 작성한 거의 모든 것은 통계학의 선형 모델, 8 장과 13 장 (예제, 정리의 표현, 일부 해석)에서 Rencher & Schaalje (무모하게)에서 가져왔다. "(실제로이 책에는 표시되지 않음)와 여기에 제공된 정의는 저의 것입니다.
OP의 대비 매트릭스를 내 대답과 관련시키기
OP의 매트릭스 중 하나 (이 매뉴얼 에서도 찾을 수 있음 )는 다음과 같습니다.
> 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) 행렬은 요인 1 요인 2, 3, 4를 비교하고, 상수 요인 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의 답변과 관련이 있습니다.
첫 번째 예에서 설정에는 세 가지 수준이있는 범주 형 요인 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 'matrix 과 비교하십시오 . 순서에도 불구하고, 그들은 매우 유사합니다. 실제로 곱하면 가 나타납니다.LX˜β
⎡⎣⎢001100010−1−1−1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥=⎡⎣⎢a1−a3a2−a3μ+a3⎤⎦⎥
따라서 추정 가능한 함수가 있습니다. ; ; .c⊤1β=a1−a3c⊤2β=a2−a3c⊤3β=μ+a3
이후 , 우리는 우리가 기준 기 (a_3) 용 계수 우리 상수를 비교하는 것으로, 위에서 볼; 그룹 1의 계수 대 그룹 3의 계수; 및 group2에 대한 group2의 계수. 또는 @ttnphns가 말했듯이 : "계수에 따라 추정 상수가 기준 그룹의 Y 평균과 같고 매개 변수 b1 (즉 더미 변수 A1)이 차이와 동일 함을 즉시 알 수 있습니다. 그룹 1의 Y 평균 빼기 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
결과는 같습니다.
결론
거기 것을 날 것으로 보인다 일 대비 매트릭스가 무엇인지 정의하는 개념.
Scheffe (66 페이지의 "분산 분석")에서 제공 한 대비의 정의를 취하면 계수의 합이 0 인 추정 가능한 함수임을 알 수 있습니다. 따라서 범주 형 변수 계수의 서로 다른 선형 조합을 테스트하려면 행렬 . 이것은 행의 합이 0 인 행렬로, 계수를 추정 할 수 있도록 계수 행렬에 곱하는 데 사용됩니다. 이 행은 테스트중인 대조의 서로 다른 선형 조합을 나타내고 열은 비교할 요소 (계수)를 나타냅니다.G
위의 행렬 는 각 행이 대비 벡터 (0으로 계산)로 구성되는 방식으로 구성되므로 를 "대비 행렬"( Monahan- "선형 모델의 입문서"-이 용어를 사용합니다).GG
그러나 @ttnphns가 아름답게 설명했듯이 소프트웨어는 다른 것을 "대비 매트릭스"라고 부르고 있으며, 매트릭스와 SPSS의 내장 명령 / 매트릭스 사이의 직접적인 관계를 찾을 수 없었습니다 (@ttnphns ) 또는 R (OP의 질문), 유사성 만. 그러나 나는 여기에 제시된 훌륭한 토론 / 협업이 그러한 개념과 정의를 명확히하는 데 도움이 될 것이라고 믿습니다.G