繁体   English   中英

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

[英]How to do statistics and save results in a loop in R

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

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

通常,我们通过查看图来执行此操作,但是在这里有800个变量是不可行的。

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

而且,这甚至都不会处理聚集在几个簇中或仅与一个值相关的扭曲变量,等等。

我想说的最好的方法是使用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]]等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM