การระบุเอฟเฟกต์แบบสุ่ม (แยก) หลายรายการใน lme [ปิด]


25

ฉันทำงานในแพ็คเกจ R nlmeและlme4พยายามระบุรุ่นที่มีเอฟเฟกต์แบบสุ่มหลายอัน ฉันพบว่ามีเพียงnlmeเท่านั้นที่อนุญาตให้ระบุโครงสร้างที่แตกต่างกันของความแปรปรวน ดังนั้นฉันได้แบบจำลองโดยที่อุณหภูมิ (Y) ขึ้นอยู่กับเวลา (เป็นชั่วโมง) การสกัดกั้นจะแตกต่างกันตามวันที่และปีและความแปรปรวนก็แตกต่างกันไปตามปี:

fit1 <- lme(Y ~ time, random=~1|year/date, data=X, weights=varIdent(form=~1|year))

อย่างไรก็ตามหากฉันต้องการเพิ่มคำแบบสุ่มอื่น (เวลาแปรผันตามวันที่) และระบุรูปแบบดังนี้:

fit2 <- lme(Y ~ time, random=list(~1|year, ~time-1|date,  ~1|date), data=X, 
            weights=varIdent(form=~1|year))

เอฟเฟกต์แบบสุ่มซ้อนกันใน: วันที่ในปี; แล้ววันที่ในวันที่และในปี

ฉันก็ลอง

one  <- rep(1, length(Y))
fit3 <- lme(Y ~ time, random=list(one=pdBlocked(list(pdSymm(~1|year/date), 
            pdSymm(~time-1|year)))), data=X, weights=varIdent(form=~1|year))

แต่มันทำให้เกิดข้อผิดพลาด:

Error in pdConstruct.pdBlocked(object, form = form, nam = nam, data = data,  :
  cannot have duplicated column names in a "pdMat" object

ฉันเข้าใจว่ามีคำถามมากมายที่เกี่ยวข้องกับปัญหาที่คล้ายกัน แต่ฉันไม่พบคำตอบสำหรับคดีของฉัน คุณช่วยฉันด้วยสเปคที่ถูกต้องของโมเดลได้หรือไม่?

คำตอบ:


30

หลังจากการต่อสู้หลายครั้งฉันพบวิธีแก้ปัญหาของฉันซึ่งฉันกำลังโพสต์ที่นี่ในกรณีที่ใครบางคนจะมีคำถามที่คล้ายกัน:

fit <- lme(Y ~ time, random=list(year=~1, date=~time), data=X, weights=varIdent(form=~1|year))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.