楼主: zjj8211
8613 7

[求助]混合分布的随机数生成问题 [推广有奖]

  • 0关注
  • 3粉丝

已卖:259份资源

博士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
374 个
通用积分
12.7252
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
4009 点
帖子
144
精华
0
在线时间
251 小时
注册时间
2007-8-4
最后登录
2025-11-15

楼主
zjj8211 发表于 2008-11-4 10:55:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

请教各位高手:

如果我的混合分布为:F(x)=0.4*N(1,0.5)+0.6*N(3,2)

在用r进行模拟数据时,我按p=0.4的概率生成一个两点分布,即z=rbinom(1,1,0.4),如果z=1 就按正态分布N(1,0.5)

生成数据,否则就按后一个正态分布产生随机数.

这样产生的数据和按用均匀分布做判断属于哪个分布有区别吗?

我这种生成方法有问题吗?

二维码

扫码加我 拉你入群

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

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

关键词:随机数生成 混合分布 随机数 rbinom 正态分布 随机数 混合分布

回帖推荐

alphastatist 发表于4楼  查看完整内容

u<-runif(1)x<- ifelse(u<0.4,rnorm(1,1,0.5),rnorm(1,3,2))x即为所求。你的做法也没错阿!

本帖被以下文库推荐

沙发
sheepmiemie 发表于 2008-11-4 11:25:00

您描述的做法应该和您所列分布式F(x)=0.4*N(1,0.5)+0.6*N(3,2)不符。

[img]http://i972.photobucket.com/albums/ae202/sheepmiemie/d50d789d.jpg

藤椅
zjj8211 发表于 2008-11-4 15:50:00
那我应该怎样产生哩?

板凳
alphastatist 发表于 2008-11-8 18:40:00

u<-runif(1)

x<- ifelse(u<0.4,rnorm(1,1,0.5),rnorm(1,3,2))

x即为所求。

你的做法也没错阿!

http://www.pinggu.org/bbs/images/logo2.gif[/IMG][/URL]

报纸
davidhaitaopan 发表于 2008-11-10 19:33:00
应该是,
u<-runif(1)
x<- ifelse(u<0.4,rnorm(1,1,sqrt(0.5)),rnorm(1,3,sqrt(2)))才对。
顺便画一下这个分布的密度图,是双峰的(可惜,粘不过来啊):
> x=numeric()
> for(i in 1:100){
+    r=runif(1)
+    x=ifelse(r<.4,rnorm(1,1,sqrt(.5)),rnorm(1,3,sqrt(2)))
+ }
> x[1:10]
 [1] 3.022763 1.957792 4.262181 4.385198 3.152192 2.354907 4.813142 1.008566
 [9] 1.359688 2.385755
> plot(density(x))
>

地板
sheepmiemie 发表于 2008-11-10 20:38:00
我收回我在2楼做的臆断,LZ的做法是正确的。原本是一个简单的simulation,最近比较常犯糊涂,还请LZ多多原谅。
[img]http://i972.photobucket.com/albums/ae202/sheepmiemie/d50d789d.jpg

7
zjj8211 发表于 2008-11-13 19:04:00
谢谢各位.我试过,不过做模拟的结果好象采用均匀分布来做要好点

8
sheepmiemie 发表于 2008-11-16 05:00:00
不至于吧,理论上是一样的,LZ不要执着于某次结果
[img]http://i972.photobucket.com/albums/ae202/sheepmiemie/d50d789d.jpg

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

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