全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5079 5
2009-04-20

r<-function(n, mu,sigma,alpha,w)
+ {m<-length(w)
+  w<-cumsum(w)
+  U<-runif(n)
+  W<-matrix(0,n,m)
+  W[,1]<-U<w[1]
+  for (i in 2:m)
+  {W[,i]<-(U<w)&(U>=w[i-1])
+  }
+  z<-matrix(0,n,m)
+  for(i in 1:m){
+  z[,i]<-z[,i]+W[,i]*(alpha+exp(rnorm(n,mu,sigma)))
+  }
+  }
>  n<-100
>  mu=c(0.5,1.1,2.6)
>  sigma=c(0.2,0.3,0.2)
>  alpha=c(0.4,1.2,2.4)
>  w=c(0.33,0.33,0.34)
>  r(n,mu,sigma,alpha,w)
> summary(r)
错误于object[] : 类别为'closure'的对象不可以取子集

是为了生成混合的lognormal 分布的随机数。我怎么都不知道错在哪里。而且也不知道这个错误反馈是什么意思。有人知道的话麻烦帮我看看吧,感激不尽!!!

二维码

扫码加我 拉你入群

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

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

全部回复
2009-4-20 18:50:00
问题应该出在W上。
要生成对数正态,可以使用rlnorm()
在此基础上生成混合的,比你的这样编程简单多了!
二维码

扫码加我 拉你入群

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

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

2009-4-20 18:55:00
可是这是三系数的lognormal阿,还有alpha
二维码

扫码加我 拉你入群

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

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

2009-4-20 22:41:00

[建议]

alpha+exp(rnorm(n,mu,sigma))

第一项一维,而后一项多维。维数不同不能相加。

二维码

扫码加我 拉你入群

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

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

2009-4-21 03:55:00
以下是引用ruiqwy在2009-4-20 18:50:00的发言:
问题应该出在W上。
要生成对数正态,可以使用rlnorm()
在此基础上生成混合的,比你的这样编程简单多了!

alpha好像是没有关系,anyways,谢谢啦!

二维码

扫码加我 拉你入群

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

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

2009-4-21 03:55:00
以下是引用lanzai在2009-4-20 22:41:00的发言:

alpha+exp(rnorm(n,mu,sigma))

第一项一维,而后一项多维。维数不同不能相加。

谢谢

二维码

扫码加我 拉你入群

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

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

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

分享

扫码加好友,拉您进群