ロジスティック回帰BIC:正しいNは何ですか?


7

TL; DR:ロジスティック回帰にBICのために正しい、凝集二項またはベルヌーイ?NN

最下部の更新

ロジスティック回帰を適用するデータセットがあるとします。例として、参加者がそれぞれm = 100のj=5グループがm=100、合計n=500であると想定します。結果は0または1です。たとえば、次のデータセット(Rコード):

library(dplyr)
library(tidyr)


set.seed(45)
d <- tibble(y = rbinom(500, 1, .5),
            x = factor(rep(LETTERS[1:5], each = 100))) 

これを表すには2つの方法があります。上記のとおり、すべての観測をベルヌーイ確率変数として扱うか、グループ内の観測を集計して各観測を二項として扱います。データセットの行数は、最初のインスタンスでは500、2番目のインスタンスでは5になります。

集約されたデータセットを構築できます:

d %>% 
  group_by(x, y) %>% 
  summarise(n = n()) %>%
  spread(y, n) %>%
  rename(f = `0`, s = `1`) %>%
  mutate(n = s + f) -> d_agg

次に、Rで両方のデータセットを使用してロジスティック回帰を近似できます。

g_bern  <- glm(y ~ x,          data=d,     family=binomial)
g_binom <- glm(cbind(s,f) ~ x, data=d_agg, family=binomial)

更新2:切片のみのモデルに適合します。

g_bern0  <- glm(y ~ 1,          data=d,     family=binomial)
g_binom0 <- glm(cbind(s,f) ~ 1, data=d_agg, family=binomial)

AICを計算します。

> AIC(g_bern)  
# [1] 694.6011
> AIC(g_binom)  
# [1] 35.22172

もちろん定数によって異なります

2*sum(lchoose(d_agg$n, d_agg$s))  # [1] 659.3794

予想どおり(ロジスティック回帰:ベルヌーイ対二項応答変数を参照)。

ただし、BICは、定数と「観測数」に依存する係数が異なり、観測数はそれぞれ異なります。

> BIC(g_bern)    
# [1] 715.6742
> BIC(g_binom)  
# [1] 33.26891
> nobs(g_bern)   
# [1] 500
> nobs(g_binom)  
# [1] 5

確認のために、両方のBICを再計算できます。

> -2*logLik(g_bern) + attr(logLik(g_bern),"df")*log(nobs(g_bern))
# 'log Lik.' 715.6742 (df=5)
> -2*logLik(g_binom) + attr(logLik(g_binom),"df")*log(nobs(g_binom))
# 'log Lik.' 33.26891 (df=5)

実際、これら2つの数値が異なる唯一の場所はです。N

更新2:因子を評価しようとすると、x観測数にのみ起因する不一致が見られます。

> BIC(g_bern0) - BIC(g_bern)
# [1] -17.66498
> BIC(g_binom0) - BIC(g_binom)
# [1] 0.7556999

更新2:予想どおり、AICは一貫しています。

> AIC(g_bern0) - AIC(g_bern)
# [1] -0.8065485
> AIC(g_binom0) - AIC(g_binom)
# [1] -0.8065485

Rが曖昧さを防ぐためにどちらを使用するかを「知っている」と思うので、これは私を驚かせます。どちらの場合も同じ情報です。

どちらが「正しい」ですか?それともBICは本当にこれは恣意的ですか?

更新:私はベルヌーイを二項モデルと比較しようとはしていません。これは単なるおもちゃの例です。のペナルティが異なるため、どの設定を使用するかが重要な比較セットがあります。2セットのモデル比較があり、ペナルティに基づいて優勝したモデルが変更されていますが、これらは同じモデルセットであるように見えますNN

更新2および3:インターセプトのみのモデルに比較を追加し、ランダムシードを変更してBICの符号の差を取得しました。

回答:


6

BIC(およびAIC)は、モデルを比較するための相対的な尺度です。ただし、集約された応答と非集約の応答を使用する場合に同じモデルであるものを比較しても意味がありません。さもなければ異なる(たとえば、異なるリグレッサ)モデルを比較しても意味がありませんが、一方のモデルは集約された応答を使用し、もう一方のモデルは非集約バージョンの応答を使用します。比較される2つのモデルが両方とも同じ形式で応答変数を表す限り、すべて問題ありません。2つの形式は最終的には同等であることに注意してください。これらは同じ情報を含み、ほとんどが外見が異なるだけです。Rの二項glmでの応答の入力形式を参照してください。


明確にするために:私はg_bernをg_binomと比較しようとはしていません。これはおもちゃの例です。このペナルティがどのモデルに当てはまるかが重要なアプリケーションがあります。したがって、それらは同等ではないという意味ですべてがうまくいくわけではありません。そこが肝心だ。(私の更新を参照)
サラダドレッシング

1
次に、あなたが直面している実際の状況を説明する必要があります。異なるおもちゃの例ではありません。多くの場合、XYの質問は、質問者が本当に知っておくべきことを扱っていない回答につながります。
ガン-モニカの

観測数が異なるため、インターセプトのみのモデルとの比較がアプローチ間で一致しないことを示す更新を追加しました。私の質問は、一見同等に見える2つのアプローチのどちらが「正しい」かです。
サラダドレッシング

1
@Saladdressing、私はあなたの更新をフォローしていません。g_bern0たとえば、どこに定義されていますか?インターセプトのみのモデルであると考えられていた場合、問題は発生しません。BICの実際の数は重要ではありません。それは単なる相対的な尺度です。両方の場合(つまり、、g_bern0g_binom0)では、差は負であり、同じ設定を示します(切片のみのモデルの場合)。矛盾はありません。
ガン-モニカを復活

2つの比較の間のBICの違いは1桁で、BICなどの対数値では非常に大きなものでした。そして、これらは同じモデルであることになっています。しかしとにかく、私は種を増やしました。現在、2つのBIC比較の間に符号の不一致があります。1つのBICが-18で、もう1つが1であることを考えると、「2つの形式は最終的に同じです。これらは同じ情報を含み、ほとんどが外見が異なるだけです」と言えるかもしれません。これは驚異的な違いです。
サラダドレッシング

3

興味深い質問です!適用された設定からこれに来ると、BICとAICの両方が相対的なモデルフィットの尺度であることを覚えておく必要があると思います。

言い換えれば、これらの測定値は、単一のモデルについてそれらを調べるときにあまりわかりませんが、競合するモデルのセットから適切なモデルを選択するのに役立ちます。特に:

  1. 結果変数の予測について、競合するモデルの中から「最高」を見つけることが目標である場合は、AIC値が最も低いモデルを選択します。
  2. モデルに含まれる予測変数が結果変数に及ぼす影響を理解および説明するために、競合するモデルの中から「最良の」ものを見つけることが目標である場合は、BIC値が最も低いモデルを選択します。

競合するモデルのセットを定義する際には、モデルが同じ概念フレームワークに従っていることを確認する必要があります。したがって、いくつかの二項ロジスティック回帰モデルまたはいくつかのバイナリロジスティックモデルのいずれかを比較しますが、両方を混合することはできません。(likeとlikeを比較することが重要です。そうでないと、モデルがそれ自体のメリットに基づいて競争に勝ったのか、単にモデルの仕様/フィッティング手順を変更しただけなのかわかりません。)

この観点から、重要なのは、同じタイプのモデル(たとえば、2項ロジスティック回帰モデル)全体でAICとBICを計算するときにRが一貫していることだけです。

明確にするために:g_bernは二項ロジスティック回帰モデルですが、g_binomは二項ロジスティック回帰モデルです。どちらも1回の試行で成功の確率をモデル化しますが、競合モデルのセットを定義するときに、これらのモデルのバリエーションを一緒に混合することはありません(上記で説明され、@ gungによってカバーされる理由により)。


私のアップデートをご覧ください。明確にするために:私はg_bernをg_binomと比較しようとはしていません。これはおもちゃの例です。
サラダドレッシング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.