全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1997 4
2015-05-12
以下是本人的程序,打算模拟100次,前26次都好着呢,可执行到27次时报错,原因是:
Error in stode(y, time, func, parms = parms, ...) :
  Model function must return a list of values, of which first element has length =length of y
不知道什么原因啊?本人调用的是rootslove 包啊

具体程序:
d <- 100
M_1 <- matrix(0,nrow=500,ncol=d)
M_2 <- matrix(0,nrow=500,ncol=d)

for(m in 1:d)
{

X <- matrix(0,nrow=500,ncol=2)
for(i in 1:500)
{
for(j in 1:2)
  {
   X[i,j] <- runif(1,-sqrt(3),sqrt(3))   
     }
   }

u0 <- seq(0,by=0.002,0.999)
a <- rep(0,500)
U <- rep(0,500)
Y <- rep(0,500)
b1 <- rep(0,500)
b2 <- rep(0,500)
for(k in 1:500)
{
b1[k] <- 2*sin(4*u0[k])
b2[k] <- 1-( 2*sin(4*u0[k]) )
a[k] <- exp( X[k,1]*b1[k]+  b2[k]*X[k,2] )
U[k] <- runif(1)
Y[k] <- ( (1-U[k])/(1+0.5*U[k]) )^(-1/a[k])
   }

XX <- cbind(u0,X)
z <- cbind(XX,Y)
sort_z <- z[order(z[,4]),]
v <- sort_z[,4]
n0 <- 300
un <- v[500-n0]
z.samp = sort_z[(500-n0+1):500,]
U1 <- z.samp[,1]
X1 <- z.samp[,2:3]
Y1 <- z.samp[,4]
h <- 0.12
ss1 <- rep(0,500)
ss2 <- rep(0,500)
library(rootSolve)
for(p in 1:500)
{

  u = u0[p]

fn <- function(r)
   {
c(
    F1 = sum( (
             ( X1[,1] ) -
  exp( ( r[1]+r[2]*(U1-u))*X1[,1] + ( r[3]+r[4]*(U1-u))*X1[,2] )*X1[,1]*log(Y1/un) )*
  (1/h)*(1/(sqrt(2*pi)))* exp( (-1/2)*((U1-u)/h)^2) ),

    F2 = sum( (
             ( (U1-u)*X1[,1] ) -
  exp( ( r[1]+r[2]*(U1-u))*X1[,1] + ( r[3]+r[4]*(U1-u))*X1[,2] )*(U1-u)*X1[,1]*log(Y1/un) )*
  (1/h)*(1/(sqrt(2*pi)))* exp( (-1/2)*((U1-u)/h)^2) ),
   
    F3 = sum( (
             ( X1[,2] ) -
  exp( ( r[1]+r[2]*(U1-u))*X1[,1] + ( r[3]+r[4]*(U1-u))*X1[,2] )*X1[,2]*log(Y1/un) )*
  (1/h)*(1/(sqrt(2*pi)))* exp( (-1/2)*((U1-u)/h)^2) ),

    F4 = sum( (
             ( (U1-u)*X1[,2] ) -
  exp( ( r[1]+r[2]*(U1-u))*X1[,1] + ( r[3]+r[4]*(U1-u))*X1[,2] )*(U1-u)*X1[,2]*log(Y1/un) )*
  (1/h)*(1/(sqrt(2*pi)))* exp( (-1/2)*((U1-u)/h)^2)  )
          )
       }
ss1[p] <- multiroot(fn,c(1,0,1,0))$root[1]
ss2[p] <- multiroot(fn,c(1,0,1,0))$root[3]
   }
M_1[,m] <- ss1
M_2[,m] <- ss2      
     }
多谢

二维码

扫码加我 拉你入群

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

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

全部回复
2015-5-12 13:04:52
让人读这么长的程序,没有注释,不说明意图,楼主你真得觉得合适吗?
二维码

扫码加我 拉你入群

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

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

2015-5-15 15:32:57
没有看,楼主节哀
二维码

扫码加我 拉你入群

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

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

2017-4-25 18:03:13
请教一下,这个问题楼主后来是怎么解决的
二维码

扫码加我 拉你入群

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

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

2017-4-25 19:18:31
mayaolan66 发表于 2015-5-12 12:53
以下是本人的程序,打算模拟100次,前26次都好着呢,可执行到27次时报错,原因是:
Error in stode(y, tim ...
你觉的合适吗
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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