我有以下代码来获取一组数据的famafrench回归:
#Regression
ff_reg = lm(e25 ~ rmrf+smb+hml, data=dat);
但是,我一直收到错误"变量e25"的无效类型(列表)。
e25
在程序的前面定义为从减去“rf”中获得的一组数据。来自由25列组成的矩阵:
e25 = (dat[,7:31]) - dat$rf;
(其中dat是读入R的CSV文件,rf是该文件中的一列)
为什么会出现此错误,我该如何解决?
根据建议,这是我正在运行的完整代码......
dat = read.csv("ff2014.csv", as.is=TRUE);
##excess portfolio returns
e25 = (dat[,7:31]) - dat$rf;
#print(e25);
#Regression
ff_reg = lm(e25 ~ rmrf+smb+hml, data=dat);
print(summary(ffreg));
答案 0 :(得分:2)
来自help("lm")
:
如果响应是矩阵,则线性模型通过最小二乘法分别拟合到矩阵的每一列。
因此,如果您打算这样做,则需要在调用lm
之前将data.frame设为矩阵:
e25 <- as.matrix(e25)