应用或循环的多元线性回归?在R

时间:2014-05-10 22:04:34

标签: r

我想在每天的更多变量(a和b和c)之间进行多次线性回归,但实际上我每天会有5或6个数据点。比我想创建回归系数的新列(截距和斜率)。

数据是这样的

Date        a      b        c
1.1.2004    4,8  12,9   5633,0
2.1.2004    1,8  11,5   6166,0
3.1.2004    3,9  15,2   5830,0
4.1.2004    6,8  14,3   2744,0
5.1.2004    5,9  14,2   3422,0

我尝试了apply

apply(data,1, function(x,y) lm(a~c, data=data))

但我每天都得到相同的系数,我仍然不知道如何用ceofficients创建两列。

1 个答案:

答案 0 :(得分:2)

我猜你的真实数据集每天只包含一个以上的数据点,否则(正如@BenBolker在评论中已经说过的那样)对它进行线性回归是没有意义的。无论如何,你可以在data.table包中做类似的事情。尝试

library(data.table)
setDT(df)[, list(Interecept = lm(a ~ c)$coefficients[1],
                  coeff = lm(a ~ c)$coefficients[2]), by = Date]