মাল্টকম্পে পোস্ট-হক পরীক্ষা: মিথস্ক্রিয়া সহ মিশ্র-প্রভাব মডেলগুলির জন্য গ্লাহ্ট (lme4)


10

আমি R( lme4প্যাকেজ) রৈখিক মিশ্র-প্রভাব মডেলটিতে পোস্ট-হক পরীক্ষা করছি । পোস্ট-হক পরীক্ষা করার জন্য আমি multcompপ্যাকেজ ( glht()ফাংশন) ব্যবহার করছি ।

আমার পরীক্ষামূলক নকশাটি এলোমেলো ব্লক প্রভাব সহ পুনরাবৃত্তি-ব্যবস্থাগুলি। মডেলগুলি হিসাবে নির্দিষ্ট করা হয়:

mymod <- lmer(variable ~ treatment * time + (1|block), data = mydata, REML = TRUE)

এখানে আমার ডেটা সংযুক্ত করার পরিবর্তে, আমি প্যাকেজের warpbreaksমধ্যে ডেকে আনা ডেটা থেকে কাজ করছি multcomp।

data <- warpbreaks
warpbreaks$rand <- NA

আমার "ব্লক" এফেক্টটি নকল করতে আমি একটি অতিরিক্ত র্যান্ডম ভেরিয়েবল যুক্ত করেছি:

warpbreaks$rand <- rep(c("foo", "bar", "bee"), nrow(warpbreaks)/3)

এটি আমার মডেলটিকে নকল করে:

mod <- lmer(breaks ~ tension * wool + (1|rand), data = warpbreaks) 

আমি "উদাহরণ সচেতন অতিরিক্ত Multcomp Examples- 2 ওয়ে Anova" আপনি মাত্রা মধ্যে টান মাত্রা একটি তুলনামূলক এই উদাহরণ বিশালাকার wool।

আমি যদি এর বিপরীতটি করতে চাই - এর স্তরের woolমধ্যে স্তরগুলির তুলনা করব tension? (আমার ক্ষেত্রে, এটি সময়ের স্তরের (তিন - জুন, জুলাই, আগস্ট) এর মধ্যে চিকিত্সার স্তরের (দুটি - 0, 1) তুলনা করা হবে।

আমি এটি করার জন্য নীচের কোডটি নিয়ে এসেছি, তবে এটি কাজ করছে বলে মনে হচ্ছে না (নীচে ত্রুটির বার্তা দেখুন)।

প্রথমত, উদাহরণ থেকে ( woolএবং tensionস্থানগুলি বদলে নেওয়া):

tmp <- expand.grid(wool = unique(warpbreaks$wool), tension = unique(warpbreaks$tension))
X <- model.matrix(~ tension * wool, data = tmp)
glht(mod, linfct = X)

Tukey <- contrMat(table(warpbreaks$wool), "Tukey")

K1 <- cbind(Tukey, matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)))
rownames(K1) <- paste(levels(warpbreaks$tension)[1], rownames(K1), sep = ":")

K2 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$tension)[2], rownames(K2), sep = ":")

এখান থেকে নীচে আমার নিজস্ব কোড:

K3 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$tension)[3], rownames(K3), sep = ":")

K <- rbind(K1, K2, K3)
colnames(K) <- c(colnames(Tukey), colnames(Tukey))

> summary(glht(mod, linfct = K %*% X))
Error in summary(glht(mod, linfct = K %*% X)) : 
  error in evaluating the argument 'object' in selecting a method for function 'summary': Error in K %*% X : non-conformable arguments

উত্তর:


6

Lsmeans প্যাকেজটি ব্যবহার করা অনেক সহজ

library(lsmeans)
lsmeans(mod, pairwise ~ tension | wool)
lsmeans(mod, pairwise ~ wool | tension)

দুর্দান্ত, এটি কাজ করে! ধন্যবাদ। দ্রষ্টব্য: এই কোডটি কেবলমাত্র আমার পুনরাবৃত্ত পরিবর্তনশীলকে সংখ্যার মানগুলি (3 এবং 6) থেকে বর্ণানুক্রমিক মানগুলিতে (A & B) পরিবর্তন করার পরে কেবলমাত্র আমার ডেটার জন্য কাজ করেছিল।

ভাল, যে অনেক গুরুত্বপূর্ণ! এটি একটি এর বিভিন্ন মডেল সঙ্গে timeএকটি সাংখ্যিক predictor হিসাবে। আমি সন্দেহ করি আপনি এটি একটি কারণ হিসাবে চেয়েছিলেন।
— রাশ দৈর্ঘ্যের

আমি কীভাবে আরও ভবিষ্যদ্বাণীদের সাধারণ করতে পারি? উদাহরণস্বরূপ যদি আমার কাছে 3 ভবিষ্যদ্বাণী থাকে তবে এটি কীভাবে কাজ করে?
— মজা করুন

1
@ হাভেফুন দয়া করে দেখুন help("lsmeans", package = "lsmeans")এবং vignette("using-lsmeans")। এখানে অনেকগুলি ডকুমেন্টেশন এবং উদাহরণ রয়েছে।
— রাশ দৈর্ঘ্য

1
প্রতিটি পদ্ধতির সাথে আপনি যে তুলনা করেছেন তা গণনা করুন, সেগুলি এক নয়। একাধিক পরীক্ষার সমন্বয়গুলিও পড়ুন। যখন আপনার পরীক্ষার বৃহত্তর পরিবার থাকে, তখন ছোট পরিবারের ক্ষেত্রে অ্যাডজাস্ট করা পি মানগুলি আলাদা হয়। আপনি যখন ভেরিয়েবল ব্যবহার করেন, সামঞ্জস্যগুলি প্রতিটি সেটে আলাদাভাবে প্রয়োগ করা হয়।
— রাশ দৈর্ঘের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.