잔차에 의존하는 검정

Aug 26 2020

이것은 여기에서 허용되지 않는다고 생각하는 r 질문 일 수 있지만 괜찮을 경우 시도 할 것이라고 생각했습니다. 내가 이해하는대로 잔차에 의존하는 일련의 테스트가 있습니다. 이에 대한 한 가지 예가 Breusch-Pagan 테스트입니다. 이것은 그것으로부터 명백한 결과를 생성합니다 (그리고 문서는 잔차보다는 회귀 모델을 요구하는 것 같습니다).

# load the dataset
data(mtcars)
# fit a regression model
model <- lm(mpg~disp+hp, data=mtcars)
library(lmtest)
# perform Breusch-Pagan Test
bptest(model)

코드가 잔차를 추출하고 있습니까? 아니면이 테스트에 잔차가 필요하다고 가정하는 것이 잘못 되었습니까?

답변

StupidWolf Aug 26 2020 at 00:27

@ChristophHanck 의 의견에 추가하려면 bptest 의 소스 코드를 확인하면 공식과 데이터 프레임을 적용 할 수 있습니다.

bptest(mpg~disp+hp, data=mtcars)

studentized Breusch-Pagan test

data:  mpg ~ disp + hp
BP = 4.0861, df = 2, p-value = 0.1296

코드 아래에는 두 부분이 있습니다. lm 객체를 제공하면 x와 y를 추출하고 lm.fit을 사용하여 수식을 다시 맞 춥니 다. 그 후 lm.fit 객체에서 잔차를 추출하고 관련 통계를 계산합니다. 다음은 관련 라인입니다.

resi <- lm.fit(X,y)$residuals
  sigma2 <- sum(resi^2)/n

  if(studentize)
  {
    w <- resi^2 - sigma2
    aux <- lm.fit(Z, w)    
    bp <- n * sum(aux$fitted.values^2)/sum(w^2) method <- "studentized Breusch-Pagan test" } else { f <- resi^2/sigma2 -1 aux <- lm.fit(Z, f) bp <- 0.5 * sum(aux$fitted.values^2)
    method <- "Breusch-Pagan test"
  }

  names(bp) <- "BP"
  df <- c("df" = aux$rank - 1)
  RVAL <- list(statistic = bp,
      parameter = df,
      method = method,
      p.value= pchisq(bp, df, lower.tail = FALSE),
      data.name = dname)