한 수준과 다른 수준의 평균 차이에 대해 대비 행렬 (R)을 지정하는 방법은 무엇입니까?


9

다음과 같은 회귀 모델이 있습니다

Y=β0+β1X1+β2X2+β3X3+β12X1X2+β13X1X3+β123X1X2X3

... 또는 R 표기법 : y ~ x1 + x2 + x3 + x1:x2 + x1:x3 + x1:x2:x3

과 가 범주 형 변수이고 이 숫자 라고 가정 해 봅시다 . 그 합병증이다 세 단계를 갖는다 대신 표준 대조는, I는 검사해야X1X2X3X1X1a,X1b,X1c

  • 레벨 절편 여부 유의 수준의 평균 절편 상이 및 .X1aX1bX1c
  • 의 응답 여부 레벨 사이의 큰 차이가 및 레벨의 평균 및 .X2X1aX1bX1c
  • 의 기울기가 레벨 와 레벨 및 의 평균 간에 유의하게 다른지 여부 입니다.X3X1aX1bX1c

이 게시물을 기반으로 하면 원하는 매트릭스처럼 보입니다 ...

 2
-1
-1

그래서 contrasts(mydata$x1)<-t(ginv(cbind(2,-1,-1))). 의 추정치는 변경되지만 다른 것 변경됩니다. 및 그룹 평균 ( 및 가 참조 수준에 있을 때) 의 예측 된 값을 해당 수준 의 값의 두 배에서 빼면 의 새로운 추정치를 재현 할 수 있습니다. 그러나 다른 계수를 비슷하게 도출 할 수 없다면 대비 행렬을 올바르게 지정했다고 믿을 수 없습니다.β1beta1X1b엑스1엑스=0엑스2엑스1

세포 평균과 대비 사이의 관계를 머리로 감싸는 방법에 대한 조언이 있습니까? 감사. 이 유형의 대비에 대한 표준 이름이 있습니까?


아하! Glen_b 's answer에 게시 된 링크에 따르면 결론은 다음과 같이 원하는 그룹 평균의 비교를 R 스타일 대비 속성으로 변환 할 수 있다는 것입니다.

  1. 정사각 행렬을 만듭니다. 행은 요인의 수준을 나타내고 열은 대비를 나타냅니다. 인터셉트가 무엇을 나타내는 지 모델에 알려주는 첫 번째 것을 제외하고.
  2. 가로 채기를 전체 평균으로하려면 첫 번째 열을 0이 아닌 동일한 값으로 모두 채우십시오. 절편이 레벨 평균 중 하나가 되려면 해당 행에 숫자를 넣고 나머지는 0으로 채우십시오. 절편이 여러 수준의 평균이되도록하려면 해당 행에 숫자를 넣고 나머지에 0을 넣으십시오. 가중 평균이 되려면 다른 숫자를 사용하고, 그렇지 않으면 같은 숫자를 사용하십시오. 가로 채기 열에 음수 값을 넣을 수도 있습니다. 아마도 무언가를 의미하지만 다른 대비를 완전히 변경하므로 그게 무엇인지 알 수 없습니다.
  3. 다른 열과 비교하여 원하는 수준을 나타내는 양수 및 음수 값으로 나머지 열을 채우십시오. 왜 0으로 합산하는 것이 중요한지 잊지 만 열의 합계가 0이되도록 값을 조정하십시오.
  4. t()함수를 사용하여 행렬을 바꿉니다 .
  5. 패키지 ginv()에서 사용 MASS하거나 solve()조옮김 행렬의 역수를 구하십시오.
  6. 예를 들어 첫 번째 열을 삭제하십시오 mycontrast<-mycontrast[,-1]. 이제 apx p-1 행렬이 있지만 인터셉트를 위해 입력 한 정보는 5 단계 동안 행렬에 전체적으로 인코딩되었습니다.
  7. 요약 출력의 레이블을 lm()et 's.의 기본 출력 보다 읽기 편하게하려면 행렬의 열 이름을 적절하게 지정하십시오. 그러나 인터셉트는 항상 자동으로 이름이 지정됩니다 (Intercept).
  8. 행렬을 문제의 요인에 대한 새로운 대비로 만드십시오. contrasts(mydata$myfactor)<-mymatrix
  9. 실행 lm()(및 수식을 사용 아마도 다른 많은 기능)로드하지 않고도 표준 R에서 정상으로 glht, doBy또는 contrasts.

Glen_b, 감사합니다. UCLA 통계 컨설팅 그룹에 감사드립니다. 적용된 통계 전문가가이 주제에 대해 며칠 동안 손을 보냈는데, 실제로 내 자신의 대비 행렬을 작성하는 방법을 전혀 몰랐습니다. 그리고 지금, 한 시간 동안 R을 읽고 놀고, 마침내 나는 그것을 얻습니다. 내가 대신 UCLA에 적용했을 것 같아요. 또는 University of StackExchange.

답변:


5

이후의 모든 변수의 평균과 하나를 비교하는 것은 Helmert 코딩 또는 Helmert 대비 라고합니다 (규모 제외) . 당신이주는 것은 첫 번째 대비이고, 다른 하나는 의 스케일 버전입니다.(0,1,1) .

R 통화 코딩 헬머 무엇, 호출은 '헬머 역'. 변수 순서 변경과 동일합니다.


"가변 순서의 변화까지"와 동등한 수준이 "수준 순서의 반전을 제공해야"합니까? 따라서 SAS / SPSS 유형의 helmert (잔여 레벨의 평균과 비교)를 얻으려면 관련 요인의 레벨 순서를 반대로하거나 각 열의 rev ()를 누른 다음 행렬의 각 행을 rev ()해야합니다. 에 의해 반환 contra.helmert?
tim

@tim "변수 순서 변경"은 " 변수 순서 변경 "을 의미 하는 것이 아니라 문자 그대로 변수 순서 변경 (특히 하나).
Glen_b-복귀 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.