lmer “boundary (singular) fit: see ?is Singular”とエラーがでる理由

混合効果モデルを使って解析していたら以下のようなエラーが出ました。

” boundary (singular) fit: see ?isSingular”

これがどういったものなのかを調べてみると、混合効果モデルは適合しているが、変量効果が小さすぎる場合(モデルが過剰に適合しすぎている場合)に出るようです¹。

> (model1 <- lmer(BMI ~ wc + season + (season | ID), data))
boundary (singular) fit: see ?isSingular #これは何???
Linear mixed model fit by REML ['lmerMod']
Formula: BMI ~ wc + season + (season | ID)
   Data: data
REML criterion at convergence: 824.2405
Random effects:
 Groups   Name        Std.Dev. Corr
 ID       (Intercept) 9.65973      
          season      0.09127  1.00
 Residual             0.85796      
Number of obs: 200, groups:  ID, 50
Fixed Effects:
(Intercept)           wc       season  
   28.62170      0.01136      0.17256  
optimizer (nloptwrap) convergence code: 0 (OK) ; 0 optimizer warnings; 1 lme4 warnings 

季節ごとの変動を、箱ひげ図で確認してみました。

data$season = factor(data$season) #seasonは因子型に変更
ggplot(data,aes(x=ID,y=BMI,col=season)) + geom_jitter() + geom_boxplot(alpha=0.2) + facet_wrap(~season) #箱ひげ図の作成

確かに、どの季節もBMIは同じような分布をしています。

混合効果モデルでは、変量効果を加えることによって測定時期(今回の場合、季節)による変動を考慮するので、そもそも測定時期による変動がないなら変量効果をわざわざいれなくてもいいよ、ということなのかな。

まだよくわからないので、エラーコメント「 see ?isSingular” ( ?isSingular を見よ) 」に従ってヘルプ検索してみました。

?isSingular

isSingular 関数を使うと、その混合モデルが「特異(singular)」であるかどうかが分かるようです。

> isSingular(model1, tol = 1e-4)
[1] TRUE

切片だけが変動するモデルに変えてみたら、エラーは出なくなりました。

> (model3 <- lmer(BMI ~ wc + season + (1|season)+(1|ID), data))
Linear mixed model fit by REML ['lmerMod']
Formula: BMI ~ wc + season + (1 | season) + (1 | ID)
   Data: data
REML criterion at convergence: 828.5328
Random effects:
 Groups   Name        Std.Dev.
 ID       (Intercept) 9.84906 
 season   (Intercept) 0.04376 
 Residual             0.87248 
Number of obs: 200, groups:  ID, 50; season, 4
Fixed Effects:
(Intercept)           wc      season2      season3      season4  
   28.21699      0.01692      0.21898      0.38508      0.52172  

もうすこし調べてみようと思います。

メモ

分散分析の特異点:データの傾向が変化するポイント、特異点=分散がほぼゼロ?

参考

1 https://stackoverflow.com/questions/60028673/lme4-error-boundary-singular-fit-see-issingular

2件のコメント

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です