【问题标题】:Generate P value and slope by looping in regression通过回归循环生成 P 值和斜率
【发布时间】:2014-06-18 22:49:51
【问题描述】:

有没有办法为大约 500 个时间序列生成回归的斜率和 P 值。下面给出一个示例文件:

我有一个以下格式的 .csv 文件:

 year  var1 var2  var3 var4 var5 var6 ....var500
 1951  2    4     3    3   9     3 ........3
 1952  4    7     4    1   2     2 ........4
 1953  5    5     6    9   4     3 ........5
 1954  6    9     6    2   3     9 ........6
 1955  6    4     4    2   1     2 ........1
 1956  6    4     3    7   2     8 ........8

我想对 name1、name2、name3、name 4.... 进行线性回归,并且对于每个回归都能够打印出斜率和 p 值。 到目前为止,我一直在为每个变量手动执行此操作

  var1_mdl<-lm(var1 ~ year);summary(var1_mdl)

有没有一种方法可以进行线性回归并能够将每个 var 的斜率和 P 值写入单独的文件中。

非常感谢

【问题讨论】:

    标签: r loops regression


    【解决方案1】:

    您可以在数据框的子集df 上使用apply 函数,仅代表感兴趣的列df[,only_varX] 像这样

    apply(df[,only_varX], 2, function(col, year){ lm(col ~ year) }, df$year)
    

    您将获得df[,only_varX] 的每一列的lm 对象列表作为结果。

    使用该列表,您可以extract p-value 和斜率(使用$coefficients)并将它们写入文件。

    【讨论】:

      猜你喜欢
      • 2020-10-16
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2020-12-01
      • 2011-09-07
      • 1970-01-01
      相关资源
      最近更新 更多