লজিস্টিক রিগ্রেশন সংখ্যাসূচক দ্বিগুণ পর্যন্ত, সারণীযুক্ত শতাংশের সমান ফিট করে। সুতরাং, যদি আপনার স্বতন্ত্র ভেরিয়েবলগুলি ফ্যাক্টর অবজেক্টস factor1
ইত্যাদি হয় এবং নির্ভরশীল ফলাফল (0 এবং 1) হয় x
তবে আপনি যেমন একটি এক্সপ্রেশন দিয়ে প্রভাবগুলি পেতে পারেন
aggregate(x, list(factor1, <etc>), FUN=mean)
এর সাথে তুলনা করুন
glm(x ~ factor1 * <etc>, family=binomial(link="logit"))
উদাহরণ হিসাবে, আসুন কিছু এলোমেলো ডেটা উত্পন্ন করি:
set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))
সংক্ষিপ্তসার সঙ্গে প্রাপ্ত হয়
aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results
এর আউটপুট অন্তর্ভুক্ত
Group.1 Group.2 Group.3 x
1 0 0 0 0.5128205
2 1 0 0 0.4210526
3 0 1 0 0.5454545
4 1 1 0 0.6071429
5 0 2 0 0.4736842
6 1 2 0 0.5000000
...
24 1 2 3 0.5227273
ভবিষ্যতের রেফারেন্সের জন্য, আউটপুটটির সারি 6 এর স্তরে (1,2,0) গুণমানগুলির জন্য অনুমান 0.5 হয় 0.5
লজিস্টিক রিগ্রেশনটি তার সহগকে এইভাবে ছেড়ে দেয়:
model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients
এগুলি ব্যবহার করতে, আমাদের লজিস্টিক ফাংশনটি প্রয়োজন:
logistic <- function(x) 1 / (1 + exp(-x))
উদাহরণস্বরূপ, স্তরের (1,2,0) গুণনের গুণমানগুলির জন্য অনুমান সংগ্রহ করতে
logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])
(লক্ষ্য করুন যে সমস্ত ইন্টারঅ্যাকশনগুলি কীভাবে মডেলটিতে অন্তর্ভুক্ত করা উচিত এবং সমস্ত সম্পর্কিত সহগকে সঠিক অনুমানের জন্য প্রয়োগ করতে হবে)) আউটপুটটি হ'ল
(Intercept)
0.5
ফলাফল সঙ্গে সম্মত aggregate
। (আউটপুটে "(ইন্টারসেপ্ট)" শিরোনাম হ'ল ইনপুটটির একটি স্বীকৃতি এবং এই গণনার জন্য কার্যকরভাবে অর্থহীন))
আর একটি ফর্ম একই তথ্য প্রকাশিত হয়table
। উদাহরণস্বরূপ, এর (দীর্ঘ) আউটপুট
table(x, factor1, factor2, factor3)
এই প্যানেল অন্তর্ভুক্ত:
, , factor2 = 2, factor3 = 0
factor1
x 0 1
0 20 21
1 18 21
জন্য কলাম factor1
মাত্রা (1,2,0) এবং শো = 1 তিনটি পূরক সাথে সঙ্গতিপূর্ণ যে এর মান সমান , আমরা কি এর বাইরে পড়তে সঙ্গে সম্মত এবং ।121 / ( 21 + 21 ) = 0.5x
1aggregate
glm
পরিশেষে, ডেটাসেটে সর্বাধিক অনুপাত প্রদানকারী উপাদানের সংমিশ্রণটি আউটপুট থেকে সহজেই পাওয়া যায় aggregate
:
> aggregate.results[which.max(aggregate.results$x),]
Group.1 Group.2 Group.3 x
4 1 1 0 0.6071429