Дисбаланс не обязательно проблема, но как вы можете туда добраться, может быть. Неразумно основывать свою стратегию выборки на целевой переменной. Поскольку эта переменная включает в себя случайность в вашей регрессионной модели, если вы будете делать выборку на основе этого, у вас будут большие проблемы с любым выводом. Я сомневаюсь, что это можно исправить.
Вы можете на законных основаниях преувеличивать или занижать выборку на основе переменных предиктора . В этом случае, при условии, что вы тщательно проверяете, что предположения модели кажутся действительными (например, гомоскедастичность, которая, как вам кажется, важна в этой ситуации, если у вас есть «обычная» регрессия с предположениями обычного), я не думаю, что вам нужно отмените передискретизацию при прогнозировании. Ваш случай теперь будет похож на аналитика, который явно разработал эксперимент, чтобы иметь сбалансированный диапазон переменных предиктора.
Правка - дополнение - расширение о том, почему это плохо для выборки на основе Y
При подборе стандартной регрессионной модели ожидается, что будет нормально распределено, будет иметь среднее значение, равное нулю, и будет независимым и одинаково распределенным. Если вы выберете свою выборку, основываясь на значении y (которое включает в себя как так и ), то e больше не будет иметь среднее значение нуля или будет одинаково распределено. Например, низкие значения y, которые могут включать в себя очень низкие значения e, могут быть менее вероятными для выбора. Это разрушает любые выводы, основанные на обычных средствах подгонки таких моделей. Исправления могут быть сделаны аналогично внесенным в эконометрике для подгонки усеченных моделей, но они являются трудной задачей и требуют дополнительных допущений, и их следует применять только тогда, когда нет альтернативы.e e X bY= Xб + еееИксб
Рассмотрим крайнюю иллюстрацию ниже. Если вы усекаете свои данные по произвольному значению для переменной ответа, вы вносите очень существенные искажения. Если вы усекаете его для пояснительной переменной, проблема не обязательно существует. Вы видите, что зеленая линия, основанная на подмножестве, выбранном из-за их значений предикторов, очень близка к истинно подобранной линии; этого нельзя сказать о синей линии, основываясь только на синих точках.
Это распространяется на менее серьезные случаи недостаточной или избыточной выборки (поскольку усечение можно рассматривать как недостаточную выборку, доведенную до логического предела).
# 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")
Это вопрос того, проводите ли вы причинный анализ или прогноз. Прочитайте 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
Повторная выборка по целевой переменной для обучения в целях прогнозирования работает до тех пор, пока выполняется одно тестирование на невыдержанной выборке. Окончательный график производительности должен быть основан исключительно на удержании. Для большей точности определения предсказуемости модели следует использовать методы перекрестной проверки.
Вы «отменяете» окончательный анализ регрессионной модели и несбалансированного набора данных.
источник
Это не попытка обеспечить практическое решение вашей проблемы, но я просто провел небольшое исследование по работе с несбалансированными наборами данных в задачах регрессии и хотел бы поделиться своими результатами:
источник
во-первых, соотношение 1:10 совсем не плохо. Есть простой способ отменить выборку
1) для задачи классификации: если вы отбирали какой-либо отрицательный класс в 10 раз, результирующая вероятность в 10 раз больше, чем должна быть. Вы можете просто разделить полученную вероятность на 10. (известный как повторная калибровка модели)
2) Facebook также подвыборки (для прогнозирования кликов в логистической регрессии) и делают отрицательную выборку вниз. повторная калибровка выполняется по простой формуле p / (p + (1-p) / w); где p - прогноз при понижающей дискретизации, nw - отрицательная частота понижающей дискретизации.
источник
Я думаю, что может помочь вам, учитывая вашу проблему, является методика избыточной выборки синтетических меньшинств для регрессии (SMOTER). Есть некоторые исследования на эту тему. Тем не менее, он остается менее изученным, чем его аналог классификации, как вы, вероятно, столкнулись.
Я мог бы предложить статью, приведенную ниже (и конференцию, на которой она была представлена по адресу http://proceedings.mlr.press/v74/ ), в зависимости от того, насколько вы заинтересованы в ее понимании с точки зрения исследования. Я действительно ценил введение гауссовского шума в генерацию синтетических наблюдений.
Если вас больше интересует практическое решение, у первого автора есть реализация R на ее странице Github. https://github.com/paobranco/SMOGN-LIDTA17
Если вас больше убеждает Python, я недавно распространил полностью Pythonic-реализацию алгоритма SMOGN, которая теперь доступна и в настоящее время тестируется модулем. https://github.com/nickkunz/smogn
Я надеюсь, что это помогло!
Бранко П., Торго Л., Рибейро Р. (2017). «SMOGN: Подход предварительной обработки для несбалансированной регрессии». Слушания Исследования Машинного обучения, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .
источник