Использование результатов coeftest в Forext.lm () - PullRequest
0 голосов
/ 08 мая 2019

Я анализирую набор данных, в котором дисперсия ошибки в регрессии не постоянна для всех наблюдений. Для этого я пересобрал модель, оценивая устойчивые к гетероскедастичности (по Хубер-Уайту) стандартные ошибки, используя функцию наименьшего значения. Теперь я хочу использовать эти новые результаты для прогнозирования с помощью функцииgnast ().

Набор данных выглядит следующим образом, но с несколькими X:

set.seed(123)
x <- rep(c(10, 15, 20, 25), each = 25)
e <- c()
e[1:25] <- rnorm(25, sd = 10)
e[26:50] <- rnorm(25, sd = 15)
e[51:75] <- rnorm(25, sd = 20)
e[76:100] <- rnorm(25, sd = 25)
y <- 720 - 3.3 * x + e
model <- lm(y ~ x)
library(lmtest)
library(sandwich)
coeftest(model, vcov=vcovHC(model, "HC1"))  

Я нашел следующее решение проблемы в интернете:

predict.rob <- function(x,vcov,newdata){
    if(missing(newdata)){ newdata <- x$model }
    tt <- terms(x)
    Terms <- delete.response(tt)
    m.mat <- model.matrix(Terms,data=newdata)
    m.coef <- x$coef
    fit <- as.vector(m.mat %*% x$coef)
    se.fit <- sqrt(diag(m.mat%*%vcov%*%t(m.mat)))
    return(list(fit=fit,se.fit=se.fit))}

Остается проблема в том, что у моей регрессии более 1 регрессора.

Есть ли способ добавить это разрешение в несколько (7) объясняющих переменных?

Заранее спасибо!

1 Ответ

0 голосов
/ 08 мая 2019

Я не уверен, но функция coeftest выполняет только тест.Вы не можете напрямую использовать его результат для своего прогноза.Возможно, вы можете каким-то образом указать predict.lm коварианство через vcovHC(model, "HC1").Надеюсь, это вам немного поможет.

...