簡體   English   中英

R 回歸與不同 null 假設

[英]R Regression with different null hypothesis

我有一系列回歸,我想在同一個回歸中執行不同的 null 假設。 這意味着我想測試一個自變量是否等於 1,另一個是否等於 0。

netew3 <- summary(lm(ewvw[,3]-factors$RF ~ factors$Mkt.RF + factors$SMB + factors$HML + factors$MOM, na.action = na.exclude), data = ewvw)

我想測試第一個變量(factors$Mkt.RF)是否等於 1,其他變量(SMB、HML 和 MOM)是否等於 0。

預先感謝您的幫助。 最佳PL

lm -object 的summary()為您提供 null 假設下每個系數等於 0 的所有系數的 p 值。但是,它還為您提供了所有必要的信息,以使用不同的 null 假設進行自己的測試,例如系數為1.

是詳細解釋回歸系數 t 檢驗的許多地方之一。 本質上,您通過計算(estimate - reference) / SE獲得 t 值。 SE是標准誤差, reference是 null 假設下的系數假設值(通常為 0)。 因此,您所要做的就是將后一個值從 0 更改為 1,然后您就得到了 t 值。

我在下面的 function 中自動化了這個。 h0.value是您在 null 假設下的假設值。 您可以通過使用h0.value = 0運行它來檢查它是否與您的數據/模型一起正常工作,並將結果與您從summary()獲得的結果進行比較。 如果可行,請將其與h0.value = 1一起使用。

estim_test <- function(lm.mod, h0.value = 0) {
  coefm <- as.data.frame(summary(lm.mod)$coefficients)
  n <- length(lm.mod$residuals)
  coefm$`t value` <- (coefm$Estimate - h0.value)/coefm$`Std. Error`
  coefm$`Pr(>|t|)` <- 2*pt(-abs(coefm$`t value`), df=lm.mod$df.residual)
  coefm
}

# Testing the function
data("swiss")
mod1 <- lm(Fertility ~ Agriculture + Education + Catholic, data=swiss)
summary(mod1)
estim_test(mod1, h0.value=0)
estim_test(mod1, h0.value=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM