মডেলটি
যাক যদি একটি বিভাগ রয়েছে "বি", এবং অন্যথায়। , , এবং সংজ্ঞা । যদি , তবে আমাদের "A" বিভাগ (যেমন, "A" হল রেফারেন্স স্তর)। আপনার মডেলটি তখন লেখা যেতে পারেএক্সবি= 1এক্সবি= 0এক্সসিএক্সডিএক্সইএক্সবি=এক্সসি=এক্সডি=এক্সই= 0
লজিট (π) =β0+ +βবিএক্সবি+ +βসিএক্সসি+ +βডিএক্সডি+ +βইএক্সই
সঙ্গে একটি পথিমধ্যে।
β0
আর-তে ডেটা জেনারেশন
(ক)
x <- sample(x=c("A","B", "C", "D", "E"),
size=n, replace=TRUE, prob=rep(1/5, 5))
x
ভেক্টর হয়েছে n
উপাদান (প্রতিটি ব্যক্তির জন্য এক)। প্রতিটি উপাদান হয় "এ", "বি", "সি", "ডি", বা "ই"। "এ", "বি", "সি", "ডি", এবং "ই" এর প্রতিটিই সমান সম্ভাবনা রয়েছে।
(খ)
library(dummies)
dummy(x)
dummy(x)
n
সারি সহ প্রতিটি ম্যাট্রিক্স (প্রতিটি স্বতন্ত্রের জন্য একটি) এবং , , , , এবং সাথে সম্পর্কিত 5 টি কলাম । রৈখিক ভবিষ্যদ্বাণীকারী (প্রতিটি ব্যক্তির জন্য একটি) তারপরে লেখা যেতে পারেএক্সএকজনএক্সবিএক্সসিএক্সডিএক্সই
linpred <- cbind(1, dummy(x)[, -1]) %*% c(beta0, betaB, betaC, betaD, betaE)
(গ)
সাফল্যের সম্ভাবনাগুলি লজিস্টিক মডেল থেকে অনুসরণ করে:
pi <- exp(linpred) / (1 + exp(linpred))
(ঘ)
এখন আমরা বাইনারি প্রতিক্রিয়া পরিবর্তনশীল উত্পন্ন করতে পারি। তম প্রতিক্রিয়া একটি দ্বিপদ দৈব চলক থেকে আসে সঙ্গে এবং :আমিবিন (এন,পি)n = 1পি = pi[i]
y <- rbinom(n=n, size=1, prob=pi)
এটি পরীক্ষা করার জন্য কিছু দ্রুত সিমুলেশন ঠিক আছে
> #------ parameters ------
> n <- 1000
> beta0 <- 0.07
> betaB <- 0.1
> betaC <- -0.15
> betaD <- -0.03
> betaE <- 0.9
> #------------------------
>
> #------ initialisation ------
> beta0Hat <- rep(NA, 1000)
> betaBHat <- rep(NA, 1000)
> betaCHat <- rep(NA, 1000)
> betaDHat <- rep(NA, 1000)
> betaEHat <- rep(NA, 1000)
> #----------------------------
>
> #------ simulations ------
> for(i in 1:1000)
+ {
+ #data generation
+ x <- sample(x=c("A","B", "C", "D", "E"),
+ size=n, replace=TRUE, prob=rep(1/5, 5)) #(a)
+ linpred <- cbind(1, dummy(x)[, -1]) %*% c(beta0, betaB, betaC, betaD, betaE) #(b)
+ pi <- exp(linpred) / (1 + exp(linpred)) #(c)
+ y <- rbinom(n=n, size=1, prob=pi) #(d)
+ data <- data.frame(x=x, y=y)
+
+ #fit the logistic model
+ mod <- glm(y ~ x, family="binomial", data=data)
+
+ #save the estimates
+ beta0Hat[i] <- mod$coef[1]
+ betaBHat[i] <- mod$coef[2]
+ betaCHat[i] <- mod$coef[3]
+ betaDHat[i] <- mod$coef[4]
+ betaEHat[i] <- mod$coef[5]
+ }
> #-------------------------
>
> #------ results ------
> round(c(beta0=mean(beta0Hat),
+ betaB=mean(betaBHat),
+ betaC=mean(betaCHat),
+ betaD=mean(betaDHat),
+ betaE=mean(betaEHat)), 3)
beta0 betaB betaC betaD betaE
0.066 0.100 -0.152 -0.026 0.908
> #---------------------