Amostragem para dados desequilibrados em regressão

22

Houve boas perguntas sobre como lidar com dados desequilibrados no contexto da classificação , mas estou me perguntando o que as pessoas fazem para amostrar para regressão.

Digamos que o domínio do problema seja muito sensível ao sinal, mas apenas um pouco sensível à magnitude do alvo. No entanto, a magnitude é importante o suficiente para que o modelo seja regressão (alvo contínuo) e não classificação (classes positivas vs. negativas). E diga neste domínio do problema que qualquer conjunto de dados de treinamento terá 10 vezes mais negativo do que alvos positivos.

Nesse cenário, posso exagerar nos exemplos de alvo positivo para corresponder à contagem de exemplos de alvo negativo e treinar um modelo para diferenciar os dois casos. Obviamente, a abordagem de treinamento é ruim em dados desequilibrados, então eu preciso fazer uma amostragem de algum tipo. Qual seria uma maneira decente de "desfazer" esse excesso de amostragem ao fazer previsões? Talvez traduzindo pela média ou mediana (negativa) do objetivo dos dados de treinamento natural?

someben
fonte

Respostas:

15

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).

insira a descrição da imagem aqui

# 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")
Peter Ellis
fonte
Obrigado pela resposta, Peter. Você poderia elaborar o que você quer dizer com "Porque essa variável incorpora a aleatoriedade no seu modelo de regressão"? O alvo é observável no ambiente, então significa erro de medição?
someben
1
Aqui está um artigo de um professor da NYU chamado Foster Provost sobre o assunto: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF No meu caso, estou fazendo regressão com dados desequilibrados e não classificação. Daí a minha pergunta.
someben
1
@ Someben - Eu elaborei e adicionei um exemplo. É bem descrito na literatura de regressão que você não pode amostrar com base na variável dependente. Isso deve se aplicar a outros modelos também. Uma amostra "desequilibrada" é um tipo diferente de coisa e não é um problema; a menos que você o tenha criado deliberadamente por uma estratégia de amostragem injustificável. Não é o equilíbrio ou a falta dele que é o problema, mas como você obtém seus dados.
Peter Ellis
2
@ Someben, não, eu não acho que isso faça alguma diferença. A questão é mais fundamental que isso.
Peter Ellis
1
Belo exemplo! Seu gráfico me lembra um artigo de Richard Berk (1983) sobre o viés de seleção de amostras . Observe também que você pode "desfazer" esses problemas se conhecer explicitamente o mecanismo de seleção de amostras, e há uma série de modelos econométricos criados em torno dessa noção (como o modelo de tobit ou o trabalho de James Heckman).
21712 Andy
2

É 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.

Chris
fonte
2

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:

jhin
fonte
1

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.

Arpit Sisodia
fonte
Não acho que seja assim tão simples, Arpit. Muitos algos não lineares não veem exemplos suficientes de classe com subamostragem e tornam-se inclinados para uma classe com superamostragem, e devido à sua não linearidade, você não terá meios de consertar isso.
Anatoly Alekseev
1

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 .

Nick Kunz
fonte