15 янв. 2011 г.

Алгоритм arules и леворукость

Пост Александра Виноградова «Market Basket Analysis и алгоритм APRIORI» познакомил меня с пакетом, который позволяет найти эмпирические правила комбинации товаров в массиве покупок.

В этом же тексте автор высказал предположение в применимости такого алгоритма не только к маркетинговым данным, но и к другим комбинациям номинальных признаков.

В самом деле, что мешает рассматривать заполненную анкету как чек на покупку ряда товаров в магазине и пытаться найти в этих покупках те или иные закономерности?

Тестом выступили собранные в 2008 г. данные о левшах и правшах. Напомню, что та крошечная анкета проверяла гипотезу: леворукие чаще обращают внимание на леворукость других людей, чем праворукие.


Массив этих данных я преобразовал в соответствии с требованиями пакета arules, ввёл в R, указав параметры такие как у А. Виноградова (sup = 0.5, conf = 0.9), нажал на ENTER и ... ничего не получил.

После проверки и размышлений я пришёл к выводу, что, возможно, параметры выставлены черезчур высокие и начал с ними экспериментировать. Действительно, если уменьшить уровень поддержки (sup) c 0.5 до 0.4, то появляется первое правило:

- если человек не обращает внимания на -рукость, то в 9 случаях из 10 он — правша.

При дальнейшем снижении уровня поддержки, правил появляется больше, но они также включают в себя найденную закономерность. Напр., при sup = 0.25:

- если человек не обращает внимания на -рукость, то в 9 случаях из 10 он — правша;
- если студент не обращает внимания на -рукость, то в 9 случаях из 10 он — правша;
- если женщина не обращает внимания на -рукость, то в 9 случаях из 10 она — правша.

Поскольку правшей намного больше, чем левшей, то можно было бы возразить, что среди тех, кто не замечает -рукости окружающих, и так будет больше правшей и, следовательно, алгоритм не срабатывает. Однако, из наших данных следует, что среди тех, кто обращает внимание на -рукость, правшей значимо меньше (80% или 8 из десяти).

Как видно, полученные правила совпадают со сделанными ранее выводами, а это значит, что алгоритм работает верно.

Комментариев нет: