如何忽略 R 中的可变长度差异错误? (我需要在其他变量上回归 1)
How can I ignore variable lengths differ error in R ? (I need to regress 1 on other variables)
您好,我正在尝试通过此获取异方差稳健 LM 统计量。
这是 wooldridge 教科书数据和示例,但最后我得到这个错误:
Error in model.frame.default(formula = 1 ~ ML + ML2 - 1, drop.unused.levels = TRUE) :
variable lengths differ (found for 'ML')
密码是,
library(wooldridge)
attach(crime1)
avgsensq = (avgsen^2)
#UNRESTRICTED MODEL
MODEL3 = lm(narr86 ~ pcnv + avgsen + avgsensq + ptime86 + qemp86 + inc86 +
black+hispan)
summary(MODEL3)
MODEL3_1 = lm(narr86 ~ pcnv + ptime86 + qemp86 + inc86 +
black+hispan)
RES1 = residuals(MODEL3_1)
MODEL3_2 = lm(avgsen ~pcnv + ptime86+qemp86+inc86+black+hispan)
MODEL3_3= lm(avgsensq ~pcnv + ptime86+qemp86+inc86+black+hispan)
RES2 = residuals(MODEL3_2)
RES3 = residuals(MODEL3_3)
ML = RES1*RES2
ML2 = RES1*RES3
MODEL3_4 = lm(1 ~ ML + ML2 - 1)
我该如何解决这个问题?
lm
函数似乎无法使用单个值作为响应变量。如果你真的想要一个恒定的响应,你需要将它指定为一个与项长度相同的向量,这样做:
MODEL3_4 = lm(rep(1, length(ML)) ~ ML + ML2 - 1)
MODEL3_4
#
#Call:
#lm(formula = rep(1, length(ML)) ~ ML + ML2 - 1)
#
#Coefficients:
# ML ML2
# 0.027785 -0.001045
您好,我正在尝试通过此获取异方差稳健 LM 统计量。 这是 wooldridge 教科书数据和示例,但最后我得到这个错误:
Error in model.frame.default(formula = 1 ~ ML + ML2 - 1, drop.unused.levels = TRUE) :
variable lengths differ (found for 'ML')
密码是,
library(wooldridge)
attach(crime1)
avgsensq = (avgsen^2)
#UNRESTRICTED MODEL
MODEL3 = lm(narr86 ~ pcnv + avgsen + avgsensq + ptime86 + qemp86 + inc86 +
black+hispan)
summary(MODEL3)
MODEL3_1 = lm(narr86 ~ pcnv + ptime86 + qemp86 + inc86 +
black+hispan)
RES1 = residuals(MODEL3_1)
MODEL3_2 = lm(avgsen ~pcnv + ptime86+qemp86+inc86+black+hispan)
MODEL3_3= lm(avgsensq ~pcnv + ptime86+qemp86+inc86+black+hispan)
RES2 = residuals(MODEL3_2)
RES3 = residuals(MODEL3_3)
ML = RES1*RES2
ML2 = RES1*RES3
MODEL3_4 = lm(1 ~ ML + ML2 - 1)
我该如何解决这个问题?
lm
函数似乎无法使用单个值作为响应变量。如果你真的想要一个恒定的响应,你需要将它指定为一个与项长度相同的向量,这样做:
MODEL3_4 = lm(rep(1, length(ML)) ~ ML + ML2 - 1)
MODEL3_4
#
#Call:
#lm(formula = rep(1, length(ML)) ~ ML + ML2 - 1)
#
#Coefficients:
# ML ML2
# 0.027785 -0.001045