শ্রেণিবদ্ধ ভেরিয়েবলের সাথে লজিস্টিক রিগ্রেশনের জন্য ডেটা সিমুলেটিং


9

আমি লজিস্টিক রিগ্রেশনটির জন্য কিছু পরীক্ষার ডেটা তৈরি করার চেষ্টা করছিলাম এবং আমি এই পোস্টটি খুঁজে পেলাম যে কীভাবে লজিস্টিক রিগ্রেশন জন্য কৃত্রিম ডেটা সিমুলেট করা যায় ?

এটি একটি দুর্দান্ত উত্তর তবে এটি কেবল ক্রমাগত পরিবর্তনশীল তৈরি করে। লিঙ্কের মতো একই উদাহরণের জন্য y এর সাথে 5 স্তরের (ABCDE) যুক্ত একটি শ্রেণীবদ্ধ ভেরিয়েবল x3 সম্পর্কে কী বলা যায়?


নমুনা (x = সি (1, 2, 3), আকার = 1, প্রোব = রেপ (1/3, 3)) সমান সম্ভাবনা সহ "1", "2", বা "3" এর মধ্যে একটি উত্পন্ন করে।
ocram

আপনার মন্তব্যের জন্য ধন্যবাদ, তবে আমি এখানে যে পোস্টগুলি উল্লেখ করেছি তার সাথে সম্ভাব্যতা কীভাবে যুক্ত করব? আমি সেই পোস্ট 'কোড'> সেট.সিড (6 666)> x1 = rnorm (1000) # কিছু ধারাবাহিক চলক> x2 = rnorm (1000)> z = 1 + 2 * x1 + 3 * x2 # লিনিয়ার সংমিশ্রণ থেকে কিছু কোড অনুলিপি করছি একটি পক্ষপাত সহ> pr = 1 / (1 + এক্সপ্রেস (-z)) # একটি ইন-লগইট ফাংশনটি পেরিয়ে যান> y = rbinom (1000,1, পিআর) # বার্নৌলির প্রতিক্রিয়ার ভেরিয়েবল 'কোড'
ব্যবহারকারী1301295

উত্তর:


13

মডেলটি

যাক যদি একটি বিভাগ রয়েছে "বি", এবং অন্যথায়। , , এবং সংজ্ঞা । যদি , তবে আমাদের "A" বিভাগ (যেমন, "A" হল রেফারেন্স স্তর)। আপনার মডেলটি তখন লেখা যেতে পারেএক্সবি=1এক্সবি=0এক্সসিএক্সডিএক্সএক্সবি=এক্সসি=এক্সডি=এক্স=0

logit(π)=β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))

(ঘ)

এখন আমরা বাইনারি প্রতিক্রিয়া পরিবর্তনশীল উত্পন্ন করতে পারি। তম প্রতিক্রিয়া একটি দ্বিপদ দৈব চলক থেকে আসে সঙ্গে এবং :আমিবিন(এন,পি)এন=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 
> #---------------------

1
@ ক্রম - প্যারামিটারগুলির ভাল পছন্দ এবং উপাদানগুলির সম্ভাব্যতার পছন্দ (অংশ ক) এর জন্য কিছু অন্তর্দৃষ্টি দিতে পারে? এগুলির পরিবর্তনগুলি কীভাবে অনুশীলনকে প্রভাবিত করবে?
d_a_c321

@ ড্যাচেন্ডলার: প্যারামিটার এবং সম্ভাবনাগুলি স্বেচ্ছাসেবীভাবে বেছে নেওয়া হয়েছিল, উদাহরণের জন্য।
ocram

2
@ ক্রম - বোঝা যাইহোক, আমি কী আরও ভাল গুণাগুণ হবে সে সম্পর্কে অন্তর্দৃষ্টি খুঁজছি যাতে আমি আরও ব্যাপক সিমুলেশন চালাতে পারি run উদাহরণস্বরূপ, আমি যদি লাসো রিগ্রেশনগুলি অনুকরণ করতে চাইতাম তবে আমি অর্থহীন ভেরিয়েবলগুলি (ডাব্লু / শূন্য সহগ) যুক্ত করতে আগ্রহী হতে পারি এবং অর্থবহ ভেরিয়েবলগুলির # টি কীভাবে এবং অর্থবোধক ভেরিয়েবলের অ-শূন্য সহগের মাত্রা সিমুলেশনকে কীভাবে প্রভাবিত করে তা দেখে।
d_a_c321
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.