【发布时间】:2016-08-24 01:46:45
【问题描述】:
我有一个.csv 文件,并在 R 中输入使用来自 librarydata.table 的 fread() 函数。
在R中输入8928 obs和71 variable的文件。
这是 71 列 8928 行的数据内容,称为DT:
01F0017S 01F0029S 01F0061S ... 01F3676S 01F3686S 01F3736S
49.25 47.58 119.00 116.77 34.00 188.44
....
52.25 49.40 199.18 ... 118.83 33.10 186.13
然后我通过以下方式创建了两个data.table TrainDT 和PracticeDT:
TrainDT<-DT[1:round(0.7*nrow(DT),0)]
PracticeDT<-DT[round(0.7*nrow(DT),0):nrow(DT)]
我写了一个 for 循环来拟合逐步回归模型 step() 和 predict() 它。
按照以下步骤拟合模型:
第 1 步:
我将TrainDT 转移到TrainModel data.table 与2673 obs、72 variables 和cbind() 一个名为01F0017S_y 的新列
TrainModel<-cbind(setnames(TrainDT[7:nrow(TrainDT),i,with=F],paste0(names(DT[1,i,with=FALSE]),'_y')),TrainDT[1:(nrow(TrainDT)-6),1:length(TrainDT),with=F])
TrainModel的内容:
01F0017S_y 01F0017S 01F0029S 01F0061S ... 01F3676S 01F3686S 01F3736S
43.74 49.25 47.58 119.00 116.77 34.00 188.44
....
44.55 52.25 49.40 199.18 ... 118.83 33.10 186.13
第 2 步:
这是我的问题:
我使用lm 来拟合回归模型和step(lm,direction='both') 脚本如下:
Fitmodel<-lm(`01F0017S_y`~.,data=TrainModel)
stepwise<-step(Fitmodel,sacle=0,direction = 'both')
我怎样才能使这个线性模型适应不同名称的逐步回归与列_y?
例如:
Fitmodel<-lm(`01F0017S_y`~.,data=TrainModel)
Fitmodel<-lm(`01F0029S_y`~.,data=TrainModel)
Fitmodel<-lm(`01F0061S_y`~.,data=TrainModel)
我编写的循环将自动创建带有_y 的变量,但不知道如何分配给迭代。
我尝试了一些方法来分配变量_y,但总是失败,因为模型会将变量_y 与响应变量放在一起。
例如。 Fitmodel<-lm(TrainModel[[1]]~.,data=TrainModel)
_y 将与其他变量一起放入如下图:
我尝试这种方式:
x<-paste(names(DT[1,1,with=FALSE]),'_y',sep ='' )
ModelTest_8<-lm(`x`~.,data=TrainModel)
带有错误信息:
如何使用不同的_y 变量迭代逐步回归?
非常感谢。
【问题讨论】:
标签: r data.table regression