ตัวเลือกในรูปแบบการถดถอยความเป็นอันตรายแบบสัดส่วนเมื่อส่วนที่เหลือของ Schoenfeld ไม่ดีมีอะไรบ้าง


15

ฉันกำลังทำการถดถอยแบบอันตรายตามสัดส่วนของ Cox ในการใช้ R coxphซึ่งรวมถึงตัวแปรจำนวนมาก ส่วนที่เหลือ Martingale ดูดีและส่วนที่เหลือ Schoenfeld นั้นยอดเยี่ยมสำหรับเกือบทุกตัวแปร มีสามตัวแปรที่มี Schoenfeld ส่วนที่เหลือไม่แบนและลักษณะของตัวแปรนั้นมันทำให้รู้สึกว่าพวกเขาอาจแตกต่างกันไปตามเวลา

นี่คือตัวแปรที่ฉันไม่สนใจจริง ๆ ดังนั้นการทำให้เป็นชั้นจะดี อย่างไรก็ตามพวกเขาทั้งหมดเป็นตัวแปรต่อเนื่องไม่ใช่ตัวแปรเด็ดขาด ดังนั้นฉันจึงเข้าใจชั้นที่จะไม่เป็นเส้นทาง * ฉันได้ลองสร้างปฏิสัมพันธ์ระหว่างตัวแปรและเวลาตามที่อธิบายไว้ที่นี่แต่เราได้รับข้อผิดพลาด:

  In fitter(X, Y, strats, offset, init, control, weights = weights,  :
  Ran out of iterations and did not converge

ฉันทำงานกับจุดข้อมูลเกือบ 1,000 จุดและทำงานกับตัวแปรครึ่งโหลด้วยหลาย ๆ ปัจจัยแต่ละตัวดังนั้นจึงรู้สึกเหมือนว่าเรากำลังผลักดันขีด จำกัด ของวิธีที่ข้อมูลนี้จะถูกหั่นและหั่นเป็นลูกเต๋า โชคไม่ดีโมเดลที่เรียบง่ายทั้งหมดที่ฉันได้ลองด้วยตัวแปรที่รวมอยู่น้อยกว่านั้นแย่ลงอย่างชัดเจน

ตัวเลือกของฉันคืออะไร? เนื่องจากฉันไม่สนใจเกี่ยวกับตัวแปรที่มีพฤติกรรมแย่ ๆ เหล่านี้ฉันต้องการเพิกเฉยต่อผลลัพธ์ของพวกเขา แต่ฉันสงสัยว่านั่นไม่ใช่การตีความที่ถูกต้อง!

* หนึ่งคือต่อเนื่องหนึ่งคือจำนวนเต็มที่มีช่วงมากกว่า 100 และหนึ่งคือจำนวนเต็มกับช่วงของ 6 บางทีอาจ binning?


2
สิ่งที่เกี่ยวกับการใช้โมเดล Cox แบบขยายพร้อมการโต้ตอบเวลาสำหรับตัวแปรตามเวลา
Kirk

สิ่งที่เกี่ยวกับการพิจารณาตัวเลือก covariates เวลา vaying (เช่น -tvc- ใน Stata)?
Carlo Lazzaro

คำตอบ:


1

วิธีที่สง่างามที่สุดคือการใช้โมเดลการอยู่รอดแบบพารามิเตอร์ (Gompertz, Weibull, Exponential, ... ) หากคุณมีความคิดว่าอันตรายจากพื้นฐานอาจมีลักษณะอย่างไร

หากคุณต้องการอยู่กับโมเดล Cox ของคุณคุณสามารถใช้โมเดล Cox แบบขยายได้พร้อมค่าสัมประสิทธิ์ตามเวลา โปรดจำไว้ว่านอกจากนี้ยังมีรุ่นคอคส์ขยายเวลาขึ้นอยู่กับโควาเรียต - สิ่งเหล่านี้ไม่ได้แก้ปัญหาของคุณ!

สำหรับ R ดูที่นี่: http://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf


1

คู่ของความคิด -

1) ลองใช้วิธีการสร้างแบบจำลองของ Royston-Parmar เช่นhttp://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047804และการอ้างอิงในนั้น เราได้ผลลัพธ์ที่มีประโยชน์

2) การจัดกึ่งกลางและสร้างมาตรฐานตัวแปรต่อเนื่องจะมีประโยชน์เชิงตัวเลข

3) ในหลายรุ่นที่มีปัจจัยหลายระดับมีสองสามระดับที่ไม่มีข้อมูล การผสานระดับเพื่อลบสิ่งเหล่านี้ แต่ตามเกณฑ์เนื้อหาที่ดีจะมีประโยชน์มาก

โชคดี!


1

หากใช้การโต้ตอบกับเวลาที่ไม่ได้ผลคุณสามารถลองใช้ฟังก์ชั่นขั้นตอน (สำหรับข้อมูลเพิ่มเติมดูที่2016 vignett e ของTherneau )

ฟังก์ชั่นขั้นตอนแบ่งเป็นชั้น ๆ ในค่าสัมประสิทธิ์เฉพาะช่วงเวลาที่เฉพาะเจาะจง หลังจากได้เห็น Schoenfeld ที่เหลืออยู่ของคุณสำหรับค่า covariates ที่มีปัญหา (เช่นplot(cox.zph(model.coxph))) คุณต้องตรวจสอบด้วยสายตาว่าเส้นเปลี่ยนมุมที่ไหน พยายามหาจุดหนึ่งหรือสองจุดที่ดูเหมือนว่าเบต้าแตกต่างกันอย่างชัดเจน สมมติว่าสิ่งนี้เกิดขึ้นในเวลา 10 และ 20 ดังนั้นเราจะสร้างข้อมูลที่ใช้survSplit()จากsurvivalแพ็คเกจซึ่งจะสร้างกรอบข้อมูลสำหรับการจัดกลุ่มรูปแบบข้อมูลเฉพาะในเวลาดังกล่าว:

step.data <- survSplit(Surv(t1, t2, event) ~ 
                      x1 + x2,
                      data = data, cut = c(10, 20), episode = "tgroup")

จากนั้นเรียกใช้cox.phโมเดลด้วย strataฟังก์ชันเป็นการโต้ตอบกับตัวแปรที่มีปัญหา (เช่นการโต้ตอบกับเวลาอย่าเพิ่มเอฟเฟกต์หลักสำหรับเวลาหรือชั้น):

> model.coxph2 <- coxph(Surv(t1, t2, event) ~ 
                          x1 + x2:strata(tgroup), data = step.data)

และนั่นควรจะช่วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.