2017-10-09 9 views
0

私はmgcv :: gamを使って負の二項モデルに当てはまり、ヌルデバランスがフィットからフィットに変わることに気付きました。 nbの代わりにnegbinファミリーファンクションを使用すると、問題は解決します。mgcv :: gamからfamily = nbのヌル偏差に変わる

次のように問題が再現されます。

library(mgcv) 
set.seed(3) 
n <- 400 
dat <- gamSim(1, n=n) 
g <- exp(dat$f/5) 

## negative binomial data... 
dat$y <- rnbinom(g, size=3, mu=g) 
## known theta fit ... 

# Now fit 3 different models 
preds <- c("x1", "x2", "x3") 

for (i in 1:length(preds)){ 
    fo <- formula(paste("y ~ x0 +", preds[i])) 
    #print(fo) 

    m1 <- gam(fo, data=dat, family=nb(theta=3)) # nb 
    m2 <- gam(fo, data=dat, family=negbin(3)) # negbin 

    print(paste(m1$null.deviance, ", ", m2$null.deviance)) 
} 

これを実行すると、次のような結果が得られます。

[1] "820.724580736807 , 820.708788014928" 
[1] "820.747020281717 , 820.708788014928" 
[1] "820.708788454065 , 820.708788014928" 

nbを用いからnull.devianceは820.71から820.75まで変化します。

この場合、ヌルの偏差はわずかに変化しますが、別の例ではかなり変化します。

私には何が欠けていますか?

おかげで、NB 『のような』 `拡張家族のため ハリー

答えて

1

、mgcvでも、そのようなカテゴリ注文など家族のために、計算しやすいヌル逸脱、の近似を使用しますが、依存していますモデルによる応答のための位置パラメータの平均。近似は、ヌルモデルの位置パラメータは、適合モデルの下の観測固有の位置パラメータの平均になります。

次のリリース(1.8-23)では、これは、ヌル・デビエーションを見つけるために単一のロケーション・パラメータでの逸脱の直接的な最小化によって置き換えられます。

Simon Wood(mgcv maintainer)

関連する問題