残差に依存するテスト

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

コードの下には、2つの部分があります。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)