楼主: mayaolan66
1452 1

[问答] 大家帮忙看看这个程序哪里出问题了,新手求助,多谢 [推广有奖]

  • 0关注
  • 7粉丝

博士生

82%

还不是VIP/贵宾

-

威望
0
论坛币
48 个
通用积分
4.0501
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2721 点
帖子
165
精华
0
在线时间
251 小时
注册时间
2012-7-20
最后登录
2025-12-4

楼主
mayaolan66 发表于 2014-12-13 09:13:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想要调用Rsolnp包求极大似然估计,程序如下:
Xi <- seq(-1,by=0.001,0.999)
f1 <- (1/(sqrt(2*pi)*sqrt(0.01)))*exp(-(Xi+0.5)^2/0.02)
f2 <- 1/(sqrt(2*pi)*sqrt(0.05))*exp(-(Xi-0.5)^2/0.1)
t <-(0.3+0.25*Xi+f1+f2)^(-1)
#plot(Xi,t^(-1),col="blue",type="l")
library(actuar)
Yi <- rburr(2000,1,t,1)
z <- cbind(Xi,Yi)
o <- order(Yi,Xi)
sort_z <- z[o, ]
v <- sort_z[,2]
k <-40
n<-length(Yi)
u <- v[n-k]
z.samp = sort_z[(2000-k+1):2000,]
X <- z.samp[,1]
Y <- z.samp[,2]
h <- 0.1
library(Rsolnp)
library(parallel)
library(truncnorm)
ss <- rep(0,n)
for(j in 1:n)
{
x=Xi[j]
# the objective function to minimize
f <- function(b)                                                                                                                                                                                                                                                                                                        
{                                                                                                            
  (-1/k)*sum( ( log(b[1]+b[2]*(X-x)) + (1+(b[3]+b[4]*(X-x))^(-1)) * log(1 + Y*( (b[3]+b[4]*(X-x))/(b[1]+b[2]*(X-x))))    )*exp((-1/2)*((X-x)/h)^2) )
}
# the inequality function                                      
inequa11 = function(b) {                          
z1=b[1]+b[2]*(X-x)
z2=b[3]+b[4]*(X-x)
return(c(z1,z2))
}
# the lower limit for inequalities
ineqLB = c(0,0)
ineqUB = c(10,5)
# initial value
b0 = c(1,0,1,0)
# solving the problem                                                                                                                                                                                                                                                            
ss[j] = solnp(b0, fun = f, ineqfun = inequa11, ineqLB = ineqLB,control=list(outer.iter=400)) 问:这里加什么语句可以把b[3]的解返回给ss[j],我知道调用multiroot( )时,后面用$root[3]可以返回b[3]给ss[j]
}


运行会有 Error:solnp-->error: inequality function returns vector of different length to inequality lower bounds
新手上路,求大神指点,焦急等待中,不甚感激
二维码

扫码加我 拉你入群

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

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

关键词:新手求助 极大似然估计 极大似然 soln 似然估计 程序

沙发
DM小菜鸟 发表于 2015-2-2 13:39:56
$root[3]
试一试

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

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