我想从我的线性回归中计算转换变量的标准误差,即除以两个变量并从这个变量中得到标准误差。
我使用包中的deltamethod
函数msm
,但未能获得准确的标准错误。
例如:
数据模拟:
set.seed(123)
nobs = 1000
data <- data.table(
x1 = rnorm(nobs),
x2 = rnorm(nobs),
x3 = rnorm(nobs),
x4 = rnorm(nobs),
y = rnorm(nobs))
线性回归:
reg2 <- lm(y~x1+x2+x3+x4, data=data)
获取 coef 和 vcov(这里我需要消除缺失,因为我的真实数据中的一些系数是 NA 并且我在循环中计算了很多回归)
vcov_reg <- vcov(reg2)
coef_reg <- coef(reg2)
coef_reg <- na.omit(coef_reg)
coef_reg <- as.numeric(coef_reg)
Deltamethod,对于变量 x1 除以 x3(意思是我应该根据 msm 包使用 x2 和 x4):
deltamethod(~ x2/x4, coef_reg, vcov_reg)
这给了我一个 3.21 的转换变量 (x1/x3) 的标准误差,而这个回归的所有标准误差都在 0.03 左右。
知道为什么/这里出了什么问题吗?也欢迎其他计算它的建议。