Basándome en el título de su pregunta, interpretaré "añadir ceros de forma que esté correlacionado con uno o más elementos de X (variables independientes)" como "simular a partir de un modelo ajustado con inflación cero, con la cantidad de inflación cero dependiente de los regresores". Aquí hay un resumen útil para modelar datos con inflación cero en R.
Cargamos el pscl
para las herramientas necesarias y ajustar un modelo ZIP para el conjunto de datos incorporado bioChemists
.
require(pscl)
fm_zip2 <- zeroinfl(art ~ . | ., data = bioChemists)
Nótese que especificamos que la cantidad de inflación cero debe depender de los predictores - especificando art ~ . | 1
equivaldría a una inflación cero independiente de los regresores.
Ahora queremos simular los recuentos de este modelo. Especificamos el número máximo de recuentos que queremos simular:
max_count <- 30
Para la simulación, necesitamos especificar los valores de las covariables. Simplemente utilizaremos la primera fila de datos en bioChemists
como el newdata
. Utilizamos el predict
(ver ?predict.zeroinfl
) con type="prob"
.
probs_predicted <- predict(fm_zip2,newdata=bioChemists[1,],type="prob",at=0:max_count)
El trazado de las probabilidades ajustadas para cada recuento muestra un poco de inflación cero:
plot(probs_predicted[1,], type="h", lwd=5, col="lightgray", xlab="Count", ylab="Probability")
Ahora podemos sample
de los recuentos especificados con las probabilidades ajustadas:
set.seed(1)
xx <- sample(x=0:max_count,size=1e6,prob=probs_predicted[1,],replace=TRUE)
hist(xx,xlab="Count",breaks=seq(-0.5,max_count+0.5),col="lightgray",main="")
Los dos gráficos se alinean muy bien, así que parece que estamos haciendo lo correcto.
Puede especificar los valores adecuados para sus predictores y muestrear más o menos valores según le parezca.
3 votos
¿Solucionaría su problema la simulación a partir de una regresión ZIP ajustada? Si no es así, ¿puede ser más explícito sobre cómo le gustaría añadir ceros?
0 votos
Así pues, he generado mi propio conjunto de datos en el que la variable dependiente (Y) sigue una distribución de Poisson y está asociada a una única variable continua (X). (Especifico los parámetros, sólo escojo valores aleatorios). Quiero introducir la inflación cero en este conjunto de datos. No importa cómo se correlacionan los ceros con X.