Поиск ассоциативных правил хорошо известный метод анализа данных. На Хабре уже была публикация с историей вопроса об этом методе и общими определениями. В этой статье пойдет речь об адаптации алгоритма поиска ассоциативных правил в данных полученных опросами респондентов. Результаты работы алгоритма продемонстрированы на данных европейского социального исследования (ESS).
![](https://habrastorage.org/files/125/a59/53a/125a5953a8a347ca8f022d61531d673e.jpg)
Foto: Owen Humphreys/AP
Под результатами опроса понимается база ответов респондентов на вопросы исследования. Характер исследования — социологический, маркетинговый или любой другой, для последующего анализа не имеет значения. Помимо ESS, с примерами различных исследований можно ознакомиться на сайтах ВЦИОМ, Левада-Центр, TNS Russia и множества других организаций.
Особенностью опросов является то, что транзакции в исследовании не обязательно равновероятны. Как правило, у респондентов в исследовании определены веса. Алгоритм Apriori, в реализации Christian Borgelt (версия 6.18), позволяет использовать целочисленные положительные веса транзакций, которые определяют их кратность.
Исходные файлы этой программы находятся в открытом доступе. Небольшие изменения в ее коде позволяют определять положительные вещественнозначные веса транзакций в алгоритме поиска ассоциативных правил.
ESS — проект по измерению установок, представлений, мнений и поведения населения более 30 европейских стран. На сайте проекта выложены в открытый доступ методология и результаты опросов. В примерах использованы данные 6 волны (редакция 2.1).
Постановка задачи.
Пусть для анализа выбрана некоторая группы стран C, например, C = {Дания, Россия, Франция}.
Требуется на основе данных ESS выявить те признаки, доли которых для одной из стран C значительно превосходят доли этого признака в остальных странах C.
Подготовка данных.
Правило X -> Y должно показывать, что признак X более характерен для представителей страны Y.
Пусть веса респондентов ESS опроса (переменная dweight) представлены следующим образом:
Здесь индекс j определяет страну, а индекс i перечисляет респондентов j-ой страны.
Нам требуется нормировать веса таким образом, чтобы сумма весов респондентов для каждой страны из C равнялась 100, то есть
![image](https://habrastorage.org/getpro/habr/post_images/cd4/8aa/928/cd48aa928936389f70039dd272b691d2.png)
При таком определении весов поддержка правила supp(X -> Yj) определяет долю признака X в стране Yj.
Поддержка признака X равна сумме долей этого признака по всем странам из C:
.
Тогда достоверность правила X -> Yj — это отношения доли признака X в стране Yj к сумме долей X по всем странам из C.
Данные опроса были загружены в среду R с помощью пакета foreign.
Ответы респондентов на общие для стран вопросы были конвертированы в базу транзакций с использованием пакета arules.
Нахождение и визуализация решения задачи.
При нахождении правил использовались следующие ограничения:
1) Правая часть Y, в правиле X -> Y, содержит только данные о стране;
2) Левая часть X состоит не более чем из 2 элементов (утверждений);
3) Минимально допустимые значения поддержки и достоверности правила — 3% и 2/3*100% соответственно.
Как известно, число полученных ассоциативных правил может быть достаточно большим. Для удобства отображения решения был использован сервис Tableau Public, который позволяет создавать панели управления визуализации данных.
![](https://habrastorage.org/files/6d1/299/8ba/6d12998ba74346179a4c893173426d50.png)
Выделенное правило сообщает, что около 17% жителей Франции, достигших 15 летнего возраста:
— полностью согласны с утверждением, что для большинства жителей страны жизнь становиться скорее хуже, чем лучше
и
— не олицетворяют себя с человеком, для которого важно быть богатым, иметь много денег и дорогие вещи.
Уровень достоверности этого правила высокий — 84 %. Он показывает, что суммарные доли респондентов, ответивших в точности так же в Дании и России, более чем в 5 раз меньше 17% (так как 0.84 / 0.16 > 5).
Вычислим левую часть X этого правила по каждой стране в отдельности. Получаем следующие результаты
![](https://habrastorage.org/files/f0b/487/66d/f0b48766de7c43f480bd78075d002817.png)
Кому интересно посмотреть на получившиеся правила самостоятельно, могут пройти по этой ссылке.
Что касается маркетинговых опросов. По их результатам, например, можно проводить поиск правил в группах лояльных потребителей различных марок товаров одного вида. В этом случае производитель марки N выявляет особенности «своих» покупателей и получает информацию об отличительных характеристиках потребителей, предпочитающих продукцию конкурентов.
Поиск ассоциативных правил в базе взвешенных транзакций позволяет решать задачи разведочного анализа данных полученных опросами респондентов. Этот метод обнаруживает характерные события опираясь на их точечные значения (доли). В следующей части статьи будут рассмотрены способы статистической оценки этих результатов.
![](https://habrastorage.org/files/125/a59/53a/125a5953a8a347ca8f022d61531d673e.jpg)
Foto: Owen Humphreys/AP
Под результатами опроса понимается база ответов респондентов на вопросы исследования. Характер исследования — социологический, маркетинговый или любой другой, для последующего анализа не имеет значения. Помимо ESS, с примерами различных исследований можно ознакомиться на сайтах ВЦИОМ, Левада-Центр, TNS Russia и множества других организаций.
Определения и примеры ассоциативных правил
Термин транзакция, применительно к опросам, означает набор ответов на вопросы исследования, полученные от одного респондента. Пример транзакции в опросе: Пол = Женский, Образование = Высшее, Семейное положение = Не замужем,….
Количественные переменные в опросе зачастую бывают представлены в виде сегментов: Возраст = 18-25, Объем потребления прохладительных напитков за последние 6 мес. = 5-10 литров.
Таким образом, всевозможные ответы на вопросы исследования определяют конечное множество I, а данные опроса представляют собой набор транзакций D, число которых равно числу респондентов исследования.
Пусть A — некоторое непустое подмножество I. Число транзакций из D, содержащих все элементы из A, называется поддержкой A и обозначается supp(A).
Ассоциативное правило X -> Y, это пара непересекающихся подмножеств X, Y из множества I. Две основные характеристики правила X -> Y — его поддержка и достоверность:
![image](https://habrastorage.org/getpro/habr/post_images/b74/4b7/738/b744b77388fdee92a2cb088d5aac2665.png)
Пример ассоциативного правила Возраст = 55+ -> Социальный статус = Пенсионер. Его поддержка 0.3 означает, что 30 % респондентов исследования имеют возраст не менее 55 лет и являются пенсионерами. Достоверность правила 0.7 показывает, что среди респондентов исследования в возрасте не менее 55 лет 70 % являются пенсионерами.
Количественные переменные в опросе зачастую бывают представлены в виде сегментов: Возраст = 18-25, Объем потребления прохладительных напитков за последние 6 мес. = 5-10 литров.
Таким образом, всевозможные ответы на вопросы исследования определяют конечное множество I, а данные опроса представляют собой набор транзакций D, число которых равно числу респондентов исследования.
Пусть A — некоторое непустое подмножество I. Число транзакций из D, содержащих все элементы из A, называется поддержкой A и обозначается supp(A).
Ассоциативное правило X -> Y, это пара непересекающихся подмножеств X, Y из множества I. Две основные характеристики правила X -> Y — его поддержка и достоверность:
![image](https://habrastorage.org/getpro/habr/post_images/b74/4b7/738/b744b77388fdee92a2cb088d5aac2665.png)
Пример ассоциативного правила Возраст = 55+ -> Социальный статус = Пенсионер. Его поддержка 0.3 означает, что 30 % респондентов исследования имеют возраст не менее 55 лет и являются пенсионерами. Достоверность правила 0.7 показывает, что среди респондентов исследования в возрасте не менее 55 лет 70 % являются пенсионерами.
Особенностью опросов является то, что транзакции в исследовании не обязательно равновероятны. Как правило, у респондентов в исследовании определены веса. Алгоритм Apriori, в реализации Christian Borgelt (версия 6.18), позволяет использовать целочисленные положительные веса транзакций, которые определяют их кратность.
Исходные файлы этой программы находятся в открытом доступе. Небольшие изменения в ее коде позволяют определять положительные вещественнозначные веса транзакций в алгоритме поиска ассоциативных правил.
ESS — проект по измерению установок, представлений, мнений и поведения населения более 30 европейских стран. На сайте проекта выложены в открытый доступ методология и результаты опросов. В примерах использованы данные 6 волны (редакция 2.1).
Постановка задачи.
Пусть для анализа выбрана некоторая группы стран C, например, C = {Дания, Россия, Франция}.
Требуется на основе данных ESS выявить те признаки, доли которых для одной из стран C значительно превосходят доли этого признака в остальных странах C.
Подготовка данных.
Правило X -> Y должно показывать, что признак X более характерен для представителей страны Y.
Пусть веса респондентов ESS опроса (переменная dweight) представлены следующим образом:
![image](https://habrastorage.org/getpro/habr/post_images/f47/02b/6dd/f4702b6ddb89cd3fe11b23859c913462.png)
Нам требуется нормировать веса таким образом, чтобы сумма весов респондентов для каждой страны из C равнялась 100, то есть
![image](https://habrastorage.org/getpro/habr/post_images/cd4/8aa/928/cd48aa928936389f70039dd272b691d2.png)
При таком определении весов поддержка правила supp(X -> Yj) определяет долю признака X в стране Yj.
Поддержка признака X равна сумме долей этого признака по всем странам из C:
![image](https://habrastorage.org/getpro/habr/post_images/e20/3d1/33d/e203d133d5edef7ee39fee2bf84a41ac.png)
Тогда достоверность правила X -> Yj — это отношения доли признака X в стране Yj к сумме долей X по всем странам из C.
Данные опроса были загружены в среду R с помощью пакета foreign.
Ответы респондентов на общие для стран вопросы были конвертированы в базу транзакций с использованием пакета arules.
Нахождение и визуализация решения задачи.
При нахождении правил использовались следующие ограничения:
1) Правая часть Y, в правиле X -> Y, содержит только данные о стране;
2) Левая часть X состоит не более чем из 2 элементов (утверждений);
3) Минимально допустимые значения поддержки и достоверности правила — 3% и 2/3*100% соответственно.
Как известно, число полученных ассоциативных правил может быть достаточно большим. Для удобства отображения решения был использован сервис Tableau Public, который позволяет создавать панели управления визуализации данных.
![](https://habrastorage.org/files/6d1/299/8ba/6d12998ba74346179a4c893173426d50.png)
Выделенное правило сообщает, что около 17% жителей Франции, достигших 15 летнего возраста:
— полностью согласны с утверждением, что для большинства жителей страны жизнь становиться скорее хуже, чем лучше
и
— не олицетворяют себя с человеком, для которого важно быть богатым, иметь много денег и дорогие вещи.
Уровень достоверности этого правила высокий — 84 %. Он показывает, что суммарные доли респондентов, ответивших в точности так же в Дании и России, более чем в 5 раз меньше 17% (так как 0.84 / 0.16 > 5).
Вычислим левую часть X этого правила по каждой стране в отдельности. Получаем следующие результаты
![](https://habrastorage.org/files/f0b/487/66d/f0b48766de7c43f480bd78075d002817.png)
Кому интересно посмотреть на получившиеся правила самостоятельно, могут пройти по этой ссылке.
Что касается маркетинговых опросов. По их результатам, например, можно проводить поиск правил в группах лояльных потребителей различных марок товаров одного вида. В этом случае производитель марки N выявляет особенности «своих» покупателей и получает информацию об отличительных характеристиках потребителей, предпочитающих продукцию конкурентов.
Поиск ассоциативных правил в базе взвешенных транзакций позволяет решать задачи разведочного анализа данных полученных опросами респондентов. Этот метод обнаруживает характерные события опираясь на их точечные значения (доли). В следующей части статьи будут рассмотрены способы статистической оценки этих результатов.