【问题标题】:How to do statistics and save results in a loop in R如何在 R 中循环进行统计和保存结果
【发布时间】:2014-02-23 11:28:15
【问题描述】:

在建模中,以线性、二次、三次和四元 (?) 形式对依赖项进行单变量回归是有帮助的,以查看哪个捕获了统计数据的基本形状。我是一个相当新的 R 程序员,需要一些帮助。

这是伪代码:

for i in 1:ncol(data)
  data[,ncol(data) + i] <- data[, i]^2     # create squared term
  data[,ncol(data) + i] <- data[, i]^3     # create cubed term
  ...and similarly for cubed and fourth power terms

# now do four regressions starting with linear and including one higher order term        each time and display for each i the form of regression that has the highest adj R2.

 lm(y ~ data[,i], ... )
 # retrieve R2 and save indexed for linear case in vector in row i
 lm(y tilda data[,i], data[,ncol(data) + i, ...]
 # retrieve R2 and save...

Result 是一个由 i 索引的数据框,其列名在原始 x 变量的数据中,以及四个回归中每一个回归的结果(都使用截距项运行)。

通常我们通过查看图表来做到这一点,但是您有 800 个变量,这是不可行的。

如果您真的想帮助编写代码以自动将所需数量的指数变量插入数据中。

而且这甚至不考虑聚集在几个集群中或仅与一个值相关等的变态变量。

【问题讨论】:

  • 从伪代码看来,您将用立方项覆盖平方项,依此类推。但是,我不确定您要做什么。

标签: r loops dataframe data-mining


【解决方案1】:

我想说最好的方法是使用 R 中的多项式函数poly()。假设您有一个独立的数值变量 x 和一个数值响应变量 y

models=list()
for (i in 1:4)
    models[[i]]=lm(y~poly(x,i),raw=TRUE)

raw=TRUE 部分确保模型使用原始多项式,而不是正交多项式。

当你想获得其中一种型号时,只需输入models[[1]]models[[2]]等即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-04
    • 2017-04-16
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多