আর (ওডস অনুপাত) মধ্যে লজিস্টিক রিগ্রেশন


40

আমি একটি লজিস্টিক রিগ্রেশন বিশ্লেষণ করার চেষ্টা করছি R। আমি স্টাটা ব্যবহার করে এই উপাদানটি আবরণী কোর্সে অংশ নিয়েছি। এর মধ্যে কার্যকারিতাটির প্রতিলিপি তৈরি করা আমার পক্ষে খুব কঠিন R। এটি কি এই অঞ্চলে পরিণত? এখানে খুব সামান্য ডকুমেন্টেশন বা গাইডেন্স পাওয়া যায় বলে মনে হচ্ছে। বিজোড় অনুপাত আউটপুট উত্পাদনের জন্য মনে হচ্ছে ইনস্টল করা epicalcএবং / অথবা epitoolsএবং / অথবা অন্যদের প্রয়োজন, যার মধ্যে আমি কাজ করতে পারি না, পুরানো হয় বা ডকুমেন্টেশনের অভাব হয়। আমি glmলজিস্টিক রিগ্রেশন করতাম । কোন পরামর্শ স্বাগত হবে।

আমি আরও ভাল এটি একটি সত্য প্রশ্ন করতে চাই। আমি কীভাবে লজিস্টিক রিগ্রেশন চালাব এবং এর মধ্যে প্রতিকূলতা রেশন তৈরি করব R?

অবিচ্ছিন্ন বিশ্লেষণের জন্য আমি যা করেছি তা এখানে:

x = glm(Outcome ~ Age, family=binomial(link="logit"))

এবং মাল্টিভাইয়ারেটের জন্য:

y = glm(Outcome ~ Age + B + C, family=binomial(link="logit"))

আমি তখন দিকে তাকিয়ে করেছি x, y, summary(x)এবং summary(y)

কি x$coefficientsকোনো মূল্য?

উত্তর:


36

যদি আপনি আনুমানিক প্রভাবগুলি আপেক্ষিক প্রতিকূল অনুপাত হিসাবে ব্যাখ্যা করতে চান তবে ঠিক করুন exp(coef(x))(আপনাকে দেয় , জন্য বৈষম্যের অনুপাতের গুণগত পরিবর্তন যদি সাথে সম্পর্কিত কোভারিয়েট 1 বৃদ্ধি করে)। এই পরিমাণের জন্য প্রোফাইল সম্ভাবনার অন্তরগুলির জন্য, আপনি এটি করতে পারেন y = 1eβy=1β

require(MASS)
exp(cbind(coef(x), confint(x)))  

সম্পাদনা: @ কারাকাল দ্রুত ছিল ...


1
@ ফেবিয়ানদের পরামর্শের জন্য +1। এই যে সাধারণত অনুরূপ অন্তর উৎপাদ করতে একটি নিকৃষ্ট পথ logit স্কেলে ব্যবধান গনা এবং তারপর মতভেদ স্কেল রুপান্তর হল: cbind( exp(coef(x)), exp(summary(x)$coefficients[,1] - 1.96*summary(x)$coefficients[,2]), exp(summary(x)$coefficients[,1] + 1.96*summary(x)$coefficients[,2]) )। ডেল্টা পদ্ধতিটিও রয়েছে: ats.ucla.edu/stat/r/faq/deltamethod.htm
লকঅফ

42

আপনি ঠিক বলেছেন যে আর এর আউটপুটে সাধারণত কেবলমাত্র প্রয়োজনীয় তথ্য থাকে এবং আরও আলাদাভাবে গণনা করা দরকার।

N  <- 100               # generate some data
X1 <- rnorm(N, 175, 7)
X2 <- rnorm(N,  30, 8)
X3 <- abs(rnorm(N, 60, 30))
Y  <- 0.5*X1 - 0.3*X2 - 0.4*X3 + 10 + rnorm(N, 0, 12)

# dichotomize Y and do logistic regression
Yfac   <- cut(Y, breaks=c(-Inf, median(Y), Inf), labels=c("lo", "hi"))
glmFit <- glm(Yfac ~ X1 + X2 + X3, family=binomial(link="logit"))

coefficients()আপনি অনুমান রিগ্রেশন পরামিতি দেয় । ব্যাখ্যা করা আরও সহজ যদিও (ইন্টারসেপ্ট ব্যতীত)।এক্স পি ( বি )bjexp(bj)

> exp(coefficients(glmFit))
 (Intercept)           X1           X2           X3 
5.811655e-06 1.098665e+00 9.511785e-01 9.528930e-01

বিজোড় অনুপাত পেতে, আমাদের প্রথম দ্বিধাত্বিক ডিভির শ্রেণিবদ্ধকরণ ক্রস-টেবিল এবং কিছু সম্ভাবনার প্রান্তিকতা অনুসারে পূর্বাভাসীকৃত শ্রেণিবিন্যাস প্রয়োজন যা প্রথমে চয়ন করা প্রয়োজন। আপনি ClassLog()প্যাকেজে ফাংশনটিও দেখতে পারেন QuantPsyc(যেমন সম্পর্কিত প্রশ্নে chl উল্লেখ করা হয়েছে )।

# predicted probabilities or: predict(glmFit, type="response")
> Yhat    <- fitted(glmFit)
> thresh  <- 0.5  # threshold for dichotomizing according to predicted probability
> YhatFac <- cut(Yhat, breaks=c(-Inf, thresh, Inf), labels=c("lo", "hi"))
> cTab    <- table(Yfac, YhatFac)    # contingency table
> addmargins(cTab)                   # marginal sums
     YhatFac
Yfac   lo  hi Sum
  lo   41   9  50
  hi   14  36  50
  Sum  55  45 100

> sum(diag(cTab)) / sum(cTab)        # percentage correct for training data
[1] 0.77

বিজোড় অনুপাতের জন্য, আপনি হয় প্যাকেজ ব্যবহার করতে পারেন vcdবা ম্যানুয়ালি গণনা করতে পারেন ।

> library(vcd)                       # for oddsratio()
> (OR <- oddsratio(cTab, log=FALSE)) # odds ratio
[1] 11.71429

> (cTab[1, 1] / cTab[1, 2]) / (cTab[2, 1] / cTab[2, 2])
[1] 11.71429

> summary(glmFit)  # test for regression parameters ...

# test for the full model against the 0-model
> glm0 <- glm(Yfac ~ 1, family=binomial(link="logit"))
> anova(glm0, glmFit, test="Chisq")
Analysis of Deviance Table
Model 1: Yfac ~ 1
Model 2: Yfac ~ X1 + X2 + X3
  Resid. Df Resid. Dev Df Deviance P(>|Chi|)    
1        99     138.63                          
2        96     110.58  3   28.045 3.554e-06 ***

2
ধন্যবাদ - আমি আপনার উত্তরটি সাবধানতার সাথে দেখতে হবে। স্টাটাতে একজন কেবল চালাতে পারে logitএবং logisticসহজেই প্রতিকূল অনুপাত এবং আত্মবিশ্বাসের ব্যবধান পেতে পারে। আমি কিছুটা হতাশ হয়ে পড়েছি যে এটি এত জটিল এবং মানসম্মত বলে মনে হচ্ছে Rexp(cbind(coef(x), confint(x)))ওডি এবং সিআই পেতে আমি কি কেবল নীচের কল্পিতদের উত্তর থেকে ব্যবহার করতে পারি ? আপনার উত্তরটি কী সরবরাহ করছে তা আমি পরিষ্কার করছি না?
সাব্রেভল্ফি

3
@ সাব্রে ওল্ফি আমি নিশ্চিত নই বা আপনি কী উল্লেখ করছেন: মূলত, আমি ভেবেছিলাম যে আপনি শ্রেণিবদ্ধকরণ টেবিল থেকে অর্ডার করেছেন যা প্রকৃত বিভাগের সদস্যতার সাথে পূর্বাভাসের সদস্যতার সাথে তুলনা করে ( cTabআমার উত্তরের অংশ)। তবে এখন আমি আপনাকে দেখতে পাচ্ছি সম্ভবত : ফ্যাবিয়ানরা যেমন ব্যাখ্যা করেছেন, 1 1 ইউনিট বৃদ্ধি ভবিষ্যদ্বাণীপূর্ণ পরিবর্তন করে এমন ফ্যাক্টরের সমান হয় । এটি "1-ইউনিট-বৃদ্ধির পরে" "1-ইউনিট-বৃদ্ধির আগে" বৈষম্যের অনুপাত। সুতরাং হ্যাঁ, আপনি কেবল কল্পিত উত্তর ব্যবহার করতে পারেন। e x p ( b j ) x jexp(bj)exp(bj)Xj
কারাকাল

4
আসলে @ সাব্রে ওল্ফিকে আমি হতাশ করে দেখি যে লোকেরা স্টাটা / এসএসএস / এসএসএস ইত্যাদিতে একটি একক বোতামে ক্লিক করতে পারে এবং বৈষম্য অনুপাত পেতে পারে (ফিটের পরিসংখ্যান সন্নিবেশ করান, তৃতীয় এসএস টাইপ করুন, আপনি এখানে যা পছন্দ করেন) এর অর্থ কী তা সম্পর্কে কোনও ধারণা না রেখে / কীভাবে এটি গণনা করা যায় / এটি কোনও নির্দিষ্ট পরিস্থিতিতে অর্থবহ কিনা / এবং (সম্ভবত আরও গুরুত্বপূর্ণভাবে) ভাষাটির নিজস্ব কাজের জ্ঞান না থাকলে।
কাঁচার

23

ইউসিএলএর পরিসংখ্যান পৃষ্ঠায় আরতে লজিস্টিক রিগ্রেশন সম্পাদন করার জন্য দুর্দান্ত হাঁটাচলা রয়েছে It এতে বৈষম্য অনুপাত গণনা করার জন্য একটি সংক্ষিপ্ত বিভাগ অন্তর্ভুক্ত রয়েছে।


2
দুর্ভাগ্যক্রমে, এই লিঙ্কটি মারা গেছে
ড্যান চালটিয়েল

6
ভাগ্যক্রমে,
ওয়েবটি

5

EpiDisplay প্যাকেজটি খুব সহজেই এটি করে।

library(epiDisplay)
data(Wells, package="carData")
glm1 <- glm(switch~arsenic+distance+education+association, 
            family=binomial, data=Wells)
logistic.display(glm1)
Logistic regression predicting switch : yes vs no 

                       crude OR(95%CI)         adj. OR(95%CI)         P(Wald's test) P(LR-test)
arsenic (cont. var.)   1.461 (1.355,1.576)     1.595 (1.47,1.731)     < 0.001        < 0.001   

distance (cont. var.)  0.9938 (0.9919,0.9957)  0.9911 (0.989,0.9931)  < 0.001        < 0.001   

education (cont. var.) 1.04 (1.021,1.059)      1.043 (1.024,1.063)    < 0.001        < 0.001   

association: yes vs no 0.863 (0.746,0.999)     0.883 (0.759,1.027)    0.1063         0.1064    

Log-likelihood = -1953.91299
No. of observations = 3020
AIC value = 3917.82598

ল্যাটেক্সের মোড়কের মতো লজিস্টিক ডিসপ্লে যুক্ত করার কোনও উপায় আছে outregবা xtable?
স্বনামধন্য মিসনোমার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.