2851 7

[有偿编程] R语言做极大似然估计,迭代次数为1就停止,怎么办? [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

10%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
65 点
帖子
7
精华
0
在线时间
36 小时
注册时间
2018-10-7
最后登录
2019-7-13

楼主
时间快么的了 发表于 2019-4-22 20:01:44 |AI写论文
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)

数据形式附上

数据形式附上

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

报纸
风向南吹TP 学生认证  发表于 2019-4-23 17:04:10
迭代次数不是很重要,关键是看optim中convergence是不是为0,如果不是0你的解可能只是局部最优而不是全局最优
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

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

7
时间快么的了 发表于 2019-4-25 10:06:52
有没有了解r语言做极大似然估计的大神?

8
时间快么的了 发表于 2019-4-25 12:54:23
已经解决啦,ll前面多了个负号

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 07:19