Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用或循环的多元线性回归?在R_R - Fatal编程技术网

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

应用或循环的多元线性回归?在R,r,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

我想每天在更多变量(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))

但是我每天都会得到相同的系数,我仍然不知道如何创建包含ceof系数的两列。

我猜您的实际数据集每天只包含一个以上的数据点,否则(正如@BenBolker在评论中所说)就没有意义对其进行线性回归。无论如何,您可以在
data.table
包中执行类似的操作。试一试

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

或者使用
nlme::lmList
或者
lme4::lmList
现在我看得更仔细了,这真的没有意义——为什么要用单个数据点运行线性模型?为什么不自己计算斜率呢?许多不同的线性回归模型可以完美地拟合数据集的一行。例如,具有该行
a
值的截距和斜率
0
的模型,或具有截距
0
和斜率的模型,该行
a/c
值。你能描述一下你想要完成什么吗?谢谢,这正是我所需要的。我的数据来自更多的年份和更多的气象站。我想在不同的时间段(月或周)对两个变量进行回归。对于不同的日子,a有来自更多气象站的数据。如何提取其他系数,例如,如果我在公式lm(a~c+b+d)中添加变量,只需在
列表中添加另一个参数,例如
,coeff2=lm(a~c+b+d)$系数[3],coeff3=lm(a~c+b+d)$系数[4]
和of corse更新前两个变量(
Intercept
coeff
)中的模型您有什么建议为什么我的coeff2是NA吗<代码>setDT(SLSP)[,列表(Interecept=lm(SL___均值~SL__max+SL_solu rad)$系数[1],coeff=lm(SL__均值~SL__max+SL_solu rad)$系数[2],coeff2=lm(SL____均值~SL__max+SL_solu rad)$系数[3]),截止日期]
可能有很多原因,例如,请参见此处