আনুপাতিক প্রতিক্রিয়া অনুমান পরীক্ষা করে পোলার ফাংশন ব্যবহার করে একটি সাধারণ লজিস্টিক রিগ্রেশন ধারণ করে


9

আমি 15 ধারাবাহিক ব্যাখ্যামূলক ভেরিয়েবলের সাথে একটি সাধারণ শ্রেণিবদ্ধ জবাব ভেরিয়েবলের জন্য একটি সাধারণ লজিস্টিক রিগ্রেশন চালানোর জন্য ম্যাস প্যাকেজে 'পোলার' ফাংশনটি ব্যবহার করেছি।

আমি ইউসিএলএর নির্দেশিকায় প্রদত্ত পরামর্শ অনুসরণ করে আমার মডেলটি আনুপাতিক প্রতিকূল ধারণা অনুধাবন করে কিনা তা পরীক্ষা করতে কোডটি (নীচে দেখানো) ব্যবহার করেছি । তবে, আউটপুটটি সম্পর্কে আমি কিছুটা চিন্তিত আছি যে বিভিন্ন কাটপয়েন্টগুলিতে কেবল সহগগুলি একই রকম নয়, তবে তারা হুবহু একইভাবে রয়েছে (নীচে গ্রাফিক দেখুন)।

FGV1b <- data.frame(FG1_val_cat=factor(FGV1b[,"FG1_val_cat"]), 
                    scale(FGV1[,c("X","Y","Slope","Ele","Aspect","Prox_to_for_FG", 
                          "Prox_to_for_mL", "Prox_to_nat_border", "Prox_to_village", 
                          "Prox_to_roads", "Prox_to_rivers", "Prox_to_waterFG", 
                          "Prox_to_watermL", "Prox_to_core", "Prox_to_NR", "PCA1", 
                          "PCA2", "PCA3")]))
b     <- polr(FG1_val_cat ~ X + Y + Slope + Ele + Aspect + Prox_to_for_FG + 
                            Prox_to_for_mL + Prox_to_nat_border + Prox_to_village + 
                            Prox_to_roads + Prox_to_rivers + Prox_to_waterFG + 
                            Prox_to_watermL + Prox_to_core + Prox_to_NR, 
              data=FGV1b, Hess=TRUE)

মডেলের একটি সারাংশ দেখুন:

summary(b)
(ctableb <- coef(summary(b)))
q        <- pnorm(abs(ctableb[, "t value"]), lower.tail=FALSE) * 2
(ctableb <- cbind(ctableb, "p value"=q))

এবং এখন আমরা প্যারামিটারের অনুমানের জন্য আত্মবিশ্বাসের ব্যবধানগুলি দেখতে পারি:

(cib <- confint(b)) 
confint.default(b)

তবে এই ফলাফলগুলি ব্যাখ্যা করা এখনও বেশ শক্ত, সুতরাং আসুন গুণগুণকে প্রতিকূল অনুপাতগুলিতে রূপান্তর করুন

exp(cbind(OR=coef(b), cib))

অনুমানটি পরীক্ষা করা হচ্ছে। সুতরাং নিম্নলিখিত কোডটি মানগুলি আঁকতে হবে বলে অনুমান করবে। প্রথমে এটি আমাদের লক্ষ্য ভেরিয়েবলের প্রতিটি মানের তুলনায় বৃহত্তর বা সমান হওয়ার সম্ভাবনাগুলির লগিট রূপান্তরগুলি দেখায়

FG1_val_cat <- as.numeric(FG1_val_cat)
sf <- function(y) {
  c('VC>=1' = qlogis(mean(FG1_val_cat >= 1)),
    'VC>=2' = qlogis(mean(FG1_val_cat >= 2)),
    'VC>=3' = qlogis(mean(FG1_val_cat >= 3)),
    'VC>=4' = qlogis(mean(FG1_val_cat >= 4)),
    'VC>=5' = qlogis(mean(FG1_val_cat >= 5)),
    'VC>=6' = qlogis(mean(FG1_val_cat >= 6)),
    'VC>=7' = qlogis(mean(FG1_val_cat >= 7)),
    'VC>=8' = qlogis(mean(FG1_val_cat >= 8)))
}
(t <- with(FGV1b, summary(as.numeric(FG1_val_cat) ~ X + Y + Slope + Ele + Aspect + 
                             Prox_to_for_FG + Prox_to_for_mL + Prox_to_nat_border + 
                             Prox_to_village + Prox_to_roads + Prox_to_rivers + 
                             Prox_to_waterFG + Prox_to_watermL + Prox_to_core + 
                             Prox_to_NR, fun=sf)))

উপরের সারণীটি (লিনিয়ার) পূর্বাভাসিত মানগুলি দেখায় যে আমরা যদি সমানীন .ালু অনুমান ছাড়াই একসাথে আমাদের ভবিষ্যদ্বাণী ভেরিয়েবলের উপর আমাদের নির্ভরশীল পরিবর্তনশীলটিকে পুনরায় চাপিয়ে দিই get সুতরাং এখন, আমরা কাটপয়েন্টগুলিতে সহগের সাম্যতা পরীক্ষা করতে নির্ভরশীল ভেরিয়েবলের উপর নির্ভরশীল বিভিন্ন কাটপয়েন্টগুলি সহ বাইনারি লজিস্টিক রিগ্রেশনগুলি পরিচালনা করতে পারি

par(mfrow=c(1,1))
plot(t, which=1:8, pch=1:8, xlab='logit', main=' ', xlim=range(s[,7:8]))

পোলার অনুমান পরীক্ষা

দুঃখিত যে আমি কোনও পরিসংখ্যান বিশেষজ্ঞ নই এবং সম্ভবত আমি এখানে স্পষ্ট কিছু মিস করছি। যাইহোক, আমি কীভাবে মডেল অনুমানটি পরীক্ষা করেছি এবং একই ধরণের মডেল চালানোর অন্যান্য উপায়গুলিও বের করার চেষ্টা করেছি তাতে সমস্যা আছে কিনা তা খুঁজে বের করার চেষ্টা করে আমি দীর্ঘ সময় ব্যয় করেছি।

উদাহরণস্বরূপ, আমি অনেকগুলি সহায়তা মেইলিং তালিকায় পড়েছি যে অন্যরা ভিজিএলএম ফাংশন (ভিজিএএম প্যাকেজে) এবং lrm ফাংশন (আরএমএস প্যাকেজে) ব্যবহার করে (উদাহরণস্বরূপ এখানে দেখুন: প্যাকেজগুলির সাথে আর-এ সাধারণ লজিস্টিক রিগ্রেশনটিতে আনুপাতিক বিভেদ অনুমান ভিজিএএম এবং আরএমএস )। আমি একই মডেলগুলি চালানোর চেষ্টা করেছি তবে সতর্কতা এবং ত্রুটির বিরুদ্ধে ধারাবাহিকভাবে আসছি।

উদাহরণস্বরূপ, আমি যখন ভিজিএলএম মডেলটিকে 'সমান্তরাল = ফলস' আর্গুমেন্টের সাথে ফিট করার চেষ্টা করি (পূর্বের লিঙ্কটি যেমন আনুপাতিক বৈষম্য অনুমানের পরীক্ষার জন্য গুরুত্বপূর্ণ) তবে আমি নিম্নলিখিত ত্রুটির মুখোমুখি হই:

Lm.fit (X.vlm, y = z.vlm, ...) এ ত্রুটি: 'y' তে NA / NaN / Inf
ছাড়াও: সতর্কতা বার্তা:
ডিভিয়েশন। = y, w = w, অবশিষ্টগুলি = অবশিষ্ট

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

দ্রষ্টব্য: একটি পটভূমি হিসাবে, এখানে 1000 ডেটাপয়েন্ট রয়েছে, যা আসলে একটি অধ্যয়নের ক্ষেত্র জুড়ে অবস্থান পয়েন্ট। আমি দেখতে খুঁজছি শ্রেণীবদ্ধ প্রতিক্রিয়া ভেরিয়েবল এবং এই 15 ব্যাখ্যামূলক ভেরিয়েবলের মধ্যে কোনও সম্পর্ক আছে কিনা। এই 15 টি বর্ণনামূলক ভেরিয়েবলগুলির সমস্ত স্থানিক বৈশিষ্ট্য (উদাহরণস্বরূপ, উচ্চতা, জাই স্থানাঙ্ক, বনের নিকটবর্তী হওয়া ইত্যাদি)। জিআইএস ব্যবহার করে 1000 ডেটাপপয়েন্টগুলি এলোমেলোভাবে বরাদ্দ করা হয়েছিল, তবে আমি একটি স্তরিত নমুনা গ্রহণের পদ্ধতি গ্রহণ করেছি। আমি নিশ্চিত করেছি যে 8 টি পৃথক শ্রেণিবদ্ধ প্রতিক্রিয়া স্তরের প্রত্যেকটির মধ্যে 125 টি পয়েন্ট এলোমেলোভাবে চয়ন করা হয়েছিল। আমি আশা করি এই তথ্যটিও সহায়ক হবে।

উত্তর:


1

নির্ভরশীল ভেরিয়েবলের 8 টি অর্ডারযুক্ত স্তর রয়েছে সুতরাং গ্রাফটিতে আনুপাতিক প্রতিকূল ধারণা অনুমান করার জন্য আপনাকে প্রতিটি স্বতন্ত্র ভেরিয়েবলের জন্য 8 টি পৃথক চিহ্ন দেখতে হবে। আপনি প্রতিটি স্বতন্ত্র ভেরিয়েবলের জন্য কেবল দুটি চিহ্ন দেখেন কারণ আপনি x- অক্ষের মানগুলির জন্য খুব স্বল্প বিরতি বেছে নিয়েছেন। যদি আমার অনুমানটি সঠিক হয় তবে আপনাকে এক্স-অক্ষের মানগুলির জন্য আরও বিস্তৃত ব্যবধান ব্যবহার করতে হবে। এই কোড ব্যবহার করে দেখুন:

par(mfrow=c(1,1))
plot(t, which=1:8, pch=1:8, xlab='logit', main=' ', xlim=range(s[,3:9]))

5
এটি আমাদের মান দ্বারা উত্তর হিসাবে যথেষ্ট যথেষ্ট নয়। তুমি কি বিস্তারিত বলতে পারো? এই কোডটি কী করে / পিও অনুমানটি যাচাই করতে এটি কীভাবে কাজ করে? (যেমন, বিভিন্ন সফ্টওয়্যার ব্যবহারকারী কেউ কীভাবে এই একই পদ্ধতির ব্যবহার করতে পারে?)
গাং - মনিকা পুনরায়

আমি স্রেফ আমার উত্তরটি উন্নত করেছি। এটি সন্তুষ্ট কিনা দয়া করে আমাকে বলুন
জন এম

1

সুতরাং, আমি এটিকে চারদিকে গুগল করার মাধ্যমে পেয়েছি এবং আমি মনে করি যে কোনও উত্তর এখনও সে কারণেই কার্যকর হতে পারে। আমার মনে হয় ভুল আছে

sf <- function(y) {
  c('VC>=1' = qlogis(mean(FG1_val_cat >= 1)),
    'VC>=2' = qlogis(mean(FG1_val_cat >= 2)),
    'VC>=3' = qlogis(mean(FG1_val_cat >= 3)),
    'VC>=4' = qlogis(mean(FG1_val_cat >= 4)),
    'VC>=5' = qlogis(mean(FG1_val_cat >= 5)),
    'VC>=6' = qlogis(mean(FG1_val_cat >= 6)),
    'VC>=7' = qlogis(mean(FG1_val_cat >= 7)),
    'VC>=8' = qlogis(mean(FG1_val_cat >= 8)))
}

যেখানে আপনি FG1_val_catবরং ব্যবহার y। হ্যারেলের রেগ্রেশন মডেলিং কৌশলগুলির উদাহরণ ব্যবহার করে:

library(Hmisc)
getHdata(support)
support <- support[complete.cases(support[, c("sfdm2", "adlsc", "sex", "age", "meanbp")]), ]
sfdm <- as.integer (support$sfdm2 ) - 1

sf1 <- function (y) {
  c(' Y ≥ 1 ' = qlogis (mean(sfdm >= 1)), 
    ' Y ≥ 2 ' = qlogis (mean(sfdm >= 2)),
    ' Y ≥ 3 ' = qlogis (mean(sfdm >= 3))
  )
}

sf2 <- function (y) {
  c(' Y ≥ 1 ' = qlogis (mean(y >= 1)), 
    ' Y ≥ 2 ' = qlogis (mean(y >= 2)),
    ' Y ≥ 3 ' = qlogis (mean(y >= 3))
  )
}

s1 <- summary(sfdm ~ adlsc + sex + age + meanbp, fun=sf1,
              data = support)
s2 <- summary(sfdm ~ adlsc + sex + age + meanbp, fun=sf2,
              data = support)  

plot(s1, which =1:3, pch =1:3, xlab = ' logit ', main = ' ', width.factor = 1.4, cex.lab = 0.75)

plot(s2, which =1:3, pch =1:3, xlab = ' logit ', main = ' ', width.factor = 1.4, cex.lab = 0.75)

এখানে চিত্র বর্ণনা লিখুন বনাম

এখানে চিত্র বর্ণনা লিখুন

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