找到经验似然比
Finding the empirical likelihood ratio
我有一篇文章的作业,结果必须在区间(0.10024, 1.0917)。
作为一个具体的例子,我们采用了实体瘤患者 (n=10) 的缓解时间数据,它是 生存数据分析的统计方法,Elisa T 的略微修改(breaktie)版本. 李, 1992,
例 4.2:
3, 6.5, 6.51, 10, 12, 15, 8.4+, 4+,5.7+, and 10+.
假设我们有兴趣获得 95% 的置信区间
t = 9.8 时的累积危害,Δo (9.8)。因此 θo=Δo(9.8)。在这个
如果函数 g 是指示函数:g(t)=I[t9.8]。
使用经验似然比的 95% 置信区间,
-2logALR,因为 ∆o (9.8) 是 (0.10024, 1.0917)
请帮我得到上面的结果。谢谢你。
remissiontime<-(3,4,5.7,6.5,6.51,8.4,10,10,12,15)
status <- c(1,0,0,1,1,0,1,0,1,1)
而我的代码是(实际上我不确定这段代码)
library(survival)
library(emplik)
x1 = c(3,4,5.7,6.5,6.51,8.4,10,10,12,15)
d1 = c(1,0,0,1,1,0,1,0,1,1)
KM0 <- survfit(Surv(x1,d1) ~ 1, type="kaplan-meier", conf.type="log")
summary(KM0)
myfun <-function(t){as.numeric(t <=9.8)}
emplikH1.test(x=x1,d=d1,theta=-log(0.643),fun=myfun)
myULfun <-function(theta,x,d){
emplikH1.test(x=x1,d=d1,theta=theta,fun=function(t){as.numeric(t <= 9.8)})}
findUL(fun=myULfun,MLE =-log(0.643),x=x1,d=d1)
您提供的代码的最后一行
findUL(fun=myULfun,MLE =-log(0.643),x=x1,d=d1)
抛出错误:
Error in emplikH1.test(x = x1, d = d1, theta = theta, fun =
function(t) { : given theta is too far away from theta0
将 findUL
的 MLE
参数从 -log(0.643)
更改为 1
可以解决问题。请看下面:
findUL(fun = myULfun, MLE = 1, x = x1, d = d1)
输出,与要求一致:
$`Low`
[1] 0.1002516
$Up
[1] 1.09165
$FstepL
[1] 6.103516e-05
$FstepU
[1] 6.103516e-05
$Lvalue
[1] 3.839313
$Uvalue
[1] 3.839971
我有一篇文章的作业,结果必须在区间(0.10024, 1.0917)。
作为一个具体的例子,我们采用了实体瘤患者 (n=10) 的缓解时间数据,它是 生存数据分析的统计方法,Elisa T 的略微修改(breaktie)版本. 李, 1992, 例 4.2:
3, 6.5, 6.51, 10, 12, 15, 8.4+, 4+,5.7+, and 10+.
假设我们有兴趣获得 95% 的置信区间 t = 9.8 时的累积危害,Δo (9.8)。因此 θo=Δo(9.8)。在这个 如果函数 g 是指示函数:g(t)=I[t9.8]。
使用经验似然比的 95% 置信区间,
-2logALR,因为 ∆o (9.8) 是 (0.10024, 1.0917)
请帮我得到上面的结果。谢谢你。
remissiontime<-(3,4,5.7,6.5,6.51,8.4,10,10,12,15)
status <- c(1,0,0,1,1,0,1,0,1,1)
而我的代码是(实际上我不确定这段代码)
library(survival)
library(emplik)
x1 = c(3,4,5.7,6.5,6.51,8.4,10,10,12,15)
d1 = c(1,0,0,1,1,0,1,0,1,1)
KM0 <- survfit(Surv(x1,d1) ~ 1, type="kaplan-meier", conf.type="log")
summary(KM0)
myfun <-function(t){as.numeric(t <=9.8)}
emplikH1.test(x=x1,d=d1,theta=-log(0.643),fun=myfun)
myULfun <-function(theta,x,d){
emplikH1.test(x=x1,d=d1,theta=theta,fun=function(t){as.numeric(t <= 9.8)})}
findUL(fun=myULfun,MLE =-log(0.643),x=x1,d=d1)
您提供的代码的最后一行
findUL(fun=myULfun,MLE =-log(0.643),x=x1,d=d1)
抛出错误:
Error in emplikH1.test(x = x1, d = d1, theta = theta, fun = function(t) { : given theta is too far away from theta0
将 findUL
的 MLE
参数从 -log(0.643)
更改为 1
可以解决问题。请看下面:
findUL(fun = myULfun, MLE = 1, x = x1, d = d1)
输出,与要求一致:
$`Low`
[1] 0.1002516
$Up
[1] 1.09165
$FstepL
[1] 6.103516e-05
$FstepU
[1] 6.103516e-05
$Lvalue
[1] 3.839313
$Uvalue
[1] 3.839971