ロジスティック回帰はどのように二項分布を使用しますか?


19

ロジスティック回帰が二項分布を使用する方法を理解しようとしています。

私は鳥の巣の成功を研究しているとしましょう。巣が成功する確率は0.6です。二項分布を使用して、n回の試行(学習した巣の数)が与えられた場合のr成功の確率を計算できます。

しかし、モデリングの文脈で二項分布はどのように使用されますか?平均気温が巣の成功にどのように影響するかを知りたいとし、ロジスティック回帰を使用してこの質問を調べます。

説明したコンテキスト内で、ロジスティック回帰はどのように二項分布を使用しますか?

私は直感的な答え、したがって方程式のない答えを探しています!方程式は、直感的なレベルで理解が得られた場合にのみ役立つと思います。



2
これは@ user777を参照するのに適したスレッドですが、OPが特に方程式のない説明要求する場合、重複として機能しない可能性があると思います。しかし、良い質問は、二項分布の役割を方程式なしで十分に説明できるかどうかです。確かにLRには直感的な説明を与えることができますが、二項w / i LRの役割は本質的にいくらか数学的です。
グン-モニカの復職

@gungルシアーノに謝罪。「二項分布」を見ると、考えられる答えを考えたときに「方程式なし」が上書きされました。明らかにそれはOPの要求と矛盾していました。
Sycoraxが復活モニカ言う

回帰に対数オッズスケールを使用し、ロジットスケールから0-1スケールに変換するという考えを理解したと感じています。しかし、「エラーは二項分布している」という流れに沿って読み続けています。エラーを二項分布させるにはどうすればよいですか?
ルチアーノ14年

5
あなたがそれを読んだ本は何でも、捨ててください。
Scortchi -復活モニカ

回答:


7

毎日の平均気温異なる複数の巣を観察するとします。巣の成功の確率π t は温度tにどのように依存しますか?(ネストが独立している場合、温度tで成功したネストの数は、観測されたネストの数と成功確率π t )に等しいnで二項分布しますtπ(t)ttnπ(t)ます。)

ロジスティック回帰は、ロジスティック曲線のストレッチとシフトを介して成功確率を温度の関数として指定する1つのアプローチです(ロジスティック関数を使用)。ストレッチとシフトの量はデータから推定する必要があります。


15

方程式なし?うわぁ。どれどれ:

ロジスティック回帰モデルは、文字通り二項分布のpパラメーターのモデルです。連続予測子を使用すると、各ポイントに独自の分布を持たせることができます。(観測値が0〜1の場合、ベルヌーイの特殊なケースを扱います。これは一般的な状況です。)

nモデル化されていない、与えられています。したがって、結果は、pと既知のnに関連するモデルを使用して、そのモデルを介して平均(および分散)を記述する予測子に関して二項データをモデル化できます。p。モデルは最尤推定によって適合させることができますが、その特別な形式(指数関数族)のため、MLは比較的「いい」です。

ロジスティックリンクは二項族にとって標準的であるため、十分な統計は非常に単純な形式であるため、さらに優れています。これにより、大規模なサンプルを処理したり、「オンライン」アルゴリズムを開発したりできます。

もちろん、確率であるpは0から1の間にあります。これは、当然、他の変数に関してモデルを記述したときに、そのモデルがこれらの制限を超えてクラッシュしないことを意味します。十分に大きいか小さい場合、関係は境界内に収まるように曲がる必要があります。

ロジスティック回帰では、その曲線(リンク関数)はロジスティック関数です。他の機能も使用でき、多くのパッケージには複数のパッケージが実装されています(Rには、適切な3つのglm機能が組み込まれています)。


この投稿の作成において、平等のシンボルは損なわれませんでした。


2

あなたのモデルは、巣の成功をギャンブルと見なすことができると仮定しています。神は、「成功」と「失敗」というラベルの付いたコインを装填しました。1つのネストのフリップの結果は、他のネストのフリップの結果とは無関係です。

しかし、鳥には何かがあります。コインは、他の温度と比較して、ある温度での成功を非常に好むかもしれません。したがって、特定の温度で巣を観察する機会がある場合、成功の数は同じコインの成功したフリップ数に等しくなります-その温度のためのものです。対応する二項分布は、成功の可能性を説明しています。つまり、成功の数がゼロ、1、2、…などの確率がネストの数を通じて確立されます。

温度と、神がコインを積む方法との関係の合理的な推定値は、その温度で観察された成功の割合によって与えられます。これは最尤推定値(MLE)です。

71033/7。3/73

510152003232753

図の一番上の行は、観測された4つの各温度でのMLEを示しています。 「Fit」パネルの赤い曲線は、温度に応じてコインがどのように装填されるかを示しています。構成上、このトレースは各データポイントを通過します。(中間温度で何をするかは不明です。この点を強調するために、値を大まかに接続しました。)

この「飽和」モデルは、神がどのように中間温度でコインを積み込むかを推定する根拠を与えないため、あまり有用ではありません。そのためには、コインの負荷を温度に関連付ける何らかの「傾向」曲線があると想定する必要があります。

図

図の一番下の行は、このような傾向に適合しています。 トレンドの機能には制限があります。左側の「Logit Response」パネルに示されているように、適切な(「ログオッズ」)座標でプロットすると、直線のみに従うことができます。「フィット」パネルの対応する曲線で示されるように、そのような直線はすべての温度でのコインの装填を決定します。その負荷は、すべての温度で二項分布を決定します。下の行は、巣が観察された温度の分布をプロットしています。(黒い破線は、分布の期待値をマークし、それらをかなり正確に識別するのに役立ちます。これらの線は、赤いセグメントと一致するため、図の一番上の行には表示されません。)

ここで、トレードオフを行う必要があります。線は一部のデータポイントに近づいて、他のデータポイントから遠ざかるだけです。これにより、対応する二項分布により、観測値のほとんどに以前よりも低い確率が割り当てられます。これは10度と15度ではっきりと確認できます。観測値の確率は、可能な限り高い確率ではなく、上の行に割り当てられた値に近いものでもありません。

ロジスティック回帰は、(「ロジット応答」パネルで使用される座標系で)可能な線をスライドおよびウィグルし、その高さを二項確率(「フィット」パネル)に変換し、観測に割り当てられた機会を評価します(右の4つのパネル)、およびそれらのチャンスの最適な組み合わせを提供する行を選択します。

「ベスト」とは何ですか? 単純に、すべてのデータの結合確率が可能な限り大きいこと。この方法では、単一の確率(赤いセグメント)を本当に小さくすることはできませんが、通常、ほとんどの確率は飽和モデルの場合ほど高くありません。

以下は、ロジスティック回帰検索の1つの反復で、行が下向きに回転されています。

図2

1015度ですが、他のデータをフィッティングするというひどい仕事です。(5度と20度では、データに割り当てられた2項分布の確率は非常に小さいため、赤いセグメントは見えません。)全体として、これは最初の図に示したものよりもはるかに悪い適合です。


この議論が、データを同じに保ちながら、線が変化するにつれて変化する二項確率の精神的なイメージを開発するのに役立つことを願っています。ロジスティック回帰によるラインフィットは、これらの赤いバー全体を可能な限り高くしようとします。したがって、ロジスティック回帰と二項分布のファミリーとの関係は深く密接です。


付録:R図を生成するコード

#
# Create example data.
#
X <- data.frame(temperature=c(5,10,15,20),
                nests=c(2,7,5,3),
                successes=c(0,3,2,3))
#
# A function to plot a Binomial(n,p) distribution and highlight the value `k0`.
#
plot.binom <- function(n, p, k0, highlight="#f02020", ...) {
  plot(0:n, dbinom(0:n, n, p), type="h", yaxt="n",
       xlab="Trials", ylab="Probability", ...)
  abline(v = p*n, lty=3, lwd=2)
  if(!missing(k0)) lines(rep(k0,2), c(0, dbinom(k0,n,p)), lwd=2, col=highlight)
}
#
# A function to convert from probability to log odds.
#
logit <- function(p) log(p) - log(1-p)
#
# Fit a saturated model, then the intended model.
#
# Ordinarily the formula for the saturated model would be in the form
# `... ~ factor(temperature)`, but the following method makes it possible to  
# plot the predicted values in a visually effective way.
#
fit.0 <- glm(cbind(successes, nests-successes) ~ factor(round(temperature/5)), 
             data=X, family=binomial)
summary(fit.0)

fit <- glm(cbind(successes, nests-successes) ~ temperature, 
           data=X, family=binomial)
summary(fit)
#
# Plot both fits, one per row.
#
lfits <- list(fit.0, fit)
par.old <- par(mfrow=c(length(lfits), nrow(X)+2))
for (fit in lfits) {
  #
  # Construct arrays of plotting points.
  #
  X$p.hat <- predict(fit, type="response")
  Y <- data.frame(temperature = seq(min(X$temperature), max(X$temperature), 
                                    length.out=101))
  Y$p.hat <- predict(fit, type="response", newdata=Y)  # Probability
  Y$lambda.hat <- predict(fit, type="link", newdata=Y) # Log odds
  #
  # Plot the fit in terms of log odds.
  #
  with(Y, plot(temperature, lambda.hat, type="n", 
               yaxt="n", bty="n", main="Logit Response",
               ylab=expression(hat(lambda))))
  if (isTRUE(diff(range(Y$lambda.hat)) < 6)) {
    # Draw gridlines and y-axis labels
    p <- c( .10, .25, .5, .75, .9)
    q <- logit(p)
    suppressWarnings(rug(q, side=2))
    abline(h=q, col="#d0d0d0")
    mtext(signif(p, 2), at=q, side=2, cex=0.6)
  }
  with(Y, lines(temperature, lambda.hat, lwd=2, col="#f02020"))
  #
  # Plot the data and the fit in terms of probability.
  #
  with(X, plot(temperature, successes/nests, ylim=0:1,
               cex=sqrt(nests), pch=21, bg="Gray",
               main="Fit"))
  with(Y, lines(temperature, p.hat, col="#f02020", lwd=2))
  #
  # Plot the Binomial distributions associated with each row of the data.
  #
  apply(X, 1, function(x) plot.binom(x[2], x[4], x[3], bty="n", lwd=2, col="Gray",
                                     main=paste(x[1], "Degrees")))
}
par(mfrow=par.old)

rコードが開示されていますか?どうもありがとう。
マクシミリアン

1
@Maximilianコードを追加しました。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.