Ecohadi.com(اقتصادسنجی)
3.75K subscribers
63 photos
6 videos
45 files
237 links
مرجع حل مسائل واقعی اقتصاد با داده

@ecohadi
Download Telegram
🔰نحوه انجام رگرسیون لجستیک چند جمله ای (Multinomial logistic regression)


در این پست با مثال هایی از مفهوم رگرسیون با متغیر وابسته categorical شروع می کنیم
مثال یک: تحلیلگران بازار می خواهند تعیین کنند که کدام متغیرها بر تصمیم خرید پاپ کورن بزرگ، متوسط یا کوچک در سینما تأثیر می گذارند.
مثال دو: انتخاب های شغلی افراد ممکن است تحت تأثیر مشاغل والدین و سطح تحصیلات آنها باشد. می‌توان رابطه انتخاب شغل با سطح تحصیلات و شغل پدر را مطالعه کرد. انتخاب های شغلی متغیر نتیجه خواهد بود که از دسته های مشاغل تشکیل شده است.
مثال سه: دانش آموزانی که وارد دبیرستان می شوند، برنامه را از بین برنامه عمومی، برنامه حرفه ای و برنامه تحصیلی انتخاب می کنند. انتخاب آنها ممکن است با استفاده از نمره نوشتاری و وضعیت اقتصادی اجتماعی آنها مدل شود.

🔆حالا که با مفهوم این نوع مدل ها آشنا شدیم، میخواهیم نحوه پیاده سازی آن در نرم افزار RStudio را با هم یاد بگیریم.

ابتدا کتابخانه های مورد نیاز را به شکل زیر فراخوانی می کنیم.
library(foreign)
library(nnet)
library(ggplot2)
library(reshape2)

نکته: اگر این کتابخانه ها از قبل در RStudio نصب ندارید، از طریق ابتدا آنها را نصب کنید.
install.pakages("foreign")
install.pakages("nnet")
install.pakages("ggplot2")
install.pakages("reshape2")

نکته: برای نصب کتابخانه ها در RStudio حتما باید سیستم شما به اینترنت متصل باشد.

💻شرح داده ها:
برای مثال تجزیه و تحلیل داده ها، مثال سوم را با استفاده از مجموعه داده hsbdemo ادامه می دهیم.
بیایید ابتدا داده ها را فراخوانی کنیم.

ml <- read.dta("https://stats.idre.ucla.edu/stat/data/hsbdemo.dta")


مجموعه داده شامل متغیرهایی برای 200 دانش آموز است. متغیر نتیجه prog، نوع برنامه است. متغیرهای پیش بینی کننده وضعیت اقتصادی اجتماعی، ses یک متغیر طبقه بندی سه سطحی و نمره نوشتن، نوشتن، یک متغیر پیوسته هستند. بیایید با گرفتن چند آمار توصیفی از متغیرهای مورد علاقه شروع کنیم.

with(ml, table(ses, prog))

with(ml, do.call(rbind, tapply(write, prog, function(x) c(M = mean(x), SD = sd(x)))))


دو خط کد بالا را در RStudio اجرا کنید و نتیجه را ببینید.
?!
***************************
در زیر از تابع multinom از بسته nnet برای تخمین مدل رگرسیون لجستیک چند جمله ای استفاده می کنیم. توابع دیگری در سایر بسته های R وجود دارد که قادر به رگرسیون چند جمله ای هستند. ما تابع multinom را انتخاب کردیم زیرا نیازی به تغییر شکل داده ها (همانطور که بسته mlogit انجام می دهد) و بازتاب کد نمونه موجود در مدل های رگرسیون لجستیک Hilbe نیست.

ابتدا باید سطح نتیجه خود را که می‌خواهیم به‌عنوان خط مبنا استفاده کنیم انتخاب کنیم و آن را در تابع سطح مشخص کنیم. سپس، مدل خود را با استفاده از multinom اجرا می کنیم. بسته چندجمله‌ای شامل محاسبه p-value برای ضرایب رگرسیون نمی‌شود، بنابراین ما مقادیر p را با استفاده از آزمون‌های Wald محاسبه می‌کنیم (در اینجا آزمون z).

ml$prog2 <- relevel(ml$prog, ref = "academic")
test <- multinom(prog2 ~ ses + write, data = ml)


پس از اجرای کدهای بالا نتیجه را ببینید.
و سپس با دستور زیر نتایج مدل را مشاهده کنید
summary(test)


همچنین می توانیم نتایج آزمون Z را هم ببینیم
z <- summary(test)$coefficients/summary(test)$standard.errors

z


در مدل فوق ما academic را به عنوان سطح در نظر گرفتیم و حالت های general و vocation را نسبت به حالت academic بررسی کرده ایم.

تمرین: کدهای نوشته شده در این پست را در نرم افزار RStudio اجرا کنید و هرجا که به مشکلی خوردید، دوباره امتحان کنید و در صورت ابهام با من در تماس باشید.
@ecohadi

دوستانی که تفسیر مدل را در نمونه های با داده های واقعی لازم دارند با من در تماس باشید.

#econometrics #economics #اقتصادسنجی #R_programing #Rstudio #Multinomial_logistic_regression
❤️❤️
https://t.me/ecohadico
❤7👍4👏1