O desequilíbrio não é necessariamente um problema, mas como você pode chegar lá. Não é correto basear sua estratégia de amostragem na variável de destino. Como essa variável incorpora a aleatoriedade no seu modelo de regressão, se você fizer uma amostra com base nisso, terá grandes problemas ao fazer qualquer tipo de inferência. Duvido que seja possível "desfazer" esses problemas.
Você pode legitimamente super ou subamostra com base nas variáveis preditoras . Nesse caso, desde que você verifique cuidadosamente se as suposições do modelo parecem válidas (por exemplo, homocedasticidade que pareça importante nesta situação, se você tiver uma regressão "comum" com as suposições usuais), não acho que precise desfazer a sobre amostragem ao prever. Seu caso agora seria semelhante a um analista que projetou um experimento explicitamente para ter um intervalo equilibrado das variáveis preditivas.
Editar - adição - expansão sobre por que é ruim amostrar com base em Y
y= Xb + eeeXb) o e não terá mais uma média de zero ou será distribuído de forma idêntica. Por exemplo, valores baixos de y que podem incluir valores muito baixos de e podem ter menos chances de serem selecionados. Isso arruina qualquer inferência com base nos meios usuais de montagem desses modelos. As correções podem ser feitas semelhantes às feitas na econometria para o ajuste de modelos truncados, mas são difíceis e exigem suposições adicionais, e só devem ser empregadas quando não houver alternativa.
Considere a ilustração extrema abaixo. Se você truncar seus dados com um valor arbitrário para a variável de resposta, introduzirá vieses muito significativos. Se você o truncar para uma variável explicativa, não haverá necessariamente um problema. Você vê que a linha verde, com base em um subconjunto escolhido por causa de seus valores preditores, está muito próxima da verdadeira linha ajustada; isso não pode ser dito da linha azul, baseada apenas nos pontos azuis.
Isso se estende ao caso menos grave de sub ou superamostragem (porque o truncamento pode ser visto como subamostragem levada ao seu 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")
É uma questão de saber se você está fazendo análise ou previsão causal. Leia http://m.statisticalhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640
A reamostragem na variável de destino para treinamento para fins de previsão funciona desde que um teste em uma amostra não reamostrada ocorra. O gráfico final de desempenho deve basear-se apenas na espera. Para maior precisão na determinação da previsibilidade do modelo, devem ser empregadas técnicas de validação cruzada.
Você "desfaz" pela análise final do modelo de regressão e no conjunto de dados desequilibrados.
fonte
Esta não é uma tentativa de fornecer uma solução prática para o seu problema, mas eu apenas fiz algumas pesquisas sobre como lidar com conjuntos de dados desequilibrados em problemas de regressão e queria compartilhar meus resultados:
fonte
Em primeiro lugar, a proporção de 1:10 não é ruim. há uma maneira simples de desfazer a amostragem
1) para o problema de classificação, se você sub-amostrou qualquer classe negativa por 10. a probabilidade resultante é 10 vezes mais do que deveria ser. você pode simplesmente dividir a probabilidade resultante por 10. (conhecida como recalibração do modelo)
2) O Facebook também subamostra (para previsão de cliques em regressão logística) e faz uma amostragem negativa negativa. a recalibração é feita pela fórmula simples p / (p + (1-p) / w); onde p é uma previsão na redução da amostragem, nw é uma taxa de amostragem negativa negativa.
fonte
Penso que o que pode ajudá-lo, devido ao seu problema, é a Técnica de Sobre-Amostragem de Minorias Sintéticas para Regressão (SMOTER). Há alguma pesquisa sobre esse tópico. No entanto, ele permanece menos explorado do que sua contraparte de classificação, como você provavelmente já encontrou.
Eu poderia sugerir o artigo citado abaixo (e a conferência foi apresentada em http://proceedings.mlr.press/v74/ ), dependendo de como você está interessado em entendê-lo do ponto de vista da pesquisa. Gostei muito da introdução do ruído gaussiano na geração das observações sintéticas.
Se você estiver mais interessado em uma solução prática, o primeiro autor tem uma implementação R disponível em sua página do Github. https://github.com/paobranco/SMOGN-LIDTA17
Se o Python é mais persuasivo, recentemente distribuí uma implementação inteiramente Pythonic do algoritmo SMOGN, que agora está disponível e atualmente em teste de unidade. https://github.com/nickkunz/smogn
Espero que isso tenha ajudado!
Branco, P., Torgo, L., Ribeiro, R. (2017). "SMOGN: uma abordagem de pré-processamento para regressão desequilibrada". Proceedings of Machine Learning Research, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .
fonte