Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
R中带模拟数据的有序Probit_R_Metrics_Montecarlo_Categorical Data - Fatal编程技术网

R中带模拟数据的有序Probit

R中带模拟数据的有序Probit,r,metrics,montecarlo,categorical-data,R,Metrics,Montecarlo,Categorical Data,这是我在StackExchange中提出的第一个问题。我是一个超级粉丝,用很多版本来学习LaTex、R等。我试着搜索之前的一个问题,虽然有一些类似的问题,但对于我的问题没有任何结论。我感谢你提供的任何帮助 我正在进行蒙特卡罗模拟,并研究不同的离散估计程序,即托比特、概率比特、多项式逻辑和有序概率比特,是如何进行比较的 以下是我生成数据的方式: x_1 <- replicate(100, rnorm(500, mean = 0, sd = 2)) x_2 <- replicate(10

这是我在StackExchange中提出的第一个问题。我是一个超级粉丝,用很多版本来学习LaTex、R等。我试着搜索之前的一个问题,虽然有一些类似的问题,但对于我的问题没有任何结论。我感谢你提供的任何帮助

我正在进行蒙特卡罗模拟,并研究不同的离散估计程序,即托比特、概率比特、多项式逻辑和有序概率比特,是如何进行比较的

以下是我生成数据的方式:

x_1 <- replicate(100, rnorm(500, mean = 0, sd = 2))
x_2 <- replicate(100, rnorm(500, mean = 0, sd = 2))
error <- replicate(100, rnorm(500, mean = 0, sd= 1 ))
y <- 5*x_1 + 10*x_2 + error 
我应该从哪里开始估算?我确信我的分析方法没有得到优化。我现在只是在学习R

XB <- list()
for (i in 1:100){
    XB[[i]] <- 5*x_1[,i] + 10*x_2[,i]
}

vaar <- list()
for (i in 1:100){
    vaar[[i]] <- sqrt(var(XB[[i]]))
}

tau_1 <- list()
tau_2 <- list()
tau_3 <- list()

for (i in 1:100){
    tau_1[[i]] <- qnorm(.1, mean = mean(XB[[i]]), sd = vaar[[i]] + 1)
    tau_2[[i]] <- qnorm(.5, mean = mean(XB[[i]]), sd = vaar[[i]] + 1)
    tau_3[[i]] <- qnorm(.9, mean = mean(XB[[i]]), sd = vaar[[i]] + 1)
}

y_star <- matrix(0, ncol=ncol(y), nrow = nrow(y))
for (i in 1:100){
    for (j in 1:500){
        if(y[j,i] < tau_1[[1]]){
            y_star[j,i] <- 1
        }
        else if(y[j,i] >= tau_1[[1]] & y[j,i] < tau_2[[i]]){
            y_star[j,i] <- 2
        }
        else if(y[j,i] >= tau_2[[i]] & y[j,i] < tau_2[[i]]){
            y_star[j,i] <- 3
        }   
        else{
            y_star[j,i] <- 4
        }
    }
}
betas_oprob <- list()
for (j in 1:100){
    betas_oprob[[j]] <- polr(as.ordered(y_star[,j]) ~ 1+x_1[,j] + x_2[,j], method = "probit", Hess=TRUE)
}
Error in polr(as.ordered(y_star[, j]) ~ 1 + x_1[, j] + x_2[, j], method = "probit",  
: attempt to find suitable starting values failed
In addition: Warning messages:
1: glm.fit: fitted probabilities numerically 0 or 1 occurred 
2: glm.fit: algorithm did not converge 
3: glm.fit: fitted probabilities numerically 0 or 1 occurred