testes que dependem de resíduos

Aug 26 2020

Esta pode ser uma pergunta r, que eu acho que não é permitida aqui, mas pensei em tentar caso esteja tudo bem. Há uma série de testes que, pelo que entendi, dependem de resíduos. Um exemplo disso é o teste de Breusch-Pagan. Isso gera resultados aparentes (e a documentação parece exigir um modelo de regressão em vez de resíduos).

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

O código está extraindo os resíduos ou estou errado ao presumir que você precisa de resíduos para este teste (os comentários que li parecem bastante claros de que é executado nos resíduos).

Respostas

StupidWolf Aug 26 2020 at 00:27

Para adicionar ao comentário de @ChristophHanck, você pode verificar o código-fonte do bptest e nele você vê que uma fórmula e um quadro de dados podem ser aplicados:

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

studentized Breusch-Pagan test

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

Abaixo do código, há duas partes. Se você fornecer um objeto lm, ele extrairá x e y, reajuste a fórmula usando lm.fit. Depois disso, ele extrai os resíduos do objeto lm.fit e calcula as estatísticas relevantes. Estas são as linhas relevantes:

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)