2017-01-30 7 views
1

ビーガンパッケージにはモデル構築用のordiR2step()関数が含まれています。これはR2を使用して最も重要な変数とp値をフィットの良さとして識別するために使用できます対策。しかし、私が最近取り組んでいるデータセットでは、この関数はベストフィットモデルを提供しません。vegan :: ordiR2step()ベストフィットモデルが見つかりません

# data 
RIKZ <- read.table("http://www.uni-koblenz-landau.de/en/campus-landau/faculty7/environmental-sciences/landscape-ecology/Teaching/RIKZ_data/at_download/file", header = TRUE) 

# data preparation 
Species <- RIKZ[ ,2:5] 
ExplVar <- RIKZ[ , 9:15] 
Species_fin <- Species[ rowSums(Species) > 0, ] 
ExplVar_fin <- ExplVar[ rowSums(Species) > 0, ] 

# rda 
RIKZ_rda <- rda(Species_fin ~ . , data = ExplVar_fin, scale = TRUE) 

# stepwise model building: ordiR2step() 
require(vegan) 
step_both_R2 <- ordiR2step(rda(Species_fin ~ salinity, data = ExplVar_fin, scale = TRUE), 
         scope = formula(RIKZ_rda), 
         direction = "both", R2scope = TRUE, Pin = 0.05, 
         steps = 1000) 

それが説明された分散を増加させるが、なぜordiR2step()は、モデルへの変数暴露を追加しませんか? R2scopeが(Pi = 0.15TRUEに設定されている場合

Error in terms.formula(tmp, simplify = TRUE) : 
    invalid model formula in ExtractVars 

:それはcorretly可変露光を追加しなく次のエラーをスロー

R2scope場合はFALSEに設定され、p値の基準は、(Pin = 0.15)を増加させます露出は追加されません。

注:これは統計的な疑問として扱われる可能性があります。したがって、CVにはより適しています。しかし、私は問題がむしろ技術的で、ここではより良いと思う。

答えて

1

ordiR2stepのマニュアルを読んでください:exposureがモデルに追加されない理由を教えてください。ヘルプページには、ordiR2stepに3つの停止基準があることが示されています。第2の基準は、「スコープの調整されたR2が超過する」ことである。これはexposureで発生するため、追加されませんでした。 R2scope = FALSE(これも文書化されている)を設定すると、この第2の基準は無視されます。したがって、この関数は文書化されたように機能します。

+0

あなたの答えをありがとう!私は以前の文書の**詳細**をチェックしておくべきです。しかし、ドキュメントでは、第2の基準を無視するために、 'R2step = FALSE'ではなく、' R2scope = FALSE'ではなく、 'R2step = FALSE'を使うべきだと言います。ドキュメント 'R2scope = FALSE'の後には、adj。予測子の数が観測数より多い場合はR2です。時間の経過とともにパラメータが変化しましたか? – andrasz

+1

'R2step'はドキュメントのエラーであり、githubで修正されました(メッセージに表示される' Error in terms.formula() 'と一緒に)。 –

関連する問題