Augment 接受模型對象和數據集,並添加有關數據集中每個觀察值的信息。最常見的是,這包括 .fitted
列中的預測值、.resid
列中的殘差以及 .se.fit
列中擬合值的標準誤差。新列始終以 .
前綴開頭,以避免覆蓋原始數據集中的列。
用戶可以通過 data
參數或 newdata
參數傳遞數據以進行增強。如果用戶將數據傳遞給 data
參數,則它必須正是用於擬合模型對象的數據。將數據集傳遞給 newdata
以擴充模型擬合期間未使用的數據。這仍然要求至少存在用於擬合模型的所有預測變量列。如果用於擬合模型的原始結果變量未包含在 newdata
中,則輸出中不會包含 .resid
列。
根據是否給出 data
或 newdata
,增強的行為通常會有所不同。這是因為通常存在與訓練觀察(例如影響或相關)測量相關的信息,而這些信息對於新觀察沒有有意義的定義。
為了方便起見,許多增強方法提供默認的 data
參數,以便 augment(fit)
將返回增強的訓練數據。在這些情況下,augment 嘗試根據模型對象重建原始數據,並取得了不同程度的成功。
增強數據集始終以 tibble::tibble 形式返回,其行數與傳遞的數據集相同。這意味著傳遞的數據必須可強製轉換為 tibble。如果預測變量將模型作為協變量矩陣的一部分輸入,例如當模型公式使用 splines::ns()
、 stats::poly()
或 survival::Surv()
時,它會表示為矩陣列。
我們正在定義適合各種 na.action
參數的模型的行為,但目前不保證數據丟失時的行為。
用法
# S3 method for coxph
augment(
x,
data = model.frame(x),
newdata = NULL,
type.predict = "lp",
type.residuals = "martingale",
...
)
參數
- x
-
從
survival::coxph()
返回的coxph
對象。 - data
-
base::data.frame 或
tibble::tibble()
包含用於生成對象x
的原始數據。默認為stats::model.frame(x)
,以便augment(my_fit)
返回增強的原始數據。不要將新數據傳遞給data
參數。增強將報告傳遞給data
參數的數據的影響和烹飪距離等信息。這些度量僅針對原始訓練數據定義。 - newdata
-
base::data.frame()
或tibble::tibble()
包含用於創建x
的所有原始預測變量。默認為NULL
,表示沒有任何內容傳遞給newdata
。如果指定了newdata
,則data
參數將被忽略。 - type.predict
-
指示要使用的預測類型的字符。傳遞給
stats::predict()
泛型的type
參數。允許的參數因模型類而異,因此請務必閱讀predict.my_class
文檔。 - type.residuals
-
指示要使用的殘差類型的字符。傳遞給
stats::residuals()
泛型的type
參數。允許的參數因模型類而異,因此請務必閱讀residuals.my_class
文檔。 - ...
-
附加參數。不曾用過。僅需要匹配通用簽名。注意:拚寫錯誤的參數將被吸收到
...
中,並被忽略。如果拚寫錯誤的參數有默認值,則將使用默認值。例如,如果您傳遞conf.lvel = 0.9
,所有計算將使用conf.level = 0.95
進行。這裏有兩個異常:
細節
當使用 na.action = "na.omit"
執行建模時(這是典型的默認設置),初始數據中帶有 NA 的行將完全從增強 DataFrame 中省略。當使用 na.action = "na.exclude"
執行建模時,應提供原始數據作為第二個參數,此時增強數據將包含這些行(通常用 NA 代替新列)。如果未向 augment()
和 na.action = "na.exclude"
提供原始數據,則會引發警告並刪除不完整的行。
也可以看看
其他 coxph 整理器:glance.coxph()
、tidy.coxph()
其他生存整理器:augment.survreg()
, glance.aareg()
, glance.cch()
, glance.coxph()
, glance.pyears()
, glance.survdiff()
, glance.survexp()
, glance.survfit()
, glance.survreg()
, tidy.aareg()
, tidy.cch()
, tidy.coxph()
, tidy.pyears()
, tidy.survdiff()
, tidy.survexp()
, tidy.survfit()
, tidy.survreg()
例子
# load libraries for models and data
library(survival)
# fit model
cfit <- coxph(Surv(time, status) ~ age + sex, lung)
# summarize model fit with tidiers
tidy(cfit)
#> # A tibble: 2 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 age 0.0170 0.00922 1.85 0.0646
#> 2 sex -0.513 0.167 -3.06 0.00218
tidy(cfit, exponentiate = TRUE)
#> # A tibble: 2 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 age 1.02 0.00922 1.85 0.0646
#> 2 sex 0.599 0.167 -3.06 0.00218
lp <- augment(cfit, lung)
risks <- augment(cfit, lung, type.predict = "risk")
expected <- augment(cfit, lung, type.predict = "expected")
glance(cfit)
#> # A tibble: 1 × 18
#> n nevent statistic.log p.value.log statistic.sc p.value.sc
#> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 228 165 14.1 0.000857 13.7 0.00105
#> # ℹ 12 more variables: statistic.wald <dbl>, p.value.wald <dbl>,
#> # statistic.robust <dbl>, p.value.robust <dbl>, r.squared <dbl>,
#> # r.squared.max <dbl>, concordance <dbl>, std.error.concordance <dbl>,
#> # logLik <dbl>, AIC <dbl>, BIC <dbl>, nobs <int>
# also works on clogit models
resp <- levels(logan$occupation)
n <- nrow(logan)
indx <- rep(1:n, length(resp))
logan2 <- data.frame(
logan[indx, ],
id = indx,
tocc = factor(rep(resp, each = n))
)
logan2$case <- (logan2$occupation == logan2$tocc)
cl <- clogit(case ~ tocc + tocc:education + strata(id), logan2)
tidy(cl)
#> # A tibble: 9 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 toccfarm -1.90 1.38 -1.37 1.70e- 1
#> 2 toccoperatives 1.17 0.566 2.06 3.91e- 2
#> 3 toccprofessional -8.10 0.699 -11.6 4.45e-31
#> 4 toccsales -5.03 0.770 -6.53 6.54e-11
#> 5 tocccraftsmen:education -0.332 0.0569 -5.84 5.13e- 9
#> 6 toccfarm:education -0.370 0.116 -3.18 1.47e- 3
#> 7 toccoperatives:education -0.422 0.0584 -7.23 4.98e-13
#> 8 toccprofessional:education 0.278 0.0510 5.45 4.94e- 8
#> 9 toccsales:education NA 0 NA NA
glance(cl)
#> # A tibble: 1 × 18
#> n nevent statistic.log p.value.log statistic.sc p.value.sc
#> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 4190 838 666. 1.90e-138 682. 5.01e-142
#> # ℹ 12 more variables: statistic.wald <dbl>, p.value.wald <dbl>,
#> # statistic.robust <dbl>, p.value.robust <dbl>, r.squared <dbl>,
#> # r.squared.max <dbl>, concordance <dbl>, std.error.concordance <dbl>,
#> # logLik <dbl>, AIC <dbl>, BIC <dbl>, nobs <int>
library(ggplot2)
ggplot(lp, aes(age, .fitted, color = sex)) +
geom_point()
ggplot(risks, aes(age, .fitted, color = sex)) +
geom_point()
ggplot(expected, aes(time, .fitted, color = sex)) +
geom_point()
相關用法
- R broom augment.clm 使用來自 clm 對象的信息增強數據
- R broom augment.betamfx 使用來自 betamfx 對象的信息增強數據
- R broom augment.robustbase.glmrob 使用來自 glmrob 對象的信息增強數據
- R broom augment.rlm 使用來自 rlm 對象的信息增強數據
- R broom augment.htest 使用來自(n)個 htest 對象的信息來增強數據
- R broom augment.speedlm 使用來自 speedlm 對象的信息增強數據
- R broom augment.felm 使用來自 (n) 個 felm 對象的信息來增強數據
- R broom augment.smooth.spline 整理一個(n)smooth.spline對象
- R broom augment.drc 使用來自 a(n) drc 對象的信息增強數據
- R broom augment.decomposed.ts 使用來自 decomposed.ts 對象的信息增強數據
- R broom augment.poLCA 使用來自 poLCA 對象的信息增強數據
- R broom augment.lm 使用來自 (n) lm 對象的信息增強數據
- R broom augment.rqs 使用來自 (n) 個 rqs 對象的信息來增強數據
- R broom augment.polr 使用來自 (n) 個 polr 對象的信息增強數據
- R broom augment.plm 使用來自 plm 對象的信息增強數據
- R broom augment.nls 使用來自 nls 對象的信息增強數據
- R broom augment.gam 使用來自 gam 對象的信息增強數據
- R broom augment.fixest 使用來自(n)個最固定對象的信息來增強數據
- R broom augment.survreg 使用來自 survreg 對象的信息增強數據
- R broom augment.rq 使用來自 a(n) rq 對象的信息增強數據
- R broom augment.Mclust 使用來自 Mclust 對象的信息增強數據
- R broom augment.nlrq 整理 a(n) nlrq 對象
- R broom augment.robustbase.lmrob 使用來自 lmrob 對象的信息增強數據
- R broom augment.lmRob 使用來自 lmRob 對象的信息增強數據
- R broom augment.mlogit 使用來自 mlogit 對象的信息增強數據
注:本文由純淨天空篩選整理自等大神的英文原創作品 Augment data with information from a(n) coxph object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。