0

1) 在以下示例中,如何将 y 轴更改为“适合”的“优势比”、“死亡率”和“死亡率”?

2) 在以下示例中,如何将“fit2”的 y 轴更改为“风险比”?

library(Hmisc)
library(survival)
library(rms)

data(pbc)
d <- pbc
rm(pbc)
d$died <- ifelse(d$status == 2, 1, 0)
d$status <- ifelse(d$status != 0, 1, 0)

ddist <- datadist(d)
options(datadist='ddist')

fit <- lrm(status ~ rcs(age, 4), data=d)
(an <- anova(fit))
plot(Predict(fit), anova=an, pval=TRUE)

fit2 <- cph(Surv(time, status) ~  rcs(age, 4), data=d)
(an2 <- anova(fit2))
plot(Predict(fit2), anova=an, pval=TRUE)

我期待着您的帮助!

更新 1 在 BondedDust 的回答之后,我写了以下内容:

# probability
getProbability <- function(x) {
     exp(x)/(1+exp(x))*100
}

fit <- lrm(status ~ rcs(age, 4), data=d)
(an <- anova(fit))
plot(Predict(fit, fun=getProbability), anova=an, pval=TRUE, ylab="Probability of death [%]")

# overall probability to die
table(d$status)
round(table(d$status)[[2]]/sum(table(d$status))*100, digits=1) # = 44.5%

由于总的死亡概率是 44.5%,所以预测概率的计算和结果图对我作为非统计学家来说似乎是正确的,不是吗?

4

1 回答 1

2

如果你想要优势比,那么你需要添加一个fun=-argument 来转换为优势比比例:

plot(Predict(fit,fun=exp), anova=an, pval=TRUE, ylab="Odds ratio")

我不确定我知道你的意思changing to the "probability of mortality", and "mortality rate" for "fit"。逆 logit 函数是exp(x)/(1+exp(x)),但为了从系数构建事件或速率的估计值,您需要合并截距项。也许您可以从 fit 对象的拟合值组件中提取一些有用的东西来满足您的作业问题的要求。

> names(fit)
 [1] "freq"              "sumwty"            "stats"             "fail"             
 [5] "coefficients"      "var"               "u"                 "deviance"         
 [9] "est"               "non.slopes"        "linear.predictors" "penalty.matrix"   
[13] "info.matrix"       "weights"           "call"              "Design"           
[17] "scale.pred"        "terms"             "assign"            "na.action"        
[21] "fail"              "interceptRef"      "nstrata"          
> str(fit$linear.predictors)
 Named num [1:418] -0.187 -0.235 0.41 -0.24 -0.538 ...
 - attr(*, "names")= chr [1:418] "1" "2" "3" "4" ...

与用于转换对数优势与优势比的系数相同的方法适用于将对数风险转换为风险比:

plot(Predict(fit2, fun=exp), anova=an, pval=TRUE, ylab="Hazard ratio")
于 2015-07-22T00:27:17.743 回答