R新手有lm功能的问题

时间:2014-10-03 15:11:47

标签: r lm

我有以下代码来获取一组数据的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));

1 个答案:

答案 0 :(得分:2)

来自help("lm")

  

如果响应是矩阵,则线性模型通过最小二乘法分别拟合到矩阵的每一列。

因此,如果您打算这样做,则需要在调用lm之前将data.frame设为矩阵:

e25 <- as.matrix(e25)