ฉันต้องการรับค่า p และขนาดผลกระทบของตัวแปรเด็ดขาดแบบอิสระ (มีหลายระดับ) - นั่นคือ "โดยรวม" และไม่ใช่สำหรับแต่ละระดับแยกกันเช่นเดียวกับเอาต์พุตปกติจากlme4
ในอาร์มันเป็นเหมือน สิ่งที่ผู้คนรายงานเมื่อใช้ ANOVA
ฉันจะได้รับสิ่งนี้ได้อย่างไร
ฉันต้องการรับค่า p และขนาดผลกระทบของตัวแปรเด็ดขาดแบบอิสระ (มีหลายระดับ) - นั่นคือ "โดยรวม" และไม่ใช่สำหรับแต่ละระดับแยกกันเช่นเดียวกับเอาต์พุตปกติจากlme4
ในอาร์มันเป็นเหมือน สิ่งที่ผู้คนรายงานเมื่อใช้ ANOVA
ฉันจะได้รับสิ่งนี้ได้อย่างไร
คำตอบ:
แนวคิดทั้งสองที่คุณพูดถึง (ค่า p และขนาดเอฟเฟ็กต์ของโมเดลผสมเชิงเส้น) มีปัญหาโดยธรรมชาติ ด้วยความเคารพต่อขนาดของผลอ้างดั๊กเบตส์ผู้เขียนต้นฉบับของlme4
,
สำหรับข้อมูลเพิ่มเติมคุณสามารถดูที่หัวข้อนี้ , หัวข้อนี้และข้อความนี้ โดยทั่วไปปัญหาคือไม่มีวิธีการที่ตกลงกันสำหรับการรวมและการสลายตัวของความแปรปรวนจากผลกระทบแบบสุ่มในรูปแบบ อย่างไรก็ตามมีกี่มาตรฐานที่ใช้ หากคุณมองไปที่Wiki ตั้งค่าสำหรับ / โดยรายชื่อผู้รับจดหมาย r-sig-Mixed-modelมีวิธีการสองสามวิธีที่ระบุไว้
หนึ่งในวิธีการที่แนะนำจะดูที่ความสัมพันธ์ระหว่างค่าที่ติดตั้งและค่าที่สังเกตได้ สิ่งนี้สามารถนำไปใช้ในRตามที่ Jarrett Byrnes แนะนำในหนึ่งในเธรดเหล่านี้:
r2.corr.mer <- function(m) {
lmfit <- lm(model.response(model.frame(m)) ~ fitted(m))
summary(lmfit)$r.squared
}
ตัวอย่างเช่นสมมติว่าเราประเมินโมเดลเชิงเส้นผสมต่อไปนี้:
set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
g = sample(letters[1:4], 250, replace=T) )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
# Data: d
# REML criterion at convergence: 744.4
#
# Scaled residuals:
# Min 1Q Median 3Q Max
# -2.7808 -0.6123 -0.0244 0.6330 3.5374
#
# Random effects:
# Groups Name Variance Std.Dev. Corr
# g (Intercept) 0.006218 0.07885
# z 0.001318 0.03631 -1.00
# Residual 1.121439 1.05898
# Number of obs: 250, groups: g, 4
#
# Fixed effects:
# Estimate Std. Error t value
# (Intercept) 0.02180 0.07795 0.280
# x 0.04446 0.06980 0.637
#
# Correlation of Fixed Effects:
# (Intr)
# x -0.005
เราสามารถคำนวณขนาดเอฟเฟกต์โดยใช้ฟังก์ชั่นที่กำหนดไว้ด้านบน:
r2.corr.mer(fm1)
# [1] 0.0160841
1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721 # Usually, it would be even closer to the value above
ด้วยความเคารพต่อค่า pนี่เป็นปัญหาที่ถกเถียงกันมากขึ้น (อย่างน้อยในชุมชนR / lme4
ชุมชน) ดูการอภิปรายในคำถามที่นี่ , ที่นี่และที่นี่ในหมู่อื่น ๆ อีกมากมาย การอ้างอิงหน้า Wiki อีกครั้งมีวิธีทดสอบสมมติฐานเกี่ยวกับผลกระทบในตัวแบบผสมแบบเชิงเส้น รายการจาก "แย่ที่สุดถึงดีที่สุด" (อ้างอิงจากผู้เขียนหน้า Wikiซึ่งผมเชื่อว่ารวมถึง Doug Bates และ Ben Bolker ผู้มีส่วนร่วมที่นี่มาก):
anova
หรือdrop1
) หรือผ่านโปรไฟล์ความน่าจะเป็นในการคำนวณพวกเขาแนะนำวิธีการสุ่มตัวอย่างลูกโซ่มาร์คอฟมอนติคาร์โลและแสดงรายการจำนวนของความเป็นไปได้ที่จะใช้วิธีนี้จากแบบหลอกเทียมและแบบเบย์ตามรายการด้านล่าง
หลอกคชกรรม:
mcmcsamp
(หากมีให้สำหรับปัญหาของคุณ: เช่น LMM ที่มีเอฟเฟกต์แบบง่าย - ไม่ใช่ GLMM หรือเอฟเฟกต์แบบสุ่มที่ซับซ้อน) pvals.fnc
ในlanguageR
แพ็คเกจเป็นเสื้อคลุมสำหรับmcmcsamp
) glmmADMB
แพ็คเกจ (ใช้mcmc=TRUE
ตัวเลือก) หรือR2admb
แพ็คเกจ (เขียนนิยามโมเดลของคุณเองใน AD Model Builder) หรือภายนอกR sim
ฟังก์ชั่นจากarm
แพ็คเกจ (จำลองหลังเฉพาะสำหรับค่าสัมประสิทธิ์เบต้า (เอฟเฟกต์คงที่) แนวทาง Bayesian อย่างเต็มที่:
MCMCglmm
แพ็คเกจ glmmBUGS
(ตัวห่อหุ้ม WinBUGS / อินเตอร์เฟสR ) rjags
/ r2jags
/ R2WinBUGS
/ BRugs
แพคเกจ เพื่อเป็นภาพประกอบที่จะแสดงให้เห็นว่าสิ่งนี้มีลักษณะเป็นอย่างไรด้านล่างเป็นการMCMCglmm
ประมาณโดยใช้MCMCglmm
แพคเกจซึ่งคุณจะเห็นผลลัพธ์ที่คล้ายกันกับโมเดลข้างต้นและมีค่า p แบบเบย์บางชนิด:
library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval = 10
# Sample size = 1000
#
# DIC: 697.7438
#
# G-structure: ~us(z):g
#
# post.mean l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268 397.6
#
# R-structure: ~units
#
# post.mean l-95% CI u-95% CI eff.samp
# units 0.9466 0.7926 1.123 1000
#
# Location effects: y ~ x
#
# post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept) -0.04936 -0.17176 0.07502 1000 0.424
# x -0.07955 -0.19648 0.05811 1000 0.214
ฉันหวังว่านี่จะช่วยได้บ้าง ฉันคิดว่าคำแนะนำที่ดีที่สุดสำหรับใครบางคนที่เริ่มต้นด้วยโมเดลเชิงเส้นผสมและพยายามที่จะประเมินพวกเขาในRคือการอ่านคำถามที่พบบ่อยเกี่ยวกับWikiจากแหล่งที่มาของข้อมูลส่วนใหญ่ที่ดึงมา มันเป็นทรัพยากรที่ยอดเยี่ยมสำหรับชุดรูปแบบเอฟเฟกต์ทุกประเภทตั้งแต่ระดับพื้นฐานไปจนถึงขั้นสูงและจากการสร้างแบบจำลองไปจนถึงการวางแผน
ในการคำนวณค่านัยสำคัญ ( p ), ลุค (2016) การประเมินความสำคัญในตัวแบบผสมผลกระทบเชิงเส้นในรายงานRว่าวิธีการที่เหมาะสมที่สุดคือการประเมินแบบ Kenward-Roger หรือ Satterthwaite สำหรับองศาอิสระ (มีในแพ็คเกจ R เช่นlmerTest
หรือafex
)
นามธรรม
แบบจำลองเอฟเฟ็กต์แบบผสมถูกนำมาใช้บ่อยครั้งมากขึ้นในการวิเคราะห์ข้อมูลการทดลอง อย่างไรก็ตามในแพ็คเกจ lme4 ใน R มาตรฐานสำหรับการประเมินความสำคัญของผลกระทบคงที่ในโมเดลเหล่านี้ (เช่นการได้รับค่า p) นั้นค่อนข้างคลุมเครือ มีเหตุผลที่ดีสำหรับสิ่งนี้ แต่เนื่องจากนักวิจัยที่ใช้แบบจำลองเหล่านี้จำเป็นต้องใช้ในหลาย ๆ กรณีเพื่อรายงานค่า p จึงจำเป็นต้องใช้วิธีการประเมินความสำคัญของผลลัพธ์แบบจำลอง บทความนี้รายงานผลของการจำลองแสดงให้เห็นว่าทั้งสองวิธีที่พบบ่อยที่สุดสำหรับการประเมินความสำคัญโดยใช้การทดสอบอัตราส่วนความน่าจะเป็นและการใช้การแจกแจง z กับค่า Wald t จากรูปแบบผลลัพธ์ (t-as-z) โดยเฉพาะอย่างยิ่งสำหรับกลุ่มตัวอย่างที่มีขนาดเล็ก วิธีอื่น ๆ สำหรับการประเมินความสำคัญผลของการจำลองเหล่านี้ชี้ให้เห็นว่าอัตราความผิดพลาด Type 1 ใกล้เคียงกับ. 05 มากที่สุดเมื่อแบบจำลองได้รับการติดตั้งโดยใช้ REML และค่า p จะได้มาจากการประมาณค่า Kenward-Roger หรือ Satterthwaiteเนื่องจากการประมาณทั้งสองนี้ ตัวอย่าง
(เน้นเพิ่ม)
lmerTest
แพ็คเกจ
ฉันใช้lmerTest
แพ็คเกจ สิ่งนี้รวมถึงการประมาณค่า p-value ในanova()
เอาต์พุตสำหรับการวิเคราะห์ MLM ของฉันอย่างสะดวก แต่ไม่ได้ให้ขนาดของเอฟเฟกต์สำหรับเหตุผลที่กำหนดไว้ในโพสต์อื่น ๆ ที่นี่
anova()
ฟังก์ชั่นในการรับตาราง anova กับโมเดลเชิงเส้นผสมเช่นเดียวกับโมเดลเชิงเส้น