#生成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