[英]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.