全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2779 7
2019-04-22
悬赏 5 个论坛币 未解决
> data<-read.csv("C:/Users/sjr88/Desktop/0421.csv",header=T)
> x1 <- data[,1]
> x2 <- data[,2]
> d <- data[,5]
> mu <- data[,6]
>
> #对数似然函数
> logLikweibullcox <- function(param){
+   beta <- param[1]
+   yita <- param[2]
+   gama1 <- param[3]
+   gama2 <- param[4]
+   ll <-sum(d*(log(abs(beta))+(beta-1)*log(abs(mu))-beta*log(abs(yita))+(x1*gama1+x2*gama2))-((mu/yita)^beta)*exp(x1*gama1+x2*gama2))
+   return(-ll)}
> #一节偏导矩阵
> logLikGradValues <-function(param){
+   beta <- param[1]
+   yita <- param[2]
+   gama1 <- param[3]
+   gama2 <- param[4]
+   logLikGradValues <- numeric(4)
+   logLikGradValues[1]<- sum(d*(1/beta+log(abs(mu))-log(abs(yita)))-(mu/yita)^beta*log(abs(mu/yita))*exp(x1*gama1+x2*gama2))
+   logLikGradValues[2]<- sum(d*(-beta/yita)+beta/yita*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikGradValues[3]<- sum(d*(x1)-x1*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikGradValues[4]<- sum(d*(x2)-x2*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   return(logLikGradValues)}
> #二阶偏导矩阵
> logLikeHessValues <-function(param){
+   beta <- param[1]
+   yita <- param[2]
+   gama1 <- param[3]
+   gama2 <- param[4]
+   logLikeHessValues <- matrix(0,nrow = 4,ncol = 4)
+   logLikeHessValues[1,1] <- sum(d*(-1/beta^2)-(mu/beta)^beta*(log(abs(mu/yita)))^2*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[2,2] <- sum(d*(beta/yita^2)-(mu/yita)^beta*(beta^2+beta)/yita^2*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[3,3] <- sum(-x1^2*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[4,4] <- sum(-x2^2*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[1,2] <- sum(d*(-1/yita)+1/yita*(mu/yita)^beta*(1+beta*log(abs(mu/yita)))*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[2,1] <- logLikeHessValues[1,2]
+   logLikeHessValues[1,3] <- sum(-x1*(mu/yita)^beta*log(abs(mu/yita))*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[3,1] <- logLikeHessValues[1,3]
+   logLikeHessValues[2,3] <- sum(x1*beta/yita*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[3,2] <- logLikeHessValues[2,3]
+   logLikeHessValues[1,4] <- sum(-x2*(mu/yita)^beta*log(abs(mu/yita))*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[4,1] <- logLikeHessValues[1,4]
+   logLikeHessValues[2,4] <- sum(x2*beta/yita*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[4,2] <- logLikeHessValues[2,4]
+   logLikeHessValues[3,4] <- sum(-x1*x2*(mu/yita)^beta*exp(x1*gama1+x2*gama2))
+   logLikeHessValues[4,3] <- logLikeHessValues[3,4]
+   return(logLikeHessValues)}
> #?maxLik
>
> mle <- maxLik(logLikweibullcox,grad=logLikGradValues,hess=logLikeHessValues,start = c(beta =3,yita = 500,gama1 =-2, gama2 =3),)
> print(summary(mle))
--------------------------------------------
Maximum Likelihood estimation
Newton-Raphson maximisation, 1 iterations
Return code 3: Last step could not find a value above the current.
Boundary of parameter space?  
Consider switching to a more robust optimisation method temporarily.
Log-Likelihood: 12340.08
4  free parameters
Estimates:
        Estimate Std. error  t value Pr(> t)   
beta   3.000e+00  4.620e-06 649362.6  <2e-16 ***
yita   5.000e+02  2.358e+00    212.0  <2e-16 ***
gama1 -2.000e+00  3.053e-02    -65.5  <2e-16 ***
gama2  3.000e+00  1.814e-02    165.4  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
--------------------------------------------

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-4-22 20:03:28
上面附上代码,换了几次的初始值还是没有用,有大神知道怎么回事?怎么处理啊?第一次发帖求助,thx!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-22 20:09:34
附上数据形式
附件列表
123.png

原图尺寸 16.91 KB

数据形式附上

数据形式附上

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-23 15:38:52
您好,如果您的求助没有解决,请到项目交易发布需求,会有更快更专业的用户帮助您 https://bbs.pinggu.org/prj/
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-23 17:04:10
迭代次数不是很重要,关键是看optim中convergence是不是为0,如果不是0你的解可能只是局部最优而不是全局最优
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-23 18:49:58
风向南吹TP 发表于 2019-4-23 17:04
迭代次数不是很重要,关键是看optim中convergence是不是为0,如果不是0你的解可能只是局部最优而不是全局最 ...
问题就是不管设置什么初始值都是一样,结果就是初始值的结果,迭代次数为1.不知道怎么回事
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群