আপনার মডেল ধরে নিয়েছে নীড়ের সাফল্যকে জুয়া হিসাবে দেখা যেতে পারে: Godশ্বর একটি "বোঝা মুদ্রা" সাফল্য এবং "ব্যর্থতা" লেবেলযুক্ত পক্ষের সাথে ফ্লিপ করেন। একটি নীড়ের জন্য ফ্লিপের ফলাফল অন্য কোনও নীড়ের জন্য ফ্লিপের ফলাফলের চেয়ে স্বাধীন।
পাখিদের তাদের জন্য কিছু আছে, যদিও: মুদ্রা অন্যদের তুলনায় কিছু তাপমাত্রায় প্রচুর সাফল্যের পক্ষে হতে পারে। সুতরাং, যখন আপনি কোনও নির্দিষ্ট তাপমাত্রায় বাসা পর্যবেক্ষণ করার সুযোগ পান, তখন সাফল্যের সংখ্যা একই মুদ্রার সফল ফ্লিপের সংখ্যার সমান হয় - এই তাপমাত্রার জন্য এটি একটি। সংশ্লিষ্ট দ্বিপদী বিতরণ সাফল্যের সম্ভাবনা বর্ণনা করে। অর্থাৎ, এটি শূন্য সাফল্যের সম্ভাব্যতা প্রতিষ্ঠা করে, যার মধ্যে একটির দুটি, দু'জনের ... এবং আরও অনেকগুলি নীড়ের সংখ্যার মাধ্যমে।
তাপমাত্রা এবং Godশ্বর কীভাবে মুদ্রাগুলি বোঝায় তার মধ্যে সম্পর্কের একটি যুক্তিসঙ্গত অনুমান সেই তাপমাত্রায় দেখা সাফল্যের অনুপাতে দেওয়া হয়। এটি সর্বাধিক সম্ভাবনার প্রাক্কলন (এমএলই)।
উদাহরণস্বরূপ, ধরুন আপনি ডিগ্রি তাপমাত্রায় বাসা পর্যবেক্ষণ করেন এবং এর মধ্যে নীড় সফল হয়। এমএলই তা হ'ল, আমরা অনুমান করি যে মুদ্রায় সাফল্য দেখানোর সম্ভাবনা রয়েছে। "10 ডিগ্রি" শিরোনামে সংশ্লিষ্ট দ্বিপদী বিতরণ চিত্রের প্রথম সারিতে (নীচে দেখুন) প্লট করা হয়েছে। এটি উল্লম্ব লাইন বিভাগগুলির উচ্চতাগুলির সাথে সম্ভাব্য প্রতিনিধিত্ব করে। লাল বিভাগটি সাফল্যের পর্যবেক্ষণের মানের সাথে মিলে যায় ।71033/7.3/73
তাপমাত্রা অবশ্যই আপনার ডেটাতে পরিবর্তিত হতে পারে। একটি চলমান উদাহরণ হিসাবে, এর যে অনুমান তাপমাত্রার দিন ডিগ্রী আপনি পরিলক্ষিত মধ্যে সফলতা বাসা। এই ডেটাসেটটি চিত্রের "ফিট" প্যানেলে ধূসর বৃত্ত দ্বারা প্লট করা হয়েছে। একটি বৃত্তের উচ্চতা তার সাফল্যের হার উপস্থাপন করে। বৃত্ত অঞ্চলগুলি নীড়গুলির সংখ্যার সাথে সমানুপাতিক (যার ফলে আরও নীড়ের সাথে ডেটার উপর জোর দেওয়া)।5,10,15,200,3,2,32,7,5,3
চিত্রের উপরের সারিটি চারটি পর্যবেক্ষণ করা তাপমাত্রার প্রত্যেকটিতে এমএলইগুলি দেখায়। "ফিট" প্যানেলে লাল বক্ররেখা তাপমাত্রার উপর নির্ভর করে মুদ্রাটি কীভাবে লোড হয় তা সন্ধান করে। নির্মাণ করে, এই ট্রেসটি প্রতিটি ডাটা পয়েন্টের মধ্য দিয়ে যায়। (মধ্যবর্তী তাপমাত্রায় এটি কী করে তা অজানা; আমি এই বিন্দুর প্রতি জোর দেওয়ার জন্য মানগুলি সংশোধন করে সংযুক্ত করেছি))
এই "স্যাচুরেটেড" মডেলটি খুব কার্যকর নয়, কারণ এটি আমাদের মধ্যবর্তী তাপমাত্রায় কীভাবে মুদ্রাগুলি লোড করবেন তা অনুমান করার কোনও ভিত্তি দেয় না। এটি করার জন্য, আমাদের ধরে নেওয়া দরকার যে কোনও ধরণের "ট্রেন্ড" বক্ররেখা মুদ্রার লোডিংকে তাপমাত্রার সাথে সম্পর্কিত করে।
চিত্রের নীচের সারিটি এ জাতীয় প্রবণতা ফিট করে। প্রবণতা এটি কী করতে পারে তা সীমাবদ্ধ: যখন উপযুক্ত ("লগ প্রতিক্রিয়া") স্থানাঙ্কে প্লট করা হয়, যেমন বামদিকে "লজিট প্রতিক্রিয়া" প্যানেলে দেখানো হয়েছে, এটি কেবল একটি সরল রেখা অনুসরণ করতে পারে। এই জাতীয় যে কোনও সরল রেখা "তাপ" প্যানেলে সংশ্লিষ্ট বাঁকানো রেখা দ্বারা প্রদর্শিত হিসাবে সমস্ত তাপমাত্রায় মুদ্রার লোড নির্ধারণ করে। এই লোডিং, পরিবর্তে, সমস্ত তাপমাত্রায় দ্বিপদী বিতরণ নির্ধারণ করে। নীচের সারিটি সেই তাপমাত্রাগুলির জন্য বিতরণগুলি প্লট করে যেখানে বাসাগুলি পর্যবেক্ষণ করা হয়েছিল। (ড্যাশযুক্ত কালো রেখাগুলি বিতরণের প্রত্যাশিত মানগুলি চিহ্নিত করে, এগুলি যথাযথভাবে সনাক্ত করতে সহায়তা করে those আপনি এই রেখাগুলিকে চিত্রের শীর্ষ সারিতে দেখতে পাচ্ছেন না কারণ তারা লাল অংশগুলির সাথে মিল রয়েছে))
এখন একটি ট্রেডঅফ তৈরি করতে হবে: লাইনটি কিছু তথ্য পয়েন্টের সাথে খুব কাছাকাছি যেতে পারে, কেবল অন্যের থেকে দূরে দেখার জন্য। এটি পূর্ববর্তী তুলনায় বেশিরভাগ পর্যবেক্ষণকৃত মানগুলিতে কম সম্ভাব্যতা নির্ধারণের জন্য সংশ্লিষ্ট দ্বিপদী বন্টনের কারণ হয়ে থাকে। আপনি এটি 10 ডিগ্রি এবং 15 ডিগ্রিতে স্পষ্ট দেখতে পাচ্ছেন: পর্যবেক্ষণকৃত মানগুলির সম্ভাবনা সর্বোচ্চ সম্ভাব্যতা নয়, এটি উপরের সারিতে নির্ধারিত মানগুলির কাছাকাছিও নয়।
লজিস্টিক রিগ্রেশন স্লাইড এবং চারপাশে সম্ভাব্য রেখাগুলি wiggles ("লজিট রেসপন্স" প্যানেল দ্বারা ব্যবহৃত সমন্বিত সিস্টেমে), তাদের উচ্চতা বিনোমিয়াল সম্ভাব্যতাগুলিতে রূপান্তর করে ("ফিট" প্যানেল), পর্যবেক্ষণগুলিতে নির্ধারিত সম্ভাবনার মূল্যায়ন করে (চারটি ডান প্যানেল) ), এবং সেই লাইনটি চয়ন করে যা সেই সম্ভাবনার সর্বোত্তম সমন্বয় দেয়।
"সেরা" কি? কেবলমাত্র সমস্ত ডেটার সম্মিলিত সম্ভাবনা যতটা সম্ভব বড়। এইভাবে কোনও একক সম্ভাবনা (লাল বিভাগগুলি) সত্যই ক্ষুদ্র হতে দেওয়া যায় না, তবে সাধারণত বেশিরভাগ সম্ভাবনা তত বেশি হয় না যতটা তারা স্যাচুরেটেড মডেলটিতে ছিল।
লজিস্টিক রিগ্রেশন অনুসন্ধানের এখানে একটি পুনরাবৃত্তি রয়েছে যেখানে লাইনটি নীচের দিকে ঘোরানো হয়েছিল:
প্রথমে লক্ষ্য করুন কী কী একই ছিল: "ফিট" স্ক্রেটারপ্লোটের ধূসর বিন্দুগুলি স্থির করা হয়েছে কারণ তারা ডেটা উপস্থাপন করে। অনুরূপভাবে, মূল্যবোধের রেঞ্জ এবং লাল বিভাজনের অনুভূমিক অবস্থানের চার বাইনমিয়াল এছাড়াও প্লট এ, ঠিক করা হয়েছে কারণ তারা তথ্য উপস্থাপন করে। তবে এই নতুন লাইনটি মুদ্রাগুলি একেবারে ভিন্ন উপায়ে লোড করে। তা করার মাধ্যমে চার বাইনমিয়াল ডিস্ট্রিবিউশন পরিবর্তন (ধূসর অংশ)। উদাহরণস্বরূপ, এটি ডিগ্রি তাপমাত্রায় 70% সাফল্যের হারের সাথে মুদ্রা সরবরাহ করে , এমন একটি বিতরণের সাথে সঙ্গতি রাখে যার সম্ভাবনা 4 থেকে 6 সাফল্যের জন্য সর্বোচ্চ। এই লাইনটি জন্য ডেটা ফিটিং করার দুর্দান্ত কাজ করে1015ডিগ্রি কিন্তু অন্যান্য ডেটা ফিটিং একটি ভয়ঙ্কর কাজ। (5 এবং 20 ডিগ্রীতে ডেটাগুলিতে নির্ধারিত দ্বিপদী সম্ভাবনাগুলি এত ক্ষুদ্র হয় আপনি এমনকি লাল অংশগুলিও দেখতে পাচ্ছেন না)) সামগ্রিকভাবে, প্রথম চিত্রটিতে দেখানো বিষয়গুলির চেয়ে এটি বেশ খারাপ ফিট।
আমি আশা করি যে আলোচনার ফলে লাইনটি বৈচিত্র্যযুক্ত হওয়ার সাথে সাথে দ্বিপদী সম্ভাবনার মানসিক চিত্র বিকাশ করতে সহায়তা করেছে, সবসময় ডেটা একই রাখে। লজিস্টিক রিগ্রেশন দ্বারা এই লাইনটি উপযুক্ত those এই লাল বারগুলি যথাসম্ভব উচ্চতর করার চেষ্টা করে। সুতরাং, লজিস্টিক রিগ্রেশন এবং দ্বিপদী বিতরণের পরিবারের মধ্যে সম্পর্ক গভীর এবং ঘনিষ্ঠ।
পরিশিষ্ট: 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)