ลองพิจารณาชุดข้อมูลสมมุตินี้:
set.seed(12345)
num.subjects <- 10
dose <- rep(c(1,10,50,100), num.subjects)
subject <- rep(1:num.subjects, each=4)
group <- rep(1:2, each=num.subjects/2*4)
response <- dose*dose/10 * group + rnorm(length(dose), 50, 30)
df <- data.frame(dose=dose, response=response,
subject=subject, group=group)
เราสามารถใช้lme
เพื่อจำลองการตอบสนองด้วยโมเดลเอฟเฟกต์แบบสุ่ม:
require(nlme)
model <- lme(response ~ dose + group + dose*group,
random = ~1|subject, df)
ฉันต้องการใช้predict
กับผลลัพธ์ของโมเดลนี้เพื่อรับการตอบสนองของหัวเรื่องทั่วไปของกลุ่ม 1 ถึงปริมาณ 10:
pred <- predict(model, newdata=list(dose=10, group=1))
อย่างไรก็ตามด้วยรหัสนี้ฉันได้รับข้อผิดพลาดต่อไปนี้:
Error in predict.lme(model, newdata = list(dose = 10, group = 1)) :
cannot evaluate groups for desired levels on 'newdata'
เพื่อกำจัดมันฉันต้องทำเช่น
pred <- predict(model, newdata=list(dose=10, group=1, subject=5))
นี้ แต่ไม่ได้จริงๆทำให้รู้สึกมากฉัน ... เรื่องที่เป็นปัจจัยที่ก่อความรำคาญในรูปแบบของฉันดังนั้นสิ่งที่รู้สึกไม่ได้มีการรวมไว้ในpredict
? ถ้าฉันใส่จำนวนเรื่องไม่ได้อยู่ในชุดข้อมูลที่ผลตอบแทนpredict
NA
นี่เป็นพฤติกรรมที่ต้องการสำหรับpredict
ในสถานการณ์นี้หรือไม่? ฉันขาดอะไรบางอย่างที่ชัดเจนจริง ๆ ?
model
จะถือว่าค่าเฉลี่ยของคุณถูกกำหนดโดย (โดยเฉพาะดังนั้นมันจะคาดหวังว่าค่าบางอย่างสำหรับพารามิเตอร์รำคาญด้วย มีบางสถานการณ์ที่อาจไม่เหมาะสมที่จะถือว่าจุดประเมินผลของคุณไม่มีลำดับชั้น (ดังนั้นไม่มี ) นั่นคือสาเหตุที่ทำให้ติดตั้ง () ให้ผลลัพธ์ที่ "รบกวน" ในตอนแรก (และที่จริงแล้วฉันไม่ทำ คิดว่ามันน่ารำคาญ แต่เป็นข้อมูลเพิ่มเติม แต่ก็โอเค ... )