我正在嘗試創建一個只有一個解釋變數的 Cox 比例風險模型。要執行似然比測驗,我知道我需要一個完整的簡化模型。我還知道,完整模型將是每個組的單獨平均值,而簡化模型將使用整個資料集的整體平均值。如何確保在 R 中正確設定?在此模型中,如果患者進行了心臟手術,則 z 為 1,否則 z 為 0
我有:
model<-coxph(Surv(time,delta)~z,method='breslow',data=heartdata)
X.lr <- 2*(model$loglik[2]-model$loglik[1])
這能達到嗎?我得到了一個答案我只想知道這是否是一個完整的模型和簡化的模型,因為我沒有其他變數可以使用?
uj5u.com熱心網友回復:
在這種情況下,這確實有效,但我認為使用update()and有一個更好/更透明的解決方案anova()(我什至不知道coxph模型的對數似然組件包括完整和零偏差)。
使用包中的內置資料集survival:
## drop NAs so we are using the same data set for full & reduced models
lungna <- na.omit(lung)
## fit full model
m1 <- coxph(Surv(time, status) ~ ph.ecog, data=lungna)
## update model to fit intercept only (` ~ 1 ` replaces the RHS of the formula):
## ~ 1 means "intercept only" in R formula notation
m0 <- update(m1, . ~ 1)
## anova() runs a likelihood-ratio test
anova(m0,m1)
結果:
Analysis of Deviance Table
Cox model: response is Surv(time, status)
Model 1: ~ 1
Model 2: ~ ph.ecog
loglik Chisq Df P(>|Chi|)
1 -508.12
2 -501.91 12.409 1 0.0004273 ***
您可以確認2*diff(m1$loglik)給出了 12.409,與anova()偏差(“Chisq”)差異pchisq(chisq_val, df = 1, lower.tail = FALSE)報告的值相同,并且給出了報告的 p 值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/375183.html
