Modeliniz bir yuvanın başarısının bir kumar olarak görülebileceğini varsayar: Tanrı yüklü bir madeni parayı "başarı" ve "başarısızlık" etiketli taraflarla çevirir. Bir yuva için kapağın sonucu, başka bir yuva için kapağın sonucundan bağımsızdır.
Kuşların kendileri için bir şeyleri var: madeni para, bazı sıcaklıklarda diğerlerine kıyasla büyük ölçüde başarılı olabilir. Böylece, belirli bir sıcaklıkta yuvaları gözlemleme şansınız olduğunda, başarıların sayısı aynı madalyonun başarılı döndürme sayısına eşittir - o sıcaklık için olanı. Karşılık gelen Binom dağılımı başarı şansını açıklar. Yani, yuva sayısı aracılığıyla sıfır başarı olasılığı, bir, iki, ... ve benzeri.
Sıcaklık ve Tanrı'nın paraları nasıl yüklediği arasındaki ilişkinin makul bir tahmini, o sıcaklıkta gözlenen başarıların oranı ile verilir. Bu, Maksimum Olabilirlik tahminidir (MLE).
Örneğin, gözlemlemek varsayalım sıcaklıkta yuva derece ve olanlar yuvalarının başarılıdır. MLE 3/ Yani, Tanrı'nın madalyonunun başarı gösterme şansının olduğunu tahmin ediyoruz . Karşılık gelen Binom dağılımı, şeklin ilk satırında (aşağıya bakınız) "10 Derece" başlığı altında çizilir. Dikey çizgi segmentlerinin yükseklikleri ile şansı temsil eder. Kırmızı segment, gözlenen başarının değerine karşılık gelir .71033/7.3/73
Sıcaklıklar verilerinizde değişmelidir. Çalışan bir örnek olarak, derece sıcaklıklarda yuvalar arasında başarı gözlemlediğinizi . Bu veri kümesi, şeklin "Sığdır" panellerindeki gri dairelerle çizilir. Bir dairenin yüksekliği başarı oranını temsil eder. Daire alanları, yuva sayısı ile orantılıdır (böylece verileri daha fazla yuva ile vurgular).5,10,15,200,3,2,32,7,5,3
Şeklin üst sırası, gözlenen dört sıcaklığın her birinde MLE'leri gösterir. "Sığdır" panelindeki kırmızı eğri, sıcaklığa bağlı olarak bozuk paranın nasıl yüklendiğini izler. Yapım gereği, bu iz her veri noktasından geçer. (Ara sıcaklıklarda ne yaptığı bilinmiyor; Bu noktayı vurgulamak için değerleri kabaca bağladım.)
Bu "doymuş" model tam olarak yararlı değildir, çünkü Tanrı'nın paraları ara sıcaklıklarda nasıl yükleyeceğini tahmin etmemize gerek yoktur. Bunu yapmak için, madeni para yüklemelerini sıcaklıkla ilişkilendiren bir çeşit "eğilim" eğrisi olduğunu varsayalım.
Şeklin alt sırası böyle bir eğilime uyuyor. Eğilim yapabileceği şeyle sınırlıdır: soldaki "Logit Response" panellerinde gösterildiği gibi uygun ("log odds") koordinatlarında çizildiğinde, yalnızca düz bir çizgi izleyebilir. Böyle bir düz çizgi, "Sığdır" panellerindeki karşılık gelen eğri çizgi ile gösterildiği gibi, madalyonun tüm sıcaklıklarda yüklenmesini belirler. Bu yükleme, sırayla, tüm sıcaklıklarda Binom dağılımlarını belirler. Alt sıra, yuvaların gözlemlendiği sıcaklıklar için bu dağılımları çizer. (Kesikli siyah çizgiler, dağılımların beklenen değerlerini işaretler ve onları tam olarak kesin bir şekilde tanımlamaya yardımcı olur. Şeklin üst satırında bu çizgileri görmezsiniz, çünkü kırmızı segmentlerle çakışırlar.)
Şimdi bir ödünleşim yapılmalı: çizgi bazı veri noktalarına çok yakın geçebilir, sadece diğerlerinden uzaklaşmak için. Bu, karşılık gelen Binom dağılımının, gözlemlenen değerlerin çoğuna öncekinden daha düşük olasılıklar atamasına neden olur. Bunu 10 derece ve 15 derecede net bir şekilde görebilirsiniz: gözlemlenen değerlerin olasılığı mümkün olan en yüksek olasılık değildir veya ne üst sıraya atanan değerlere yakındır.
Lojistik regresyon olası çizgileri ("Logit Response" panelleri tarafından kullanılan koordinat sisteminde) kaydırır ve sallar, yüksekliklerini Binom olasılıklarına ("Fit" panelleri) dönüştürür, gözlemlere atanan şansı değerlendirir (dört sağ panel) ) ve bu şansın en iyi kombinasyonunu veren çizgiyi seçer.
En iyisi nedir"? Basitçe, tüm verilerin birleşik olasılığının mümkün olduğunca büyük olması. Bu şekilde, tek bir olasılığın (kırmızı segmentlerin) gerçekten küçük olmasına izin verilmez, ancak genellikle olasılıkların çoğu doymuş modeldeki kadar yüksek olmaz.
İşte hattın aşağıya doğru döndürüldüğü lojistik regresyon aramasının bir tekrarı:
İlk olarak, neyin aynı kaldığına dikkat edin: "Sığdır" dağılım grafiğindeki gri noktalar sabittir çünkü verileri temsil ederler. Benzer şekilde, dört Binom grafiğindeki değerlerin aralıkları ve kırmızı segmentlerin yatay pozisyonları da sabittir çünkü verileri de temsil ederler. Ancak, bu yeni çizgi madeni paraları kökten farklı bir şekilde yüklüyor. Böylece dört Binom dağılımını (gri segmentler) değiştirir. Örneğin, madeni paraya derecelik bir sıcaklıkta yaklaşık% 70'lik bir başarı oranı verir, olasılıkları 4 ila 6 başarı için en yüksek olan bir dağılıma karşılık gelir. Bu satır aslında verileri1015ancak diğer verilere uymak gibi korkunç bir iştir. (Verilere atanan Binom olasılıkları o kadar küçüktür ki kırmızı segmentleri bile göremezsiniz.) Genel olarak, bu ilk şekilde gösterilenlerden çok daha kötü bir uyumdur.
Umarım bu tartışma Binom olasılıklarının, çizgi değiştikçe değişen, zihinsel bir imajını geliştirmenize yardımcı olmuştur . Lojistik regresyona uygun çizgi, bu kırmızı çubukları mümkün olduğunca yükseltmeye çalışır. Dolayısıyla, lojistik regresyon ile Binom dağılım ailesi arasındaki ilişki derin ve yakındır.
Ek: R
rakamları üretmek için kod
#
# 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)