นี่เป็นวิธีที่ยอมรับได้ในการวิเคราะห์แบบจำลองเอฟเฟกต์แบบผสมด้วย lme4 ใน R หรือไม่?


14

ฉันมีชุดข้อมูลการวัดซ้ำ ๆ ที่ไม่สมดุลในการวิเคราะห์และฉันได้อ่านว่าแพคเกจทางสถิติส่วนใหญ่จัดการกับ ANOVA (เช่นผลรวมสี่เหลี่ยมจัตุรัสประเภท III) ผิด ดังนั้นฉันต้องการใช้โมเดลเอฟเฟกต์แบบผสมเพื่อวิเคราะห์ข้อมูลเหล่านี้ ฉันได้อ่านเกี่ยวกับโมเดลมิกซ์Rมากมายแล้ว แต่ฉันยังใหม่กับRโมเดลเอฟเฟกต์แบบผสมและไม่ค่อยมั่นใจว่าฉันกำลังทำสิ่งที่ถูกต้อง โปรดทราบว่าฉันยังไม่สามารถหย่าร้างกับวิธีการ "ดั้งเดิม" ทั้งหมดและยังคงต้องใช้ค่าและค่าการทดสอบหลังการทดสอบพี

ฉันต้องการทราบว่าวิธีการต่อไปนี้สมเหตุสมผลหรือไม่หรือหากฉันกำลังทำสิ่งผิดปกติอย่างน่ากลัว นี่คือรหัสของฉัน:

# load packages
library(lme4)
library(languageR)
library(LMERConvenienceFunctions)
library(coda)
library(pbkrtest)

# import data
my.data <- read.csv("data.csv")

# create separate data frames for each DV & remove NAs
region.data <- na.omit(data.frame(time=my.data$time, subject=my.data$subject, dv=my.data$dv1))

# output summary of data
data.summary <- summary(region.data)

# fit model
# "time" is a factor with three levels ("t1", "t2", "t3")
region.lmer <- lmer(dv ~ time + (1|subject), data=region.data)

# check model assumptions
mcp.fnc(region.lmer)

# remove outliers (over 2.5 standard deviations)
rm.outliers <- romr.fnc(region.lmer, region.data, trim=2.5)
region.data <- rm.outliers$data
region.lmer <- update(region.lmer)

# re-check model assumptions
mcp.fnc(region.lmer)

# compare model to null model
region.lmer.null <- lmer(dv ~ 1 + (1|subject), data=region.data)
region.krtest <- KRmodcomp(region.lmer, region.lmer.null)

# output lmer summary
region.lmer.summary <- summary(region.lmer)

# run post hoc tests
t1.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)

region.lmer <- lmer(dv ~ relevel(time,ref="t2") + (1|subject), data=region.data)
t2.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)

region.lmer <- lmer(dv ~ relevel(time,ref="t3") + (1|subject), data=region.data)
t3.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)

# Get mcmc mean and 50/95% HPD confidence intervals for graphs
# repeated three times and stored in a matrix (not shown here for brevity)
as.numeric(t1.pvals$fixed$MCMCmean)
as.numeric(t1.pvals$fixed$HPD95lower)
as.numeric(t1.pvals$fixed$HPD95upper)
HPDinterval(as.mcmc(t1.pvals$mcmc),prob=0.5)
    HPDinterval(as.mcmc(t1.pvals$mcmc),prob=0.5)

ฉันมีคำถามเฉพาะ:

  1. นี่เป็นวิธีที่ถูกต้องในการวิเคราะห์แบบจำลองเอฟเฟกต์แบบผสมหรือไม่ ถ้าไม่ฉันควรทำอะไรแทน
  2. การวิพากษ์วิจารณ์แปลงผลลัพธ์โดย mcp.fnc ดีพอสำหรับการตรวจสอบสมมติฐานของโมเดลหรือฉันควรทำตามขั้นตอนเพิ่มเติม
  3. ฉันเข้าใจแล้วว่าแบบจำลองที่ผสมกันนั้นถูกต้องข้อมูลจำเป็นต้องมีสมมติฐานที่เคารพความเป็นมาตรฐานและความเป็นเนื้อเดียวกัน ฉันจะตัดสินสิ่งที่ "ปกติประมาณ" และสิ่งที่ไม่ได้โดยดูที่แปลงวิจารณ์ที่สร้างขึ้นโดย mcp.fnc? ฉันแค่ต้องรู้สึกถึงสิ่งนี้หรือเป็นวิธีที่พวกเขากำหนดในการทำสิ่งต่าง ๆ ? แบบผสมที่มีความแข็งแกร่งในแง่ของสมมติฐานเหล่านี้คืออะไร?
  4. ฉันจำเป็นต้องประเมินความแตกต่างระหว่างจุดสามจุดสำหรับลักษณะต่าง ๆ (biomarkers) ~ 20 รายการในตัวอย่างของฉัน เหมาะสมและทดสอบแบบจำลองแยกต่างหากสำหรับแต่ละแบบที่ยอมรับได้ตราบใดที่ฉันรายงานการทดสอบที่ดำเนินการทั้งหมด (มีนัยสำคัญหรือไม่) หรือฉันต้องการรูปแบบการแก้ไขใด ๆ สำหรับการเปรียบเทียบหลายแบบ

เพื่อให้แม่นยำยิ่งขึ้นเล็กน้อยเกี่ยวกับการทดสอบนี่คือรายละเอียดเพิ่มเติม เราติดตามผู้เข้าร่วมจำนวนมากตามยาวเมื่อพวกเขาเข้ารับการรักษา เราวัดจำนวนนักชีวภาพก่อนที่จะเริ่มการรักษาและสองครั้งหลังจากนั้น สิ่งที่ฉันต้องการดูคือถ้ามีความแตกต่างใน biomarkers ระหว่างสามครั้งคะแนน

ฉันกำลังพิจารณาสิ่งที่ฉันทำที่นี่ในบทช่วยสอนนี้แต่ได้ทำการเปลี่ยนแปลงตามความต้องการและสิ่งที่ฉันอ่าน การเปลี่ยนแปลงที่ฉันทำคือ:

  1. เชื่อมโยงปัจจัย "เวลา" เพื่อรับการเปรียบเทียบ t1-t2, t2-t3 และ t1-t3 ด้วย pvals.fnc (จากแพ็คเกจ languageR)
  2. เปรียบเทียบโมเดลผสมของฉันกับโมเดลว่างโดยใช้การทดสอบ F โดยประมาณตามวิธีของ Kenward-Roger (ใช้แพ็คเกจ pbkrtest) มากกว่าการทดสอบอัตราส่วนความน่าจะเป็น (เพราะฉันอ่านว่า Kenward-Roger's ถือว่าดีกว่าตอนนี้)
  3. ใช้แพ็คเกจ LMERConvenienceFunctions เพื่อตรวจสอบสมมติฐานและลบค่าผิดปกติ (เพราะฉันอ่านว่าแบบผสมมีความอ่อนไหวมากต่อค่าผิดปกติ)

1
(+1) คำถามที่จัดทำขึ้นอย่างสวยงาม (หลายรายการ)
chl

คำตอบ:


22

คำถามของคุณเล็กน้อย "ใหญ่" ดังนั้นฉันจะเริ่มต้นด้วยความเห็นและคำแนะนำทั่วไป

การอ่านพื้นหลังและแพ็คเกจที่มีประโยชน์บางอย่าง

คุณอาจจะใช้เวลาดูที่บางส่วนของการแนะนำกวดวิชาเพื่อใช้แบบจำลองผสมผมจะแนะนำให้เริ่มต้นด้วย Baayen, et al (2008) - Baayen languageRเป็นผู้เขียน Barr, et al (2013) หารือเกี่ยวกับบางประเด็นที่มีผลกระทบต่อโครงสร้างแบบสุ่มและเบน Bolker lme4เป็นหนึ่งในนักพัฒนาในปัจจุบันของ Baayen et al เหมาะอย่างยิ่งสำหรับคำถามของคุณเพราะพวกเขาใช้เวลามากมายในการพูดคุยเกี่ยวกับการใช้การทดสอบ bootstrapping / permutation (สิ่งที่อยู่เบื้องหลังmcp.fnc)

วรรณกรรม

Florian Jaeger ยังมีสิ่งต่าง ๆ มากมายในด้านการใช้งานแบบผสมในบล็อกของห้องปฏิบัติการของเขา

นอกจากนี้ยังมีจำนวนของแพคเกจ R ประโยชน์สำหรับการแสดงผลและการทดสอบหลากหลายรูปแบบเช่นและlmerTest แพคเกจเป็นสิ่งที่ดีโดยเฉพาะอย่างยิ่งเพราะมันช่วยให้คุณวางแผนการเชิงเส้นถดถอยและความเชื่อมั่นในช่วงเวลาที่เกิดขึ้นอยู่เบื้องหลังeffectseffects

ความพอดีและความพอดีของโมเดล

พีlmerTest

anova()merχ2χ2พี- ค่าเพื่อเปรียบเทียบสองรุ่นโดยตรง ข้อเสียของสิ่งนี้คือมันไม่ชัดเจนในทันทีว่าแบบของคุณดีแค่ไหน

เสื้อsummary()|เสื้อ|>2fixef()

คุณควรตรวจสอบให้แน่ใจว่าไม่มีผลกระทบคงที่ของคุณที่มีความสัมพันธ์กันอย่างรุนแรงเกินไป - ความหลากหลายทางชีวภาพละเมิดสมมติฐานของแบบจำลอง Florian Jaeger ได้เขียนบิตเกี่ยวกับเรื่องนี้เช่นเดียวกับการแก้ปัญหาที่เป็นไปได้ไม่กี่

การเปรียบเทียบหลายรายการ

ฉันจะตอบคำถามของคุณ # 4 อีกเล็กน้อยโดยตรง คำตอบนั้นเหมือนกับการปฏิบัติที่ดีกับ ANOVA แบบดั้งเดิม แต่น่าเสียดายที่นี่ดูเหมือนจะเป็นจุดที่มีความไม่แน่นอนอย่างมากสำหรับนักวิจัยส่วนใหญ่ (มันเหมือนกับ ANOVA แบบดั้งเดิมเพราะทั้งโมเดลเชิงเส้นผสมเอฟเฟ็กต์และ ANOVA นั้นขึ้นอยู่กับโมเดลเชิงเส้นทั่วไปนั่นก็คือโมเดลผสมนั้นมีคำศัพท์พิเศษสำหรับเอฟเฟกต์แบบสุ่ม) หากคุณสมมติว่าหน้าต่างเวลาสร้าง ความแตกต่างและต้องการเปรียบเทียบผลกระทบของเวลาคุณควรรวมเวลาไว้ในแบบจำลองของคุณ สิ่งนี้จะเป็นวิธีที่สะดวกสำหรับคุณในการตัดสินว่าเวลาสร้างความแตกต่างหรือไม่: มีผลหลัก (แก้ไข) เป็นเวลาหรือไม่ ข้อเสียของเส้นทางนี้คือโมเดลของคุณจะมีความซับซ้อนมากขึ้นและ "super" เดี่ยว แบบจำลองที่มีเวลาในฐานะพารามิเตอร์อาจใช้เวลาในการคำนวณนานกว่าแบบจำลองขนาดเล็กสามรุ่นโดยไม่มีเวลาเป็นพารามิเตอร์ แน่นอนตัวอย่างการสอนแบบคลาสสิคสำหรับรุ่นผสมคือsleepstudy ซึ่งใช้เวลาเป็นพารามิเตอร์

เสื้อforeachlme4χ2

หากคุณสมบัติของคุณเป็นตัวแปรตามคุณจะต้องคำนวณแบบจำลองที่แตกต่างกันอยู่แล้วจากนั้นคุณสามารถใช้ AIC และ BIC เพื่อเปรียบเทียบผลลัพธ์


ขอบคุณสำหรับการตอบรับอย่างละเอียด! ฉันได้อ่านเอกสารอ้างอิงที่ให้มาแล้วบางส่วน แต่จะดูที่คนอื่น ๆ เท่าที่ฉันเข้าใจความชั่วร้ายของค่า p ผู้ตรวจสอบมักจะคิดอย่างอื่น (อย่างน้อยตอนนี้) ตามที่ Bates แนะนำฉันใช้การสุ่มตัวอย่าง mcmc ซึ่งจากความเข้าใจของฉันก้าวเท้าเลี่ยงปัญหาเป็นส่วนหนึ่ง (กล่าวคือมันเป็นไปไม่ได้ที่จะประเมินระดับความอิสระสำหรับโมเดล lmer อย่างถูกต้อง) ลักษณะเป็น DV ฉันจะเพิ่มข้อมูลเพิ่มเติมเพื่อชี้แจง
ダンボー
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.