আর-তে একটি জিএলএম-এর পরে স্তরগুলির স্তরের তুলনা করা


25

আমার পরিস্থিতি সম্পর্কে এখানে একটি সামান্য পটভূমি: আমার ডেটাটি কোনও শিকারীর দ্বারা সফলভাবে খাওয়া শিকারের সংখ্যা বোঝায় refer যেহেতু প্রতিটি পরীক্ষায় শিকারের সংখ্যা সীমাবদ্ধ (25 টি উপলভ্য), আমার কাছে একটি কলাম "নমুনা" উপস্থিত শিকারের সংখ্যা উপস্থাপন করেছিল (সুতরাং, প্রতিটি পরীক্ষায় 25) এবং "গণনা" নামে আরেকটি ছিল যা সাফল্যের সংখ্যা ছিল ( কত শিকার খাওয়া হয়েছে)। আমি অনুপাতের ডেটা (পৃষ্ঠা 578) এর আর বই থেকে উদাহরণটিতে আমার বিশ্লেষণ ভিত্তিক করেছিলাম। ব্যাখ্যামূলক পরিবর্তনশীল হ'ল তাপমাত্রা (4 স্তর, যা আমি ফ্যাক্টর হিসাবে বিবেচনা করি), এবং শিকারীর লিঙ্গ (স্পষ্টতই পুরুষ বা মহিলা)। সুতরাং আমি এই মডেলটি দিয়ে শেষ করছি:

model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial) 

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

আমি আমার মডেল থেকে সংক্ষিপ্তসারটি এখানে পেয়েছি, যদি এটি এটিকে আরও স্পষ্ট করে তুলতে সহায়তা করে ...

y <- cbind(data$Count, data$Sample-data$Count)
model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial) 
> summary(model)

# Call:
# glm(formula = y ~ Temperature + Sex + Temperature * Sex, family=quasibinomial, data=data)

# Deviance Residuals: 
#     Min       1Q   Median       3Q      Max  
# -3.7926  -1.4308  -0.3098   0.9438   3.6831  

# Coefficients:
#                                        Estimate Std. Error t value Pr(>|t|)    
# (Intercept)                             -1.6094     0.2672  -6.024 3.86e-08 ***
# Temperature8                             0.3438     0.3594   0.957   0.3414    
# Temperature11                           -1.0296     0.4803  -2.144   0.0348 *  
# Temperature15                           -1.2669     0.5174  -2.449   0.0163 *  
# SexMale                                    0.3822     0.3577   1.069   0.2882    
# Temperature8:SexMale                    -0.2152     0.4884  -0.441   0.6606    
# Temperature11:SexMale                    0.4136     0.6093   0.679   0.4990    
# Temperature15:SexMale                    0.4370     0.6503   0.672   0.5033    
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

# (Dispersion parameter for quasibinomial family taken to be 2.97372)    
#     Null deviance: 384.54  on 95  degrees of freedom
# Residual deviance: 289.45  on 88  degrees of freedom
# AIC: NA   
# Number of Fisher Scoring iterations: 5

2
glhtmultcompglht(my.glm, mcp(Temperature="Tukey"))model<-glm(y ~ Temperature*Sex data=predator, family=quasibinomial)

হাই, আপনার দ্রুত উত্তর জন্য ধন্যবাদ! তবে আমি অবশ্যই কিছু ভুল করছি কারণ আমি কেবল একটি ত্রুটি বার্তা পেয়েছি ... আমি ধরে নিয়েছি যে my.glm হ'ল আমি আগে সম্পাদিত গ্ল্যাম (তাই, ক্ষেত্রে "মডেল")। এমসিপি কি বোঝায়? আমি একটি ত্রুটি বার্তা পেয়েছি যে সহগ এবং কোভারিয়েন্স ম্যাট্রিক্সের মাত্রা মেলে না ...?
অ্যান

আপনি যদি আপনার প্রশ্নটি সম্পাদনা করে মডেল আউটপুট অন্তর্ভুক্ত করেন তবে এটি সহায়ক হবে।
COOLSerdash

3
আপনি কেন Temperatureএকটি ফ্যাক্টর হিসাবে মডেল ? আপনার কি আসল সংখ্যাসূচক মান নেই? আমি এগুলি একটি অবিচ্ছিন্ন পরিবর্তনশীল হিসাবে ব্যবহার করব এবং তারপরে এই পুরো সমস্যাটি মূল বিষয়।
গুং - মনিকা পুনরায়

3
এটি সাধারণভাবে এটি কীভাবে করা যায় তা জানতে সম্পূর্ণরূপে যুক্তিযুক্ত; আপনার প্রশ্ন দাঁড়িয়েছে। তবে ডাব্লু / আপনার সুনির্দিষ্ট পরিস্থিতি সম্পর্কে, আপনি অস্থায়ী পরিবর্তনশীল হিসাবে টেম্প ব্যবহার করব এমনকি যদি আপনি প্রাথমিকভাবে এটি একটি ফ্যাক্টর হিসাবে ভেবেছিলেন। বিষয়গুলি ডাব্লু / একাধিক তুলনা আলাদা করা, মডেলিং টেম্পটিকে একটি উপাদান হিসাবে চিহ্নিত করা আপনার কাছে থাকা তথ্যের অকার্যকর ব্যবহার।
গুং - মনিকা পুনরায়

উত্তর:


15

অ্যান, আমি সংক্ষেপে ব্যাখ্যা করব কীভাবে সাধারণভাবে এই জাতীয় একাধিক তুলনা করা যায়। এটি আপনার নির্দিষ্ট ক্ষেত্রে কেন কাজ করে না, আমি জানি না; আমি দুঃখিত.

তবে সাধারণত, আপনি এটি multcompপ্যাকেজ এবং ফাংশন দিয়ে করতে পারেন glht। এখানে একটি উদাহরণ:

mydata      <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
my.mod      <- glm(admit~gre+gpa*rank, data=mydata, family=quasibinomial)

summary(my.mod)
# 
# Coefficients:
#              Estimate Std. Error t value Pr(>|t|)  
# (Intercept) -4.985768   2.498395  -1.996   0.0467 *
# gre          0.002287   0.001110   2.060   0.0400 *
# gpa          1.089088   0.731319   1.489   0.1372  
# rank2        0.503294   2.982966   0.169   0.8661  
# rank3        0.450796   3.266665   0.138   0.8903  
# rank4       -1.508472   4.202000  -0.359   0.7198  
# gpa:rank2   -0.342951   0.864575  -0.397   0.6918  
# gpa:rank3   -0.515245   0.935922  -0.551   0.5823  
# gpa:rank4   -0.009246   1.220757  -0.008   0.9940  
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

আপনি যদি rankটুকির এইচএসডি ব্যবহারের মধ্যে জুটিযুক্ত তুলনা গণনা করতে চান তবে আপনি এটি এইভাবে করতে পারেন:

library(multcomp)
summary(glht(my.mod, mcp(rank="Tukey")))
# 
#    Simultaneous Tests for General Linear Hypotheses
# 
# Multiple Comparisons of Means: Tukey Contrasts
# 
# Fit: glm(formula = admit ~ gre + gpa * rank, family = quasibinomial, data = mydata)   
# 
# Linear Hypotheses:
#            Estimate Std. Error z value Pr(>|z|)
# 2 - 1 == 0   0.5033     2.9830   0.169    0.998
# 3 - 1 == 0   0.4508     3.2667   0.138    0.999
# 4 - 1 == 0  -1.5085     4.2020  -0.359    0.984
# 3 - 2 == 0  -0.0525     2.6880  -0.020    1.000
# 4 - 2 == 0  -2.0118     3.7540  -0.536    0.949
# 4 - 3 == 0  -1.9593     3.9972  -0.490    0.960
# (Adjusted p values reported -- single-step method)
# 
# Warning message:
# In mcp2matrix(model, linfct = linfct) :
#   covariate interactions found -- default contrast might be inappropriate

p

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

# Original model
model <- glm(y ~ Temperature+Sex+Temperature*Sex, data=predator, family=quasibinomial) 

# Model without an interaction
model2 <- glm(y ~ Temperature+Sex data=predator, family=quasibinomial) 

# Likelihood ratio test
anova(model, model2, test="LRT")

যদি এই পরীক্ষাটি তাৎপর্যপূর্ণ না হয়, আপনি আপনার মডেল থেকে ইন্টারঅ্যাকশনটি সরিয়ে ফেলতে পারেন। হয়তো glhtতারপর কাজ করবে?


1
ওহ godশ্বর, আপনাকে অনেক অনেক ধন্যবাদ !! আমি এবার কমান্ডটি সঠিকভাবে লিখতে পেরেছি এবং এটি কার্যকর হয়েছে! আবার ধন্যবাদ !
অ্যান

1
সংযোজনীয় প্রশ্ন: মিথস্ক্রিয়ায় একাধিক তুলনা পাওয়ার কী উপায় আছে? আমি একই রকম ডেটা পেয়েছি, যেখানে মিথস্ক্রিয়াটি (প্রাথমিক প্রশ্ন থেকে, এটি তাপমাত্রা * লিঙ্গ হবে) তাৎপর্যপূর্ণ এবং আমি ভাবছিলাম যে
অ্যান

1
আপনি ইন্টারঅ্যাকশন প্রতিটি স্তরের একাধিক তুলনা বোঝাতে চান? যদি হ্যাঁ, আপনি এই সাইটটিকে আকর্ষণীয় মনে করতে পারেন (শেষ অনুচ্ছেদে সমস্ত সম্ভাব্য জোড়াযুক্ত সংমিশ্রণগুলি কীভাবে পরীক্ষা করতে হবে তা দেখায়)।
COOLSerdash

আপনি একটি ভেরিয়েবল তৈরি করতে পারেন যা ভেরিয়েবলের সাথে ইন্টারঅ্যাকশনগুলির সাথে মিলে যায় এবং এমসিপি চালিয়ে যেতে এই ভেরিয়েবলটি ব্যবহার করতে পারেন। আপনি এটি এইভাবে না। মায়াডাটা $ জিপারাঙ্ক <- মিথস্ক্রিয়া (মায়াডাটা $ জিপিএ, মায়াডাটা $ র‌্যাঙ্ক)
সন্ধান

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