當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R predict.coxph Cox 模型的預測


R語言 predict.coxph 位於 survival 包(package)。

說明

計算 coxph 擬合模型的擬合值和回歸項

用法

## S3 method for class 'coxph'
predict(object, newdata,
type=c("lp", "risk", "expected", "terms", "survival"),
se.fit=FALSE, na.action=na.pass, terms=names(object$assign), collapse,
reference=c("strata", "sample", "zero"),  ...)

參數

object

coxph 擬合的結果。

newdata

用於進行預測的可選新數據。如果缺少預測,則針對原始擬合中使用的數據幀。當使用在另一個上下文中創建的公式參數調用 coxph 時,即,在另一個函數中調用 coxph 並將公式作為參數傳遞給該函數時,查找數據集可能會出現問題。請參閱下麵的注釋。

type

預測值的類型。選項包括線性預測變量 ( "lp" )、風險評分 exp(lp) ( "risk" )、給定協變量和隨訪時間的預期事件數 ( "expected" ) 以及線性預測變量的項("terms")。受試者的生存概率等於exp(-expected)。

se.fit

如果為 TRUE,則為預測生成逐點標準誤差。

na.action

僅當存在 newdata 參數時適用,並定義新數據的缺失值操作。默認情況下包括所有觀察結果。當沒有新數據時,缺失的行為由原始擬合的 na.action 選項決定。

terms

如果 type="terms",則此參數可用於指定應包含哪些術語;默認為全部。

collapse

主題標識符的可選向量。如果指定,輸出將包含每個主題一個條目,而不是每個觀察一個條目。

reference

居中預測的參考,請參閱下麵的詳細信息

...

對於未來的方法

細節

Cox模型是相對風險模型; "linear predictor"、"risk" 和 "terms" 類型的預測均與它們所來自的樣本相關。默認情況下,每個變量的參考值是層內的平均協變量。根本原因既有統計上的,也有實踐上的。首先,Cox 模型僅預測同一層內的成對受試者之間的相對風險,因此向任何協變量添加常數(無論是總體還是僅在特定層內)對擬合結果沒有影響。其次,下遊計算取決於風險分數 exp(線性預測器),對於大於 .Machine\$double.max.exp 的線性預測器,這將成為數字溢出的犧牲品。 coxph 例程嘗試將預測變量大致置於自我保護的中心。使用 reference="strata" 選項是最安全的居中方式,因為層偶爾有不同的方式。當 predict 的結果用於進一步計算時,可能需要對所有觀察結果使用單一參考水平。使用 reference="sample" 將使用整體平均值,並與 coxph 對象的 linear.predictors 組件一致(它使用整體平均值來向後兼容舊代碼)。 type="terms" 的預測幾乎總是會傳遞到進一步的計算,因此對於這些,我們默認使用樣本作為參考。 "zero" 的引用導致不進行居中。

"expected" 類型的預測包含基線危險,因此是絕對的而不是相對的; reference 選項對這些沒有影響。這些值取決於未來受試者的隨訪時間以及協變量,因此 newdata 參數需要包含公式中的右側和左側變量。 (狀態變量不會被使用,但由於底層代碼需要重建整個公式,因此是必需的。)

包含 frailty 項的模型是一種特殊情況:由於技術困難,當存在 newdata 參數時,預測將始終是隨機效應為零。

預測向量或矩陣,或者包含預測(元素"fit")及其標準誤差(元素"se.fit")的列表(如果se.fit選項為TRUE)。

注意

一些預測可以直接從 coxph 對象獲得,而對於其他預測,例程必須具有完整的原始數據集,例如,對於 type = terms 或如果請求標準錯誤。如果 model=TRUE ,則此額外信息將保存在 coxph 對象中,否則將重建原始數據。如果知道需要此類殘差,並且保存模型信息,則總體執行速度會稍快一些。

在某些情況下,重建可能會失敗。最常見的情況是在另一個函數內部調用 coxph 並將公式作為參數之一傳遞給該封閉函數。另一種情況是數據集在原始調用和預測調用之間發生變化。在每個問題中,簡單的解決方案是將 model=TRUE 添加到原始 coxph 調用中。

例子

options(na.action=na.exclude) # retain NA in predictions
fit <- coxph(Surv(time, status) ~ age + ph.ecog + strata(inst), lung)
#lung data set has status coded as 1/2
mresid <- (lung$status-1) - predict(fit, type='expected') #Martingale resid 
predict(fit,type="lp")
predict(fit,type="expected")
predict(fit,type="risk",se.fit=TRUE)
predict(fit,type="terms",se.fit=TRUE)

# For someone who demands reference='zero'
pzero <- function(fit)
  predict(fit, reference="sample") + sum(coef(fit) * fit$means, na.rm=TRUE)

也可以看看

predictcoxphtermplot

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Predictions for a Cox model。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。