Correction TD 2
>o=cbind(x=pmin(t,c), d=(t<=c)) 1) On utilise la formule du KM
> x=o[,1]
> d=o[,2]
> s=order(x)
> os=cbind(x[s],d[s])
> xs=os[,1]
> ds=os[,2]
> i=1:100
> ksp=ds[i]/(100-i+1)
> km=cumprod(1-ksp)
> ff=cbind(fx=c(0,xs[-100]),fkm=c(1,km[-100]),fd=c(1,ds[-100]))
> f=ff[ff[,3]==1,1:2]
> plot(f[,1],f[,2],pch=".")
> i=1:(length(f[,1])-1)
> segments(f[i,1],f[i,2],f[i+1,1],f[i,2])
> curve(exp(-x^2/4),0,4,add=T,col="red")
> title("Estimateur de KM et fonction S")
0 1 2 3
0.00.20.40.60.81.0
f[, 1]
f[, 2]
Estimateur de KM et fonction S
library(survival)
km=survfit(Surv(x,d)~1) plot(km)
0 1 2 3 4
0.00.20.40.60.81.0
2)
> nels=cumsum(ksp)
> ff=cbind(fx=c(0,xs[-100]),fn=c(0,nels[-100]),fd=c(1,ds[-100]))
> f=ff[ff[,3]==1,1:2]
> plot(f[,1],f[,2],pch=".")
> i=1:(length(f[,1])-1)
> segments(f[i,1],f[i,2],f[i+1,1],f[i,2])
> curve(x^2/4,0,4,add=T,col="red")
> title("Estimateur de Nelson et fonction de hasard")
plot(km$time, -log(km$surv),type="s")
0 1 2 3
0.01.02.03.0
f[, 1]
f[, 2]
Estimateur de Nelson et fonction de hasard
1 2 3 4
0.00.51.01.52.02.5
km$time
-log(km$surv)
3) Les estimateurs convergent 4)
p=ksp*km
hhat=function(x,an){(1/an)*sum(ksp*dnorm((x-xs)/an))}
htilde1=function(x,an){(1/an)*sum(p*dnorm((x-xs)/an))}
htilde2=function(x,an){(1/(100*an))*sum(ds*dnorm((x-xs)/an))/min(f[f[,1]<=x,2])}
Comparaison des 3 estimateurs :
Choix de la fenêtre optimale pour chacun d’eux :
> ase=function(hest,a){hh=numeric(100); for(i in 1:100) hh[i]=hest(xs[i],a); as=mean((hh- xs/2)^2);print(as)}
>a=seq(0.1,4,by=0.1)
>aa=numeric(length(a))
>for(i in 1:length(a)){aa[i]=ase(hhat,a[i])}
>aaa=cbind(a,aa)
> aopt=aaa[aaa[,2]==min(aa),1]
> for(i in 1:100){hh[i]=hhat(xs[i],aopt)}
>plot(xs,hh,pch=”.”)
>curve(x/2,add=T)
>for(i in 1:length(a)){aa[i]=ase(htilde1,a[i])}
>aaa=cbind(a,aa)
> aopt=aaa[aaa[,2]==min(aa),1]
> for(i in 1:100){hh[i]=htilde1(xs[i],aopt)}
>points(xs,hh,pch=”.”,col=”red”)
>for(i in 1:length(a)){aa[i]=ase(htilde2,a[i])}
>aaa=cbind(a,aa)
> aopt=aaa[aaa[,2]==min(aa),1]
> for(i in 1:100){hh[i]=htilde2(xs[i],aopt)}
>points(xs,hh,pch=”.”,col=”blue”)
>title(“hhat noir, htilde1 rouge, htilde2 bleu”)
1 2 3 4
0.51.01.5
xs
hh