私は非常に大規模なグローバル モデルのパッケージ MuMIn を足がかりとして使用して、各変数の重要度の値を取得することを最終目標として浚渫を実行してきました。dredge は 2 日間で正常に実行されましたが、後で 2 つの変数を追加する必要があり、それらを追加した後も実行が完了していません。Rがクラッシュする前に初めて7日間実行されました(私は推測しています)。次にチェックしたときにRがシャットダウンし、RStudioを再度起動したときにエラーメッセージがなく、新しいウィンドウだったからです。コードを再度開始したところ、今度は同じことを行う前に 8 日間実行されました。
コードの実行に時間がかかる理由が明確になるように、グローバル モデルとサブセットについて説明します。これは、19 の変数と 4 つの相互作用項 (カテゴリカルである「年」を除いてすべて数値) を持つゲームです。一方が他方の代替バージョンであるため、モデルに一緒に表示できない特定の変数があるため、これらをサブセット化しました。交互作用項がモデル内にある場合、項の平滑化されていないバージョンが自動的に含まれるため、項の平滑化されたバージョンは主効果になることができず、項の平滑化されていないバージョンは項の平滑化されたバージョンがすでに存在する可能性があるため、交互作用項がモデルにない場合の主効果。どちらのオプションも、モデル内の 1 つの項の二重表現になるため、それらのオプションもサブセット化しました。グローバル モデルとドレッジのコードを示すコードを次に示します。
library(MuMIn)
options(na.action = "na.fail")
real.model2 <- gam(resqpa ~ factor(year) + s(elev) + factor(year)*elev +
s(bf1) + s(bf2) + s(bf3) + s(open) + s(water) + s(bfbs1) + s(bfbs2) +
s(bfbs3) + s(bs2) + s(bs3) + s(mix) + s(cs1) + s(cs2) + factor(year)*bfbs2 +
factor(year)*bfbs3 + factor(year)*bs2 + factor(year)*bs3 + s(allbf) + s(ct1)
+ s(ct2) + s(allcs), family=binomial(link="cloglog"))
fits6 <- dredge(real.model2, subset = (!("s(allbf)" & "s(bf1)"))
& (!("s(allbf)" & "s(bf2)"))
& (!("s(allbf)" & "s(bf3)"))
& (!("s(ct1)" & "s(bf1)"))
& (!("s(ct1)" & "s(bfbs1)"))
& (!("s(ct2)" & "s(bf2)"))
& (!("s(ct2)" & "s(bfbs2)"))
& (!("s(ct2)" & "s(bs2)"))
& (!("s(allcs)" & "s(cs1)"))
& (!("s(allcs)" & "s(cs2)"))
& (!(`s(elev)` & "elev:factor(year)")) & (!elev | `elev:factor(year)`)
& (!(`s(bfbs2)` & "bfbs2:factor(year)")) & (!bfbs2 | `bfbs2:factor(year)`)
& (!(`s(bfbs3)` & "bfbs3:factor(year)")) & (!bfbs3 | `bfbs3:factor(year)`)
& (!(`s(bs2)` & "bs2:factor(year)")) & (!bs2 | `bs2:factor(year)`)
& (!(`s(bs3)` & "bs3:factor(year)")) & (!bs3 | `bs3:factor(year)`))
R が 2 回目にクラッシュした後、診断を実行しました。ただし、エラーのタイム スタンプは R がクラッシュした時刻と一致していないため、これが参考になるかどうかはわかりません。
24 Sep 2018 03:06:26 [rdesktop] ERROR system error 231 (All pipe instances
are busy); OCCURRED AT: virtual void
rstudio::core::http::NamedPipeAsyncClient::connectAndWriteRequest()
これは、より多くの計算能力が必要なことに問題がありますか?それとも、このコードを完了するためのより簡潔で正確な方法はありますか? これについて何か助けてくれてありがとう!