楼主: 木沐莯霂
1914 2

[问答] R语言构造函数求极大似然 [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
79 点
帖子
5
精华
0
在线时间
8 小时
注册时间
2020-5-23
最后登录
2021-3-29

楼主
木沐莯霂 发表于 2020-5-23 16:07:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问一下大佬们,我用的全概率模型求极大似然,但是一直运行出来是NA in the initial gradient,不知道什么原因,公式应该没写错,数据有1000个也不多,都是10-100的数。换了几个初值都不行。
x0 <- read.csv("C:/Users/li--hai/Desktop/WXW/……")
> dat0 <- x0age>n<−length(dat0)>Z0<−x0Covariate
> # 令z1=(1,1)',z2=(1,0)',z3=(0,1)',z4=(0,0)'
> f1 <- function(beta) {
+   # 令β=(β1,β2),构造出m(1),m(2),m(3),m(4)
+   m <- 0
+   for(i in 1:n){
+     if(Z0[i]==1){
+     m[i] <- exp(1)
+     }
+     else if(Z0[i]==2){
+       m[i] <- exp(beta[2])
+     }
+     else if(Z0[i]==3){
+       m[i] <- exp(beta[3])
+     }
+     else{
+       m[i] <- exp(beta[2]+beta[3])
+     }
+   }
+   # 带入pdf,相乘取对数
+   f <- 0
+   for(i in 1:n){
+     f[i] <- beta[1]*m[i]*exp(-beta[1]*dat0[i]*m[i])
+   }
+   return(log(prod(f)))
+ }
> maxLik(f1, start=c(0.001,0,0))$estimate
Error in maxNRCompute(fn = function (theta, fnOrig, gradOrig = NULL, hessOrig = NULL,  :
   NA in the initial gradient

二维码

扫码加我 拉你入群

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

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

关键词:极大似然 R语言 gradient Initial Grad R语言 极大似然 全概率模型 运行错误

沙发
木沐莯霂 发表于 2020-5-23 16:07:36
> x0 <- read.csv("C:/Users/li--hai/Desktop/WXW/2020疫情学习/非寿险/作业5/Death data.csv")
> dat0 <- x0$age
> n <- length(dat0)
> Z0 <- x0$Covariate
> # 令z1=(1,1)',z2=(1,0)',z3=(0,1)',z4=(0,0)'
> f1 <- function(beta) {
+   # 令β=(β1,β2),构造出m(1),m(2),m(3),m(4)
+   m <- 0
+   for(i in 1:n){
+     if(Z0[i]==1){
+     m[i] <- exp(1)
+     }
+     else if(Z0[i]==2){
+       m[i] <- exp(beta[2])
+     }
+     else if(Z0[i]==3){
+       m[i] <- exp(beta[3])
+     }
+     else{
+       m[i] <- exp(beta[2]+beta[3])
+     }
+   }
+   # 带入pdf,相乘取对数
+   f <- 0
+   for(i in 1:n){
+     f[i] <- beta[1]*m[i]*exp(-beta[1]*dat0[i]*m[i])
+   }
+   return(log(prod(f)))
+ }
> maxLik(f1, start=c(0.001,0,0))$estimate
Error in maxNRCompute(fn = function (theta, fnOrig, gradOrig = NULL, hessOrig = NULL,  :
  NA in the initial gradient

藤椅
木沐莯霂 发表于 2020-5-23 16:43:19
把return里面的改成sum(log(f)),就能算出来,可能是量级的问题

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 19:52