Это вторая часть нашего рассказа о работе с предвзятостью в оценках медиаактивности респондентов онлайн-панели.
В предыдущая статья Мы проанализировали саму проблему, причины возникновения систематических ошибок и методы их исправления, а теперь более подробно остановимся на практическом применении алгоритма Propensity Score Adjustment для коррекции реальных онлайн-данных.
Алгоритм корректировки оценки склонности предназначен для калибровки вклада респондентов, которые не были случайно включены в панель.
В нашем случае — чтобы подогнать выборку, участники которой были набраны онлайн, к стандартной офлайн-вероятностной выборке, набранной посредством случайного телефонного звонка.
Причины систематической ошибки онлайн-выборки различаются и часто неизвестны.
Таким образом, круг участников онлайн-панели, как минимум, ограничивается пользователями интернет-сайтов, на которых была размещена реклама.
Кроме того, онлайн-панели часто ориентированы на людей, которые «профессионально» занимаются онлайн-исследованиями.
Для того чтобы деятельность онлайн-экспертов стала ближе к реальной картине происходящего, необходимо устранить известные и неизвестные предубеждения.
Применение коррекции Propensity Score — один из возможных способов решения проблемы.
В одном из наших исследований мы анализируем активность пользователей в Интернете.
Данные для него мы собираем с панели, которую собирали оффлайн, с помощью телефонного звонка.
В каждом городе, включенном в исследование, генерируется заданное количество случайных телефонных номеров потенциальных участников дискуссии.
Эта процедура позволяет нам получить вероятностную выборку с известными социально-демографическими отклонениями, которые можно легко исправить.
Проблема в том, что сложно набрать достаточно большое количество экспертов офлайн.
Поэтому изначально мы рассматривали онлайн-рекрутинг как простой способ расширить основную, более качественную офлайн-панель до необходимого репрезентативного размера.
После запуска набора и получения данных от онлайн-респондентов мы сравнили оценки активности этой панели с оценками активности офлайн-панели и, как и ожидалось, обнаружили ряд существенных отличий.
Например, явные различия наблюдались в среднем времени, проведенном на исследуемом интернет-сайте в день, и в количестве людей, просматривавших этот ресурс не менее одной минуты.
Мы изучили мировую практику решения подобных задач и пришли к выводу, что в нашем случае для корректировки данных лучше всего использовать метод Propensity Score Adjustment. Далее мы поделимся примером промышленной реализации этого метода.
Процедуру коррекции Propensity Score можно разделить на несколько последовательных этапов.
1. Предварительный анализ и обработка данных.
На этом этапе анализируются исходные данные и выявляются основные особенности, которые можно использовать при моделировании.
В нашем случае это социально-демографические и географические характеристики респондентов, например, пол, возраст, город проживания, количество человек в семье, а также характеристики, основанные на активности пользователя (общее время, которое респондент провел на сайте).
каждого из интернет-сайтов в течение исследуемого дня).
cat_cols = ['educ', 'sag_wo18', 'hh_num', 'work', 'age', 'cubbb', 'y', 'use_loc', 'sem_pol', 'mat_pol'] for c in cat_cols: dt[c] = dt[c].
astype('category') dt[:5]
Даже на этом этапе крайне важно выявить и устранить известные отклонения в значимых для исследования социально-демографических признаках, присущие онлайн- и офлайн-выборкам.
Это необходимо для того, чтобы известные нам систематические искажения данных не повлияли впоследствии на результаты моделирования и процедуру в целом.
Для первоначальной коррекции мы использовали RIM взвешивание отдельно для онлайн- и офлайн-образцов.
В результате с помощью весов Universe_wei мы привели суммарные доли населения, приходящиеся на основные социально-географические признаки каждой выборки, к характерным значениям для генеральной совокупности (для пользователей Интернета в России).
Затем мы смогли определить степень неизвестной систематической ошибки в оценках активности, присущей онлайн-выборке.
В качестве показателей, отражающих картину перемещений, мы выбрали среднее время и количество респондентов, контактировавших с исследуемыми интернет-сайтами за расчетный день.
Достоверные различия этих показателей во взвешенных выборках подтвердили наличие неизвестной систематической ошибки в онлайн-выборке, причиной которой стала неслучайная процедура набора.
2. Моделирование
Модель, которую мы использовали для коррекции, представляет собой классификатор, который предсказывает, принадлежит ли респондент к эталонной выборке.Респонденты контрольной выборки обозначаются единицей, а респонденты скорректированной выборки – нулем.
«Входными данными» модели являются взвешенные активности и демографические характеристики респондентов, рассчитанные на первом этапе.
На «выходе» для каждого эксперта получаем вероятность принадлежности к эталонной выборке.
По результатам анализа, который мы провели предыдущий этап В качестве используемой модели было выбрано повышение градиента на деревьях решений XGBoost. Этот классификатор, помимо высокой точности, имеет ряд других преимуществ.
Например, он позволяет гибко учитывать веса респондентов и хорошо работает в условиях классового дисбаланса.
y = dt.pop('y')
X = dt.copy()
for c in X.columns:
if str(X[c].
dtype) == 'category': X[c] = X[c].
cat.codes
sample_weight = dt['universe_wei'].
values
X_train, X_val, y_train, y_val, w_train, w_test = train_test_split(X.values[:, :], y.cat.codes.values, sample_weight, random_state=2020)
dtrain = xgb.DMatrix(X_train, label=y_train, weight=w_train)
dval = xgb.DMatrix(X_val, label=y_val, weight=w_test)
params = {'objective': 'binary:logistic', 'eval_metric': 'logloss', 'learning_rate': 0.3, 'gamma': 1.3, 'max_depth': 3, 'min_child_weight': 0.5, 'subsample': 0.8, 'reg_alpha': 0.01, 'reg_lambda': 0.01, 'max_delta_step': 5}
watchlist = [(dtrain, 'train'), (dval, 'eval')]
clf = xgb.train(params, dtrain, 1000, watchlist, early_stopping_rounds=10, verbose_eval=10)
pred = clf.predict(dval)
y_test = [round(value) for value in pred]
print('accuracy : ', accuracy_score(y_test, y_val))
print('recall : ', recall_score(y_test, y_val, average = 'binary'))
print('precision: ', precision_score(y_test, y_val, average = 'binary'))
print('f1_score : ', f1_score(y_test, y_val, average = 'binary'))
fpr, tpr, _ = roc_curve(y_test, y_val)
print('AUC : ',auc(fpr, tpr))
Показатель склонности prop_score для каждого респондента рассчитывается как соотношение р(1)/р(0) , где знаменатель — вероятность принадлежности к скорректированной онлайн-выборке, а числитель — вероятность принадлежности к эталонной выборке.
sample_weight = dt['universe_wei'].
values
tr = xgb.DMatrix(X.values, weight=sample_weight)
y_pred = clf.predict(tr)
predict = pd.DataFrame(y_pred, columns=['prb0', 'prb1'])
predict['prop_score'] = predict['prb1']/predict['prb0'];
predict.head()
3. Расчет поправочных коэффициентов
Мы рассчитали поправочные коэффициенты на основе вероятностей модели с использованием метода Хорвица-Томпсона.Основные этапы расчета:
- массив оценок склонностей сортируется и делится на пять классов, на каждый из которых приходится 20% объединенной выборки;
- для скорректированной и эталонной выборок рассчитываются взвешенные доли по пяти указанным классам;
- коэффициенты корректировки для каждого из пяти классов рассчитываются как соотношение долей целевой и скорректированной выборок, рассчитанных на предыдущем этапе;
- коэффициенты корректировки корректируются к респондентам корректируемой выборки в соответствии с их классами.
4. Коррекция неизвестного смещения
Окончательная коррекция панели осуществляется с помощью процедуры взвешивания RIM. Рассчитанные поправочные коэффициенты, нормированные на количество людей в выборке, подаются в качестве стартовых весов на «вход» взвешивания.В результате каждому респонденту присваивается вес, который одновременно корректирует две систематические ошибки: известную ошибку ключевых социально-демографических характеристик и неизвестную ошибку, присущую онлайн-выборке.
5. Анализ результатов коррекции.
Методика корректировки показателя склонности помогает исправить смещение в онлайн-выборках по неизвестным атрибутам, влияющим на активность.
Следовательно, результаты коррекции можно оценить по разнице оценок активности корректируемой и эталонной проб.
Например, мы проанализировали разницу между средней продолжительностью посещения онлайн-сайтов с коррекцией и целевой офлайн-статистикой.
Мы также проанализировали аппроксимацию по количеству респондентов, контактировавших с интернет-сайтами.
На графиках ниже показаны результаты.
Основные существенные различия в оценках активности для онлайн- и офлайн-выборок были устранены, что свидетельствует о достаточно хорошем качестве коррекции систематических ошибок.
При использовании коррекции Propensity Score мы зафиксировали ряд преимуществ и возможных ограничений в использовании метода.
Преимущества:
- Описанная методология позволяет корректировать погрешность неизвестных данных, при этом не обязательно знать точные причины погрешности оценок активности.
- На реальных данных метод показывает достаточно хорошее качество коррекции.
- Методика корректировки показателя склонности адаптирована для онлайн-корректировки панели и позволяет одновременно корректировать известные и неизвестные отклонения в онлайн-данных.
- Метод позволяет работать в многомерном атрибутивном пространстве.
При этом модель может использовать как социальные характеристики участников дискуссии, так и необходимые оценки деятельности.
- Коррекцию оценки склонности можно использовать в сочетании с другими известными методами коррекции систематической ошибки — взвешиванием и сопоставлением.
Это позволяет гибко адаптировать его под производственные задачи.
Ограничения:
- Для корректной корректировки данных авторы и методисты рекомендуют использовать онлайн- и офлайн-выборки не менее 2 тысяч человек.
- Для качественной коррекции Propensity Score Correction важно сохранить доли населения, попадающие на значимые для исследования социальные признаки.
Вызванные известные предвзятости в демографических данных онлайн- и офлайн-панелей можно устранить с помощью взвешивания.
Однако сильный дисбаланс в весовых характеристиках или отсутствие какой-либо социальной группы в панелях может привести к ошибкам и негативно повлиять на конечные результаты.
Поэтому необходим строгий и регулярный контроль за заполненностью групп взвешивания в каждой панели.
Если выявляются систематические недостатки/превышения значимых социальных показателей, необходим пересмотр процедуры набора персонала.
- При моделировании показателей склонности необходимо контролировать классовый дисбаланс между онлайн- и офлайн-выборками.
Если дисбаланс классов оказывает существенное влияние на качество коррекции оценок активности, необходимо применить дополнительные методы: создание синтетической совокупности для отсутствующего класса, калибровку вероятностей.
Его практическая реализация может незначительно отличаться в зависимости от структуры исходных данных и конечных целей исследования.
Однако гибкость настройки этого алгоритма и возможность комбинирования с другими методами коррекции делают его интересным и перспективным способом решения проблемы систематической ошибки в оценках активности онлайн-респондентов.
Сегодня не существует золотого стандарта борьбы с предвзятостью, вызванной неслучайным онлайн-рекрутингом.
Поэтому для медиаисследователей, перед которыми стоит данная задача, важно понимать практическую ценность, преимущества и недостатки используемых методов коррекции.
Мы надеемся, что наши выводы и пример реализации коррекции Propensity Score будут полезны при выборе алгоритма для улучшения данных онлайн-панелей.
Авторы: команда Data Science, Data Processing and Analytics, Mediascope. Теги: #Машинное обучение #математика #Большие данные #мл #исследования #Интеллектуальный анализ данных #медиа #Mediascope #онлайн-панель #панельные измерения #панельные измерения #Корректировка оценки склонности #Корректировка оценки склонности #Взвешивание RIM
-
Google Научился Сравнивать Сайты
19 Oct, 24 -
3D Стереофотография Своими Руками
19 Oct, 24 -
Подборка Плагинов Для Jquery
19 Oct, 24