일부 값에 대한 테스트 모델 계수 (회귀 기울기)


20

I는 (일반) 선형 모델이 때 R에서, ( lm, glm, gls, glmm, ...), 방법 I가 0 이외의 값과 계수 (회귀 기울기)을 테스트 할 수 있을까? 모델 요약에서 계수의 t- 검정 결과는 자동으로보고되지만 0과 비교하기 위해서만 사용됩니다. 다른 값과 비교하고 싶습니다.

나는 reparametrizing y ~ x과 함께 트릭을 사용할 수 있다는 것을 알고 있습니다 . 테스트 된 값은 y - T*x ~ x어디 T에서이 매개 변수화 된 모델을 실행하지만 원래 모델에서 작동 할 수있는 더 간단한 솔루션을 찾고 있습니다.


답변:


17

다음은 모든 패키지에서 작동하거나 회귀 출력 만있는 경우 (예 : 종이 등)에보다 광범위한 솔루션입니다.

계수와 표준 오차를 취하십시오.

계산 . t에 대한 df는 H 0 : β = 0 인 테스트와 동일 합니다.=β^βH0se(β^)H0:β=0


1
고마워 글렌, [이 위대한 답변]에서 이것을 알고 있습니다. 그러나 t- 값에서 p- 값을 어떻게 얻을 수 있습니까?
Curious

2
@Curiouspt()
Affine

@Curious : Affine이 말했듯이 R 함수 pt 또는 t cdfs의 값을 제공하는 다른 것. 많은 패키지에 이러한 패키지가 있으며 널리 사용 가능한 t- 테이블이 있습니다.
Glen_b-복지 주 모니카

lm, lmer 및 기타가 0과 다른 테스트 매개 변수를 직접 수락하면 좋을 것입니다.
skan

@skan 문자 그대로 p- 값을 얻는 R 코드의 한 줄입니다. summary.lm의 출력을 가져와 정확한 사양에 맞는 새 테이블을 생성하는 작은 함수를 작성하는 것은 간단합니다.
Glen_b-복지 모니카

10

Glen_b가 제안한 간단한 t- 검정 또는보다 일반적인 Wald 검정을 사용할 수 있습니다.

Wald 검정은 여러 모수에서 여러 가설을 검정 할 수 있습니다. :이로 제형 R을 선택하는 (조합) 계수, Q는,에 대해 테스트 될 수있는 값을 나타낸다 여기서 β 표준 regresison 계수 인.Rβ=qβ

예를 들어, 하나의 모수에 가설이 하나만있는 경우 R은 행 매개 변수로, 해당 모수에 대한 값이 1이고 다른 곳에서는 0이며 q는 테스트 제한이있는 스칼라입니다.

R에서는 package car의 linearHypothesis () 함수를 사용하여 Wald 테스트를 실행할 수 있습니다 . hypothesis.matrix 인수로 표시되는 두 번째 계수 가 0.1 (인수 rhs )과 다른지 확인하고 싶다고 가정 해 보겠습니다 .

reg <- lm(freeny)
coef(reg)

# wald test for lag.quarterly.revenue =0.1
>library(car)
>linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0.1)
#skip some result, look at last value on last row, of Pr(>F) 
  Res.Df       RSS Df  Sum of Sq      F Pr(>F)
1     35 0.0073811                            
2     34 0.0073750  1 6.0936e-06 0.0281 0.8679

t- 검정의 경우이 함수는 Glen_b가 표시 한 t- 검정을 구현합니다.

ttest <- function(reg, coefnum, val){
  co <- coef(summary(reg))
  tstat <- (co[coefnum,1]-val)/co[coefnum,2]
  2 * pt(abs(tstat), reg$df.residual, lower.tail = FALSE)
}

> ttest(reg, 2,0.1)
[1] 0.8678848

두 번째 계수가 0이라는 표준 가설에 대해 Wald, t- 검정 및 R 기본 t- 검정을 비교하여 올바른 절차를 얻었는지 확인하십시오.

> linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0)[["Pr(>F)"]][2]
[1] 0.3904361
> ttest(reg, 2,0)
[1] 0.3904361
## The 'right' answer from R:
> coef(summary(reg))[2,4]
[1] 0.3904361

세 가지 절차로 동일한 결과를 얻을 수 있습니다.


좋아 보인다! hypothesis.matrix매개 변수 를 설명해 주 시겠습니까?
Curious

Wald 테스트를 수행하는지 잘 모르겠습니다. 나는 매개 변수와 함께 표준으로보고되지만 0이 아닌 다른 값으로 표준 t 테스트를 사용하려고했습니다.
Curious

@ 호기심 지금은 더 명확합니까?
Matifou

3

결국 가장 쉬운 해결책은 재 매개 변수화를 수행하는 것이 었습니다.

gls(I(y - T*x) ~ x, ...)

같은 결과가 나옵니까?
skan

그러나 당신은 독립적이지 않은 것을 빼고 있습니다. 최소 제곱에 대한 가정이나 공선성에 문제가되지 않습니까? lm (y ~ x + + offset (T * x))과 어떻게 다릅니 까?
skan

1
@skan 회귀는 x에 대한 조건부이며 의존성이 없습니다. 오프셋을 사용하는 것과 같아야합니다.
Glen_b-복귀 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.