Я установил цензуру регрессионной модели в R с использованием пакета carx
.Данные, которые я использую, содержат 130 наблюдений
head(SAdata)
# A tibble: 6 x 10
CC lcl Dum ci CPI LI FDI FPI OI Inflows
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0.617 2.00 0 2.00 4.94 23.3 -0.207 -0.0320 -0.924 -1.16
2 0.410 2.00 0 2.00 2.92 20.5 -0.246 -0.128 0.0749 -0.299
3 0.196 2.00 0 2.00 4.26 17.2 -0.177 -0.0763 -0.482 -0.736
4 0.0518 2.00 0 2.00 5.90 15.5 0.00493 -0.313 -1.59 -1.90
5 -0.255 2.00 0 2.00 3.29 14.8 -0.0187 -0.200 -1.38 -1.59
6 -0.392 2.00 0 2.00 4.43 14 -0.00292 -0.0860 -0.00519 -0.0941
> dim(SAdata)
[1] 130 10
library(carx)
SAmodel <- carx(y=SAdata$CC, x=SAdata[,c("CPI","LI","FDI","FPI", "OI")], lcl=1.996866, p=2, CI.compute = FALSE, CI.level = 0.95)
summary(SAmodel)
Call:
carx.default(y = SAdata$CC, x = SAdata[, c("CPI", "LI", "FDI", "FPI", "OI")], lcl = 1.996866, p = 2, CI.compute = FALSE, CI.level = 0.95)
Coefficients:
Estimate
CPI 0.0804
LI -0.0088
FDI -0.0395
FPI -0.0166
OI 0.0488
AR1 1.6324
AR2 -0.7097
sigma 0.4286
AIC:
[1] -72.92045
Но в ответ я получил только оценки без доверительных интервалов, доверительные интервалы в этом пакете рассчитываются с помощью начальной загрузки, которая занимает много времени,когда я установил аргумент IC.compute = T
с 1000 итерациями (из того, что я прочитал, это наименьшее количество итераций), это заняло целый день и не закончилось.По этой причине я попытался вручную вычислить стандартные ошибки для каждого коэффициента, но не смог найти способ рассчитать стандартную ошибку для авторегрессионных терминов и сигма.
Вот что я пробовал
#Calculating the residuals of the fitted model
SAres = residuals(SAmodel,type="raw")
# Find the sum of the squared residuals
rss <- sum(SAres^2)
# And use that to find the estimate of sigma^2, commonly called S
S <- sqrt(rss / (length(SAres) - length(SAmodel$coefficients)))
# Make the X matrix; a column of 1s for the intercept and one for each variable
X <- cbind(rep( nrow(SAdata)), SAdata$CPI, SAdata$LI,SAdata$FDI, SAdata$FPI,
SAdata$OI)
# Multiply matrices using %*%, transpose them with t(),
# and invert them with solve(); and directly apply the formula above with:
std.errors <- S * sqrt(diag(solve(t(X) %*% X)))
std.errors
[1] 0.001232184 0.037669933 0.010483153 0.068843648 0.040779940 0.063888636
Я не знаю, как включить авторегрессионные термины (AR1, AR2) и сигма, потому что их вычисления основаны на переменной отклика.Как получить стандартные ошибки этих параметров?
Мне нужно рассчитать стандартные ошибки, чтобы позже я смог вычислить доверительные интервалы для каждого коэффициента.
Любая помощь очень ценится