El desequilibrio no es necesariamente un problema, pero sí puede serlo. No es correcto basar su estrategia de muestreo en la variable objetivo. Debido a que esta variable incorpora la aleatoriedad en su modelo de regresión, si realiza un muestreo basado en esto, tendrá grandes problemas para hacer cualquier tipo de inferencia. Dudo que sea posible "deshacer" esos problemas.
Puede legítimamente sobre o submuestreo basado en las variables predictoras . En este caso, siempre y cuando compruebe cuidadosamente que los supuestos del modelo parecen válidos (por ejemplo, la homocedasticidad que le viene a la mente como importante en esta situación, si tiene una regresión "ordinaria" con los supuestos habituales), no creo que necesite deshacer el sobremuestreo al predecir. Su caso ahora sería similar a un analista que ha diseñado un experimento explícitamente para tener un rango equilibrado de las variables predictoras.
Editar - adición - expansión sobre por qué es malo muestrear basado en Y
y= Xb + emimiXsi) la e ya no tendrá una media de cero ni se distribuirá de forma idéntica. Por ejemplo, los valores bajos de y que podrían incluir valores muy bajos de e podrían ser menos propensos a ser seleccionados. Esto arruina cualquier inferencia basada en los medios habituales para ajustar tales modelos. Se pueden hacer correcciones similares a las realizadas en la econometría para ajustar modelos truncados, pero son una molestia y requieren suposiciones adicionales, y solo deben emplearse cuando no hay alternativa.
Considere la ilustración extrema a continuación. Si trunca sus datos en un valor arbitrario para la variable de respuesta, introduce sesgos muy significativos. Si lo trunca para una variable explicativa, no necesariamente hay un problema. Verá que la línea verde, basada en un subconjunto elegido debido a sus valores predictores, está muy cerca de la línea ajustada verdadera; Esto no se puede decir de la línea azul, basada únicamente en los puntos azules.
Esto se extiende al caso menos grave de submuestreo o sobremuestreo (porque el truncamiento puede verse como un submuestreo llevado a su extremo lógico).
# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)
# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
"Fitted - subset based on y"), lty=1, col=1:4, bty="n")