Столкновение двух миров: использование ML для сложных данных обследования

14

Я поражен, казалось бы, легкой проблемой, но я не нашел подходящего решения уже несколько недель.

У меня довольно много данных опроса / опроса (десятки тысяч респондентов, скажем, 50 тыс. На набор данных), полученных из чего-то, что, я надеюсь, называется комплексным опросом с весами, стратификацией, конкретной маршрутизацией и так далее. Для каждого респондента существуют сотни переменных, таких как демографические (возраст, регион ...), а затем в основном бинарные (не более, категориальные) переменные.

Я больше знаком с информатикой / машинным обучением, и мне пришлось много узнать о классической статистике и методологии опросов . Теперь я хочу применить классическое машинное обучение к этим данным (например, прогнозирование некоторых пропущенных значений для подмножества респондентов - в основном задача классификации). Но, подождите, и вот, я не могу найти подходящий способ сделать это. Как мне включить эти страты, веса или маршрутизацию (например: если на вопрос 1 был дан ответ с вариантом 2, задайте вопрос 3, в противном случае пропустите его)?

Простое применение моих моделей (деревья, логистическая регрессия, SVM, XGBoost ...) кажется опасным (и в большинстве случаев они терпят неудачу), поскольку они обычно предполагают, что данные поступают из простой случайной выборки или iid.

Многие методы, по крайней мере, имеют вес, но это мало помогает. Кроме того, неясно, как я должен комбинировать несбалансированные классы и веса, заданные определением опроса, не говоря об этих элементах стратификации. Кроме того, модели результатов должны быть хорошо откалиброваны - прогнозируемое распределение должно быть очень близко к исходному. Хорошая эффективность прогнозирования - не единственный критерий. Я изменил показатель оптимизации, чтобы учесть это (например, расстояние прогнозируемого распределения от истинного распределения + точность / MCC), и это помогло в некоторых случаях, зачем наносить ущерб производительности в других.

Есть ли какой-то канонический способ как решить эту проблему? Для меня это кажется крайне недооцененной областью исследований. ИМО многие опросы могли бы извлечь выгоду из силы ОД, но нет источников. Как будто это два мира, не взаимодействующие друг с другом.

Что я нашел до сих пор:

Связанные с CV вопросы, но ни один из них не содержит ни одного полезного ответа о том, как к этому подойти (либо ответа нет, ни того, что я прошу, ни представить вводящие в заблуждение рекомендации):

kotrfa
источник
Можете ли вы определить, что вы подразумеваете под « неудачей в большинстве случаев »? Как вы оцениваете успех модели в этой ситуации?
usεr11852 говорит восстановить Monic
Они даже не близки к исходному дистрибутиву, или кажется бессмысленным запускать их (например, когда включена маршрутизация).
Котрфа

Ответы:

3

( Обновление: пока что не очень много работы над «современными» методами ML со сложными данными обследований, но в последнем выпуске Статистической науки есть пара обзорных статей. См. Особенно Breidt and Opsomer (2017), «Модель с помощью» Оценка обследования с использованием современных методов прогнозирования » .

Кроме того, на основе упомянутой вами статьи Toth и Eltinge теперь существует пакет RPM R, реализующий CART для данных комплексного опроса.)

Теперь я хочу применить классическое машинное обучение к этим данным (например, прогнозирование некоторых пропущенных значений для подмножества респондентов - в основном задача классификации).

Я не до конца понимаю вашу цель. Вы в первую очередь пытаетесь вменять недостающие наблюдения, просто чтобы получить «полный» набор данных, чтобы дать кому-то еще? Или у вас уже есть полные данные, и вы хотите построить модель для прогнозирования / классификации ответов новых наблюдений? У вас есть конкретный вопрос, на который нужно ответить с вашими моделями, или вы более широко используете интеллектуальный анализ данных?

В любом случае, сложный выборочный опрос / взвешенный по результатам логистический регресс является разумным, довольно хорошо понятным методом. Существует также порядковый регресс для более чем 2 категорий. Они будут учитывать страты и веса обследования. Вам нужен более изящный метод ML, чем этот?

Например, вы можете использовать svyglmв surveyпакете R. Даже если вы не используете R, автор пакета Томас Ламли также написал полезную книгу «Сложные опросы: руководство по анализу с использованием R», в которой рассматриваются как логистическая регрессия, так и недостающие данные для опросов.

(Что касается вменения, я надеюсь, что вы уже знакомы с общими проблемами, связанными с отсутствующими данными. Если нет, рассмотрите подходы, подобные множественному вменению, чтобы помочь вам понять, как шаг вменения влияет на ваши оценки / прогнозы.)

Вопрос маршрутизации действительно является дополнительной проблемой. Я не уверен, как лучше с этим бороться. Для вменения, возможно, вы можете вменять один «шаг» в маршрутизации за раз. Например, используя глобальную модель, сначала проследите за ответом каждого на вопрос «Сколько у вас детей?»; затем запустите новую модель для соответствующей подгруппы (люди с более чем 0 детьми), чтобы определить следующий шаг "Сколько лет вашим детям?"

civilstat
источник