2

我想建立一个错误相关的场景。在第一种设置中,应该拟合 beta 回归,第二种情况包括条件 logit 模型。

为了将这两种情况关联起来,我将错误关联起来(或者至少是这样的想法)。但是,我正在努力为 beta 回归设置一个场景。这里有两个问题。首先,如何设置阻止相关性的 beta 回归的误差,其次,如何设置数据。

这是我所拥有的:

此函数为正常回归场景和条件 logit sceanrio 产生相关误差:

library(mvtnorm);library(betareg)

error_function <- function(rho.mc){
  vmat <- matrix(c(1,rho.mc, rho.mc, 1), nrow=2)
  v <- mvtnorm::rmvnorm(n, c(0,0), vmat)

  e1 <- v[,1]
  u2 <- pgumbel(v[,2])
  e2 <- -log(1-u2) 
  return(list(e1=e1, e2=e2))
}

n <- 300
mc.correlation <- 0.9
set.seed(1)
x1 <- runif(n) * 4 - 2

error_A <- error_function(mc.correlation)
cor(error_A$e1, error_A$e2)
[1] 0.8476043
# more or less the same

无需手动定义错误,我会这样做:

eta <- c(1, -0.2)
gamma <- eta
mu <- binomial(link = logit)$linkinv(eta[1] + eta[2]*x1)
phi <- binomial(link = log)$linkinv(gamma[1] + gamma[2]*x1)
set.seed(1)
y_A <- rbeta(n, mu * phi, (1 - mu) * phi)

beta.fit <- betareg::betareg(y_A~x1)

但是,这不会保留相关性:

cor(residuals(beta.fit), error_A$e2)
[1] 0.1049023

如何设置保留我的相关性的 DGP?

谢谢,汤姆

4

0 回答 0