全部版块 我的主页
论坛 站务区 十一区 高校院系合作版 中国人民大学统计学院
1937 10
2013-06-11
#生成Logisitc模型数据,其中x~N(0,1), a=2, b=-0.8;
#每次生成n个,生成s组
generate_data<-function(n,s,a=2,b=-0.8){
for(k in 1:s){
set.seed(k)
x=array(0,dim=c(n,s));p=array(0,dim=c(n,s));y=array(0,dim=c(n,s))
x[,k]=rnorm(n);  
p[,k]=exp(a+b*x[,k])/(1+exp(a+b*x[,k]))
y[,k]=rbinom(n,1,prob=p[,k])
k=k+1
}
list(k=k,x=x,y=y)
}
generate_data(10,5)
结果如下:
$k
[1] 6
$x
      [,1] [,2] [,3] [,4]        [,5]
[1,]    0    0    0    0 -0.84085548
[2,]    0    0    0    0  1.38435934
[3,]    0    0    0    0 -1.25549186
[4,]    0    0    0    0  0.07014277
[5,]    0    0    0    0  1.71144087
[6,]    0    0    0    0 -0.60290798
[7,]    0    0    0    0 -0.47216639
[8,]    0    0    0    0 -0.63537131
[9,]    0    0    0    0 -0.28577363
[10,]    0    0    0    0  0.13810822
$y
      [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    0    1
[2,]    0    0    0    0    0
[3,]    0    0    0    0    1
[4,]    0    0    0    0    1
[5,]    0    0    0    0    1
[6,]    0    0    0    0    1
[7,]    0    0    0    0    1
[8,]    0    0    0    0    0
[9,]    0    0    0    0    1
[10,]    0    0    0    0    0

二维码

扫码加我 拉你入群

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

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

全部回复
2013-6-11 20:29:23
只能生成最后一组数据,请问如何让修改可以得到全部的数据?
二维码

扫码加我 拉你入群

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

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

2013-6-12 10:34:03
哦哦,终于搞明白了:
把x=array(0,dim=c(n,s));p=array(0,dim=c(n,s));y=array(0,dim=c(n,s))放在循环体外,就对了。
放在循环里面,每次都生成n*s个0,所以只有最后一次的值。

二维码

扫码加我 拉你入群

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

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

2013-7-21 18:30:39
看看
二维码

扫码加我 拉你入群

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

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

2020-5-8 20:19:27
楼主我不太明白
二维码

扫码加我 拉你入群

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

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

2020-5-11 01:06:37
是个好东西,我看看
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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