2016-04-29 12 views
-2

私は.csvファイルを持っており、Rの入力はライブラリdata.tableからfread()関数を使用しました。
R階段回帰モデル列名(データテーブル)

8928 obs71 variableでRに入力したファイル。 DTと呼ばここ

は71列と8928行のデータ内容である:

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 

その後、私はでTrainDTPracticeDTと呼ばれる2つのdata.tableを作成しました:私はループのために書いた

TrainDT<-DT[1:round(0.7*nrow(DT),0)] 
PracticeDT<-DT[round(0.7*nrow(DT),0):nrow(DT)] 

ステップワイズ回帰モデルstep()predict()に適合するようにします。

フィットモデルフォローステップとして:

ステップ1:

Iは、2673 obsとdata.table TrainModelTrainDTをシフト72 variablescbind()新しい列が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:ここでは

は私の問題である:

私は次のように回帰モデルとstep(lm,direction='both')スクリプトに合わせてlmを使用します。

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)

変数、フォローPICとして他と置く _y


x<-paste(names(DT[1,1,with=FALSE]),'_y',sep ='') 
ModelTest_8<-lm(`x`~.,data=TrainModel) 

エラー情報付き:

enter image description here

enter image description here

そして、私はこの方法を試してみてください

異なる_yのステップワイズ回帰を反復するにはどうすればよいですか?

ありがとうございます。再生可能なデータが存在しない場合には

答えて

0

は、ここでは、虹彩データを使用してソリューションです:

dat <- iris[, !names(iris) %in% "Species"]  
responses<- grep("Length", names(iris), value=T) 
predictor <- grep("Width", names(iris), value=T) 
models <- lapply(responses, function(x) as.formula(paste(x, paste(predictor,collapse="+"), sep="~"))) 

models 
[[1]] 
Sepal.Length ~ Sepal.Width + Petal.Width 
<environment: 0x0000000015c28de0> 

[[2]] 
Petal.Length ~ Sepal.Width + Petal.Width 
<environment: 0x0000000015c2c9e0> 


fits <- lapply(models, lm, data=dat) 
steps <- lapply(fits, step, sacle=0, direction="both") 
関連する問題