经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
我用coxph做了一个回归,算出来beta为(-0.383,-0.302),然后我写了一个cox的似然函数,将beta的值带入始终算不出来coxph$loglik里面beta=final的那个loglik值。我用beta= init带入我的程序可以得出beta=init的那个loglik值。求大神指点是否程序有问题。
- set.seed(8943)
- for (i in 1:100)
- {x1<-c(runif(100,0,1))} #协变量x1
- for (i in 1:100)
- {x2<-c(rbinom(100,1,0.5))}#协变量X2
- for (i in 1:100)
- {s<-c(runif(100,0,1))}#生存时间随机数S
- g<-c(sample(1:3,100,replace=T,prob=c(0.1,0.1,0.8)))
- for (i in 1:100){
- if (g[i]==3) g[i]<-0
- else if (g[i]==2) g[i]<-5
- else g[i]<- -5}
- t<- ((-log(s))/exp(x1*1+x2*0.5+g))^2#生存时间t
- lt<-c()
- for (i in 1:100)
- {lt<-c(runif(100,0,1)*2.990)}#删失时间lt
- deta<-c()
- for (i in 1:100){
- if (t[i]<=lt[i]) deta[i]<-1 else deta[i]<-0}#deta删失指示,1dead,0alive
- ht<-c()
- for (i in 1:100)
- {ht[i]<-min(t[i],lt[i])}
- x<- cbind(x1,x2)#协变量
- ga<- c(rep(0,100))
- mn<- data.frame(x1,x2,ht,deta,ga,g)#建立数据
- data<-mn[order(mn[,3]),]#将数据按ht的大小排序
- library(survival)
- xs<-coxph(Surv(ht, deta)~x, data)
- beta<-xs$coef# beta0
- xbl<-cbind(beta[1]*data[,1],beta[2]*data[,2],data[,5])
- co<-rowSums(xbl)
- fxj<- c(rep(0,100))
- for (d in 1:100){
- if (data[d,4]==1){
- fxj[d]<-log(sum(exp(co[d:100])))
- }
- }
- yy<- sum(data[,4]*(co-fxj))
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|