如何在R中循环中进行统计并保存结果

时间:2014-01-30 22:24:51

标签: r loops dataframe data-mining

在建模中,对依赖于独立的线性,二次,三次和四(?)形式的单变量回归是有帮助的,以查看哪些捕获统计数据的基本形状。我是一个相当新的 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...

结果是一个由i编制索引的数据框,其中原始x变量的数据中包含列名,并且四个回归中的每一个都有结果(所有这些都以拦截术语运行)。

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

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

这甚至不会处理在几个集群中聚集的变化或仅与一个值相关的变形等等。

1 个答案:

答案 0 :(得分: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]]等。