如何忽略 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