0
いくつかの代謝スケーリングモデルの指数関数的な適合をパラメータ化しています。私は問題なく、ログに記録された従属変数と独立変数を使用して、すでにlmerでこれを行っています。しかし、私は今、従属変数に指数関数的に関連していない他のパラメータを組み込むことを望みます。したがって、私はnlme(lme4 :: nlmerは固定効果を扱うようには見えません)に変わりましたが、私は多くの経験がありません。初心者の間違いのための事前の謝罪。nlmeの要因:バックソルブエラーの特異点
以下のコードでは、次のエラーが発生しています。私は「サイト」を必要としないシンプルな機能に適合した場合、モデルが正常に動作しているよう
Error in nlme.formula(dep ~ scaling_fun(alpha, beta, ind, site), data = scale_df, :
Singularity in backsolve at level 0, block 1
:私はそれを「サイト」要因がmisspecifiedさとは何かを持っていることを推測しています。
ご意見をいただければ幸いです!
おかげで、 アリー
# dput for data
# copy from http://pastebin.com/WNHhi2kZ (too large to include here)
> head(scale_df)
dep ind spp site
2 0.28069471 -0.0322841 157 A
3 -0.69719050 -1.2568901 183 A
4 0.29252012 0.1592420 246 A
5 0.72030740 -0.3282789 154 A
6 -0.08601891 0.3623756 110 A
7 0.30793594 0.2230840 154 A
scaling_fun <- function(alpha, beta, ind, site) {
return(beta + ind^alpha + site*(ind^alpha))
}
# results in singularity in backsolve error
nlme(dep ~ trait_scaling_fun(alpha, beta, ind, site),
data = scale_df,
fixed = list(alpha + beta + site ~ 1), random = alpha ~ 1|spp,
start = list(fixed = c(0.7, 0, 1)))
##############################
# simpler function converges #
##############################
scaling_fun <- function(alpha, beta, ind) {
return(beta + ind^alpha)
}
nlme(dep ~ scaling_fun(alpha, beta, ind),
data = scale_df,
fixed = list(alpha + beta ~ 1), random = alpha ~ 1|spp,
start = list(fixed = c(0.7, 0)))
ありがとうRoland - これは理にかなっています。 D =(β_1+β_site+α_spp)、 ここで、β_1は大域平均β項、β_siteはサイト毎の偏差であるβ_sppはランダム項(αについても同じ)である。そのために、私は逸脱(ゼロからの和)コントラスト[例えば、コントラスト(サイト)= contr.sum(レベル(サイト))]。 scaling_funを使って、nlmeを以下のように実行します: fixed = list(alpha + beta〜site)、random = alpha + beta〜1 | spp。 それから、alpha(Intercept)をα_1、beta(Intercept)をβ_1と解釈します。同意しますか? –
btw、私は実際にサイトごとの偏差の値に興味があるので、固定効果としてコード化しました。 –
固定係数だけでなく、ランダムな効果も抽出できることはご存じですか? – Roland