我有一個.csv
文件,輸入R使用fread()
函數庫data.table
。
R逐列迴歸模型按列名迭代(數據表)
在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
與響應變量。
ex。Fitmodel<-lm(TrainModel[[1]]~.,data=TrainModel)
的_y
將投入與其他變量如下圖:
而且我試着這樣說:
x<-paste(names(DT[1,1,with=FALSE]),'_y',sep ='')
ModelTest_8<-lm(`x`~.,data=TrainModel)
帶有錯誤信息:
如何用不同的_y
變量迭代逐步迴歸?
非常感謝。