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


R pseudo 生存的偽值。


R語言 pseudo 位於 survival 包(package)。

說明

從生存曲線生成偽值。

用法

pseudo(fit, times, type, addNA=TRUE, data.frame=FALSE, minus1=FALSE, ...)

參數

fit

survfit 對象,或繼承該類的對象。

times

時間點向量,在該時間點評估偽值。

type

值的類型,狀態 pstate 中的概率、累積危險 cumhaz 或狀態 sojourn 中的預期停留時間。

addNA

如果由於 fit 對象中缺少值而刪除了任何觀察結果,請將這些行(作為 NA)添加到返回中。這會導致偽結果與原始數據幀匹配。

data.frame

如果為 TRUE,則將 "long" 形式的數據作為 data.frame 返回,其中 id、時間和偽值作為變量。

minus1

使用 n-1 作為乘數而不是 n

.

...

residuals.survfit 函數的其他參數,該函數完成大部分工作,例如 collapseweighted

細節

該函數根據一階泰勒級數計算偽值,也稱為"infinitesimal jackknife" (IJ) 或"dfbeta" 殘差。為了完全正確,這些結果可能被稱為“IJ 偽值”,甚至是偽psuedo-values。然而,對於中等到大數據,結果值在數值上幾乎與普通折刀相同。

這種方法的主要優點是計算速度。其他特征(不好或壞)是,它們將與其他生存包估計的穩健標準誤差一致,這些估計基於 IJ,並且對受試者的估計平均值正是基本的生存估計。

對於 type 變量, survpstate 可接受的同義詞,而 rmstrmts 相當於 sojourn 。所有這些都不區分大小寫。

該例程的結果隻是 IJ 值的 n 倍,其中 n 是受試者的數量。 (如果包含 survfit 調用和 id 選項,則 n 是唯一 id 值的數量,否則是數據集中的行數。)針對 Aalen-Johansen 估計的所有變體都明確定義了 IJ 值,由 survfit 函數計算;事實上,它們是結果標準誤差的基礎。然而,對 pseudo-values 屬性的理解仍在不斷發展。對於最簡單的情況 (Kaplan-Meier)、競爭風險以及相應的停留時間,有效性已得到證明。另一方麵,當數據包含left-truncation(P.K. Andersen,個人通訊)以及累積危險的pseudo-values時,必須小心。隨著理解的發展,將此例程的結果視為更複雜模型的研究工具,而不是生產工具。

向量、矩陣或數組。第一個維度始終是 fit 對象中的觀測值數量,與原始數據集的順序相同(減去創建 survfit 對象時刪除的任何缺失值);第二個(如果適用)對應於 fit$states ,例如,多狀態生存,以及所選時間點的最後一個維度。 (如果給定 id 有多行,則每個唯一 id 隻有一個偽值。)

對於 data.frame 選項,包含 id、時間和偽值的數據幀。如果原始 survfit 調用包含 id 語句,則 id 列中的值將從該變量中獲取。如果 id 語句具有簡單的形式,例如 id = patno ,則 id 列的名稱將為 ‘patno’,否則將命名為“(id)”。

注意

如果在 survfit 調用中使用 model=TRUE 選項,代碼會稍微快一些。如果在另一個函數中使用 survfit/pseudo 對,這可能是必要的。

例子

fit1 <- survfit(Surv(time, status) ~ 1, data=lung)
yhat <- pseudo(fit1, times=c(365, 730))
dim(yhat)
lfit <- lm(yhat[,1] ~ ph.ecog + age + sex, data=lung)

# Restricted Mean Time in State (RMST) 
rms <- pseudo(fit1, times= 730, type='RMST') # 2 years
rfit <- lm(rms ~ ph.ecog + sex, data=lung)
rhat <- predict(rfit, newdata=expand.grid(ph.ecog=0:3, sex=1:2), se.fit=TRUE)
# print it out nicely
temp1 <- cbind(matrix(rhat$fit, 4,2))
temp2 <- cbind(matrix(rhat$se.fit, 4, 2))
temp3 <- cbind(temp1[,1], temp2[,1], temp1[,2], temp2[,2])
dimnames(temp3) <- list(paste("ph.ecog", 0:3), 
                        c("Male RMST", "(se)", "Female RMST", "(se)"))

round(temp3, 1)
# compare this to the fully non-parametric estimate
fit2 <- survfit(Surv(time, status) ~ ph.ecog, data=lung)
print(fit2, rmean=730)
# the estimate for ph.ecog=3 is very unstable (n=1), pseudovalues smooth it.
#
# In all the above we should be using the robust variance, e.g., svyglm, but
#  a recommended package can't depend on external libraries.
# See the vignette for a more complete exposition.

參考

PK Andersen and M Pohar-Perme, Pseudo-observations in surivival analysis, Stat Methods Medical Res, 2010; 19:71-99

也可以看看

residuals.survfit

相關用法


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