-
1 讲稿
-
2 实验课件
-
3 人口普查资料
根据生命表和生存函数,可以使用Excel的图标功能或者R软件绘制各种生存函数曲线.
1 实际死亡率曲线
在第三套生命表中非养老类业务表女表CL2中选取死亡概率单元格B2-B107区域,然后使用“插入-图表”,在其中选用“折线图”,点击后选择折线图的类型即可.
2 De Moiver寿命分布死亡率曲线
DeMoiver寿命分布假设终极年龄岁,根据其死亡率可以绘制其死亡率曲线.
(1)在第一列输入年龄;
(2)在第二列计算死亡率,将光标移至单元格B2,在单元格里输入引号内的符号“1/(105-A2)”,然后按Enter键;其次用鼠标点B2单元格右下角,向下拖动填充,就可得出DeMoiver寿命分布中各年龄的死亡率.
(3)选取死亡概率单元格B2-B107区域,然后使用“插入-图表”,在其中选用“折线图”,点击后选择折线图的类型即可.
3 De Moiver寿命分布死亡率曲线与实际死亡率曲线的比较
在表格中分别输入De Moiver寿命分布死亡率和实际死亡率,选择单元格B2-B106区域,然后使用“插入-图表”,在其中选用“折线图”,点击后选择折线图的类型;在生成的死亡率曲线图中点击右键,点击“数据选择”选项,即可打开选择数据源对话框.
4 生存函数曲线
我们可以在R中定义sdf函数以绘制生存分布函数:
> sdf <- function (x)
+ {
+ x <- sort(x)
+ n <- length(x)
+ if (n < 1)
+ stop("'x' must have 1 or morenon-missing values")
+ vals <- unique(x)
+ rval <- approxfun(vals,1-cumsum(tabulate(match(x, vals)))/n,
+ method = "constant", yleft = 1,yright = 0, f = 0, ties = "ordered")
+ class(rval) <- c("ecdf","stepfun", class(rval))
+ assign("nobs", n, envir =environment(rval))
+ attr(rval, "call") <-sys.call()
+ rval
+ }
考虑指数持续时间X和确定性(和常数)检查:
>library(survival)
>set.seed(1)
>n <- 20; X <- rexp(n); C <- rep(2,n)
>T <- apply(data.frame(X,C),1,min)
>D <- (T==X)*1
>SampleData <- Surv(T,D)
> t <- seq(0,2,by=.01)
>plot(sdf(t),verticals=TRUE,do.points = FALSE,main="")
> lines(t,exp(-t),lwd=2)
生存函数的估计由以下实现:
>plot(survfit(Surv(T,D)~1))
>lines(t,exp(-t),lwd=2)


