2

加重モデルと非加重モデルの偏差を AIC 値と比較すると、いくつかの不一致が発生します。一般的な例 (「nls」から):

DNase1 <- subset(DNase, Run == 1)
fm1DNase1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal), DNase1)

これは重み付けされていない適合です。「nls」のコードでは、「nls」がベクトルを生成することがわかりますwts <- rep(1, n)

加重フィットの場合:

 fm2DNase1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal), 
                 DNase1, weights = rep(1:8, each = 2))

ここでは、2 つの反復で 8 つの濃度のそれぞれに増加する重みを割り当てます。

deviance私は得る:

deviance(fm1DNase1)
[1] 0.004789569

> deviance(fm2DNase1)
[1] 0.0164259

加重適合の逸脱度が大幅に高い(適合が悪い)ことを教えてくれます。

AIC(またはBIC)で私は得る

> AIC(fm1DNase1)
[1] -76.41642

> AIC(fm2DNase1)
[1] -372.5437

これは、2番目の適合が桁違いに優れていることを示しています(AICが低い)。なんでそうなの?

AIC教科書にある残差二乗和に基づいて定義すると

RSS <- function (object) 
{
    w <- object$weights
    r <- residuals(object)
    if (is.null(w)) 
        w <- rep(1, length(r))
    sum(w * residuals(object)^2)
}

AICrss <- function(object)
{
  n <- nobs(object)
  k <- length(coef(object))
  rss <- RSS(object)
  n * log((2 * pi)/n) + n + 2 + n * log(rss) + 2 * k
}

私は得る

> AICrss(fm1DNase1)
[1] -76.41642

stats:::AIC.logLikこれは、対数尤度に基づく上記の AIC ( ) と同じ値です。

しかし

> AICrss(fm2DNase1)
[1] -56.69772

これはより高く、2 番目のモデルのより高い逸脱にも完全に適合します。

誰でも私を啓発できますか?加重フィッティングの場合、「nls」モデルの標準 AIC 実装は適用されませんか?

乾杯、アンドレイ

4

0 に答える 0