r - 最小二乘回归系数的非线性函数的标准误差和置信区间

标签 r regression linear-regression lm coefficients

我在 R 中运行 OLS 回归,从中我得到了几个系数。这是部分代码:

Attacks <- Treat.Terr.Dataset$Attacks[2:30]
Attackslag <- Treat.Terr.Dataset$Attacks[1:29]
TreatmentEffect <- Treat.Terr.Dataset$TreatmentEffect[2:30]
TreatmentEffectlag <- Treat.Terr.Dataset$TreatmentEffect[1:29]

olsreg <- lm(TreatmentEffect ~ TreatmentEffectlag + Attacks + Attackslag)
coeffs<-olsreg$coefficients

然后我需要计算:(Attacks + Attackslag)/(1 - TreatmentEffectlag)。问题是我可以通过使用 (coeffs[3] + coeffs[4])/(1 - coeffs[2]) 在 R 上执行此操作,但结果是一个固定数字,没有任何 p-值或置信区间,就像计算器会告诉我的那样。

有谁知道我是否可以使用任何函数来计算置信区间?


编者注

如果目标量是回归系数的线性函数,那么问题就简化为可以进行精确推断的一般线性假设检验。

最佳答案

## variance-covariance of relevant coefficients
V <- vcov(olsreg)[2:4, 2:4]
## point estimate (mean) of relevant coefficients
mu <- coef(olsreg)[2:4]

## From theory of OLS, coefficients are normally distributed: `N(mu, V)`
## We now draw 2000 samples from this multivariate distribution
beta <- MASS::mvrnorm(n = 2000, mu, V)

## With those 2000 samples, you can get 2000 samples for your target quantity
z <- (beta[, 2] + beta[, 3]) / (1 - beta[, 1])

## You can get Monte Carlo standard error, and Monte Carlo Confidence Interval
mean(z)
sd(z)
quantile(z, prob = c(0.025, 0.975))

## You can of course increase sample size from 2000 to 5000

关于r - 最小二乘回归系数的非线性函数的标准误差和置信区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41287532/

相关文章:

python-3.x - 线性回归中的混淆矩阵

r - R 中的 NAND 运算符

r - Python block 的语法突出显示不起作用

R:如何在没有循环的情况下进行矩阵运算或更有效?

r - 使用 R 分析非线性数据

python - PyTorch 线性回归模型

r - 输入形状(以喀拉斯计)(此损失期望目标与输出具有相同的形状)

r - 如何使用聚类协方差矩阵对回归系数进行线性假设检验?

带有转换因变量的 ggplot2 线性回归的 R 图

python - 如何在 tensorflow 中实现多元线性随机梯度下降算法?