我想在 R 中执行下一个线性模型: \begin{equation} lPC_t = \beta_0 + \beta_1PIBtvh_{t+1} + \beta_2txDes_t + \beta_3Spread_{t+4} + u_t \end{equation}
我的数据框的名称是 Dados_R。一旦我想对 19 到 45 之间的观察值进行估计,我就需要对数据施加限制。问题是,当我创建带导数的变量时,我不能改变它们的范围,或者至少我不能这样做,除非我自己更改原始数据框,否则一旦我想执行更多具有不同线索的模型,这不方便。
所以我的问题是如何更改我创建的变量的范围(leadPIBtvh0 e leadSpread0),以使我能够仅使用 19 到 45 之间的观察值来执行线性模型?
我写的代码:
attach(Dados_R)
leadPIBtvh0=lag(PIBtvh,1)
leadSpread0=lag(Spread,4)
data=Dados_R[19:45,]
detach(Dados_R)
attach(data)
lPC=log(PC/(1-PC))
lm_lPC=lm(lPC~leadPIBtvh0+txDes+leadSpread0)
这段代码给了我错误(我理解):
Error in model.frame.default(formula = lPC ~ leadPIBtvh0 + txDes + leadSpread0, : :
variable lengths differ (found for 'leadPIBtvh0')