Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 我想对1000个数据集使用glm函数_Loops_Replication_Simulation_Boot_Glm - Fatal编程技术网

Loops 我想对1000个数据集使用glm函数

Loops 我想对1000个数据集使用glm函数,loops,replication,simulation,boot,glm,Loops,Replication,Simulation,Boot,Glm,我试图创建1000个数据集,每个数据集有4个变量,X1是正常的(0,1),X2是正常的(0,1),X3是expit(0.5X1+0.8X2),A是贝努利(X3)。所有变量都有2500个观测值 我想将1000个数据集中的每一个都放入glm模型中,但没有效果 我就是这么做的 sim_list = replicate(n =3, expr = {data.frame(X1 = X1 <- rnorm(2500, mean = 0, sd = 1), X

我试图创建1000个数据集,每个数据集有4个变量,X1是正常的(0,1),X2是正常的(0,1),X3是expit(0.5X1+0.8X2),A是贝努利(X3)。所有变量都有2500个观测值

我想将1000个数据集中的每一个都放入glm模型中,但没有效果

我就是这么做的

 sim_list = replicate(n =3,
                     expr = {data.frame(X1 = X1 <- rnorm(2500, mean = 0, sd = 1), X2 = X2 <- rnorm(2500, mean = 0, sd = 1), X3 = X3 <- rnorm(2500, mean = 0, sd = 1), X4 = X4 <- expit(0.5*X1 + 0.8*X3), A = A <- rbern(2500, X4)},
                     simplify = F)

for (i in 1:3){
glm1[i] <- glm(A~X1, family = binomial, data = sim_list[[i]])
score[i] <- glm1[i]$fitted.values
} 
sim_list=复制(n=3,

expr={data.frame(X1=X1正如@Michael指出的,你不能做双重赋值,使用
你的
for
循环看起来很好,但你的
模拟列表却不行。一个问题是双重赋值(你既有
=
又有

library(simcausal)
library(locfit)

func = function(){
                    X1 = rnorm(2500, mean = 0, sd = 1) 
                    X2 = rnorm(2500, mean = 0, sd = 1) 
                    X3 = rnorm(2500, mean = 0, sd = 1) 
                    X4 = expit(0.5*X1 + 0.8*X3)
                    A = rbern(2500, X4)
                    data.frame(X1,X2,X3,X4,A)
}
head(func())
            X1         X2          X3        X4 A
1 -0.316250388  1.7826809 -0.57710388 0.3498251 1
2 -0.140362056 -0.1895857  0.66395833 0.6132480 1
3 -0.008822927 -0.8104381 -0.57667306 0.3856227 0
4  1.053421856  1.5677077 -1.92307184 0.2666382 1
5 -0.142992075  0.3378479  1.13319243 0.6974233 1
6 -1.502032980 -0.3575286 -0.02838796 0.3156735 0
sim_list <- replicate(n =3,func(),simplify = F)
glm1 <- vector("list",3)
score <- vector("list",3)

for (i in 1:3){
glm1[[i]] <- glm(A~X1, family = binomial, data = sim_list[[i]])
score[[i]] <- glm1[[i]]$fitted.values
}