{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Когнитивные технологии\n", "\n", "*Алла Тамбовцева, НИУ ВШЭ*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Оценка связи между переменными, измеренными в разных шкалах" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Немного про шкалы измерения данных\n", "\n", "Выделяют четыре основных типа шкал:\n", "\n", "* Качественная (номинальная) шкала\n", "* Порядковая (ординальная) шкала\n", "* Абсолютная шкала (шкала отношений)\n", "* Интервальная шкала\n", "\n", "Два последних типа часто объединяют и называют *количественной шкалой*. Позволю себе здесь сослаться на [статью](https://ru.wikipedia.org/wiki/%D0%A8%D0%BA%D0%B0%D0%BB%D0%B0) в Википедии, там приведено достаточно подробное описание шкал с примерами." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Оценка связи между переменными в качественной шкале\n", "\n", "Для оценки связи между двумя переменными в качественной (номинальной) шкале используются таблицы сопряжённости (*contingency tables*) и критерий хи-квадрат. Оценим связь между двумя показателями из таблицы, содержащей результаты опроса студентов 1 курса НИУ ВШЭ (ОП «Политология»). Опрос был учебным, но с социолингвистическим уклоном: как жители разных регионов называют различные предметы и какие выражения используют. \n", "\n", "Идея опроса была навеяна спором на кафедре о том, как называть замазку/корректор/штрих и продолжившимся ещё более жарким спором, как продолжить фразу «жадина-говядина – ...». Оказалось, что коллеги из Москвы не использовали вариант «Жадина-говядина – солёный огурец, на полу валяется, никто его не ест», а коллеги не из Москвы никогда не слышали вариант «Жадина-говядина – турецкий барабан, кто на нём играет, тот рыжий таракан». Студентам опрос пришёлся по душе, правда, в какое-то более серьёзное исследование это не переросло.\n", "\n", "На сами вопросы можно посмотреть [здесь](https://github.com/allatambov/R-programming-3/blob/master/exam-23-03/soc_ling_form.pdf).\n", "\n", "Импортируем библиотеку `pandas` и загрузим файл по ссылке:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "df = pd.read_csv(\"https://raw.githubusercontent.com/allatambov/R-programming-3/master/exam-23-03/soc_ling.csv\",\n", " encoding=\"UTF-8\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Посмотрим на первые строки таблицы:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0idgenderageplaceregionX1X2X3X4X5X6X7X8X9X10contsokrugmoscow
011Женский19МоскваМосквазамазка/штрихластик/стерка/резинкаштрихтреугольникластикскакалкиштрихчайникфлешкасоленый огурецсоленый огурецЦентральныйTrue
122Женский18АнгарскИркутская областьзамазкаластикзамазкаугольникластикскакалказамазкачайникфлешкаПустая шоколадинатурецкий барабанСибирскийFalse
233Женский18МоскваМосквазамазкаластиккорректорлинейкаластикскакалкакорректорчайникфлэшкаСоленый огурецсоленый огурецЦентральныйTrue
344Женский18ТираспольМолдавиякорректорластиккорректорлинейкаластикскакалкакорректорчайникфлешкаСоленый огурецсоленый огурецЗарубежные территорииFalse
455Женский19ВологдаВологодская областькорректорластиккорректорлинейка (или угольник)ластикскакалкакорректорчайникфлешкаВ попе шоколадинашоколадинаСеверо-ЗападныйFalse
\n", "
" ], "text/plain": [ " Unnamed: 0 id gender age place region \\\n", "0 1 1 Женский 19 Москва Москва \n", "1 2 2 Женский 18 Ангарск Иркутская область \n", "2 3 3 Женский 18 Москва Москва \n", "3 4 4 Женский 18 Тирасполь Молдавия \n", "4 5 5 Женский 19 Вологда Вологодская область \n", "\n", " X1 X2 X3 X4 \\\n", "0 замазка/штрих ластик/стерка/резинка штрих треугольник \n", "1 замазка ластик замазка угольник \n", "2 замазка ластик корректор линейка \n", "3 корректор ластик корректор линейка \n", "4 корректор ластик корректор линейка (или угольник) \n", "\n", " X5 X6 X7 X8 X9 X10 \\\n", "0 ластик скакалки штрих чайник флешка соленый огурец \n", "1 ластик скакалка замазка чайник флешка Пустая шоколадина \n", "2 ластик скакалка корректор чайник флэшка Соленый огурец \n", "3 ластик скакалка корректор чайник флешка Соленый огурец \n", "4 ластик скакалка корректор чайник флешка В попе шоколадина \n", "\n", " conts okrug moscow \n", "0 соленый огурец Центральный True \n", "1 турецкий барабан Сибирский False \n", "2 соленый огурец Центральный True \n", "3 соленый огурец Зарубежные территории False \n", "4 шоколадина Северо-Западный False " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Построим таблицу сопряжённости для переменных `conts` (нормализованное продолжение фразы «жадина-говядина – ...») и `region` (родной регион респондента)." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
regionАлтайский крайБелгородская областьВолгоградская областьВологодская областьИркутская областьКалужская областьМолдавияМолдоваМоскваМосковская область...Приморский крайРеспублика КомиРеспублика Саха (Якутия)Самарская областьСвердловская областьТверская областьУзбекистанХМАО-ЮграХабаровский крайЦО, Москва
conts
другое0000000120...1000000000
соленый огурец11200110154...0102011111
турецкий барабан0000100090...0000000000
турецкий барабан/соленый огурец0000000020...0000000000
шоколадина0001000000...0030100000
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ "region Алтайский край Белгородская область \\\n", "conts \n", "другое 0 0 \n", "соленый огурец 1 1 \n", "турецкий барабан 0 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 0 0 \n", "\n", "region Волгоградская область Вологодская область \\\n", "conts \n", "другое 0 0 \n", "соленый огурец 2 0 \n", "турецкий барабан 0 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 0 1 \n", "\n", "region Иркутская область Калужская область \\\n", "conts \n", "другое 0 0 \n", "соленый огурец 0 1 \n", "турецкий барабан 1 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 0 0 \n", "\n", "region Молдавия Молдова Москва \\\n", "conts \n", "другое 0 1 2 \n", "соленый огурец 1 0 15 \n", "турецкий барабан 0 0 9 \n", "турецкий барабан/соленый огурец 0 0 2 \n", "шоколадина 0 0 0 \n", "\n", "region Московская область ... \\\n", "conts ... \n", "другое 0 ... \n", "соленый огурец 4 ... \n", "турецкий барабан 0 ... \n", "турецкий барабан/соленый огурец 0 ... \n", "шоколадина 0 ... \n", "\n", "region Приморский край Республика Коми \\\n", "conts \n", "другое 1 0 \n", "соленый огурец 0 1 \n", "турецкий барабан 0 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 0 0 \n", "\n", "region Республика Саха (Якутия) Самарская область \\\n", "conts \n", "другое 0 0 \n", "соленый огурец 0 2 \n", "турецкий барабан 0 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 3 0 \n", "\n", "region Свердловская область Тверская область \\\n", "conts \n", "другое 0 0 \n", "соленый огурец 0 1 \n", "турецкий барабан 0 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 1 0 \n", "\n", "region Узбекистан ХМАО-Югра Хабаровский край \\\n", "conts \n", "другое 0 0 0 \n", "соленый огурец 1 1 1 \n", "турецкий барабан 0 0 0 \n", "турецкий барабан/соленый огурец 0 0 0 \n", "шоколадина 0 0 0 \n", "\n", "region ЦО, Москва \n", "conts \n", "другое 0 \n", "соленый огурец 1 \n", "турецкий барабан 0 \n", "турецкий барабан/соленый огурец 0 \n", "шоколадина 0 \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(df.conts, df.region)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Таблица сопряжённости – таблица совместных частот. Например, по таблице выше мы можем выяснить, что чаще всего фразу «жадина-говядина» с «турецким барабаном», действительно, используют студенты из Москвы (9), а один студент из Вологодской области, один студент из Иркутской области и три студента из Якутии предложили вариант со словом «шоколадина». \n", "\n", "С такой таблицей работать будет неудобно и не совсем корректно: слишком много ячеек с нулевыми и маленькими частотами. Чтобы этого избежать, укрупним категории, например, объединим все регионы в федеральные округа." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Москва', 'Иркутская область', 'Молдавия', 'Вологодская область',\n", " 'Белгородская область', 'Свердловская область',\n", " 'Московская область', 'Калужская область',\n", " 'Республика Саха (Якутия)', 'Самарская область', 'Приморский край',\n", " 'Тверская область', 'ЦО, Москва', 'Узбекистан', 'Республика Коми',\n", " 'Молдова', 'Пермский край', 'Хабаровский край', 'ХМАО-Югра',\n", " 'Новосибирская область', 'Алтайский край', 'Волгоградская область'],\n", " dtype=object)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.region.unique() # все уникальные значения регионов в таблице" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Напишем функцию, которая будет приписывать регион к федеральному округу (для простоты возьмём только те регионы, которые есть в `df`) и создадим новый столбец `okrug`:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def get_okrug(x):\n", " \n", " Cent = ['Белгородская область', 'Тверская область', 'ЦО, Москва', 'Москва', \n", " 'Московская область', 'Калужская область']\n", " NoWest = ['Вологодская область', 'Республика Коми']\n", " South = ['Волгоградская область']\n", " Privolzh = ['Самарская область', 'Пермский край']\n", " Ural = ['Свердловская область', 'ХМАО-Югра']\n", " Sibir = ['Алтайский край', 'Новосибирская область', 'Иркутская область']\n", " DEast = ['Республика Саха (Якутия)', 'Хабаровский край', 'Приморский край']\n", " Out = ['Молдавия', 'Молдова', 'Узбекистан']\n", " \n", " if x in Cent:\n", " ok = 'Центральный'\n", " if x in NoWest:\n", " ok = 'Северо-Западный'\n", " if x in South:\n", " ok = 'Южный'\n", " if x in Privolzh:\n", " ok = 'Приволжский'\n", " if x in Ural:\n", " ok = 'Уральский'\n", " if x in Sibir:\n", " ok = 'Сибирский'\n", " if x in DEast:\n", " ok = 'Дальневосточный'\n", " if x in Out:\n", " ok = \"Зарубежные территории\"\n", " return ok\n", "\n", "df['okrug'] = df.region.apply(get_okrug)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0idgenderageplaceregionX1X2X3X4X5X6X7X8X9X10contsokrug
011Женский19МоскваМосквазамазка/штрихластик/стерка/резинкаштрихтреугольникластикскакалкиштрихчайникфлешкасоленый огурецсоленый огурецЦентральный
122Женский18АнгарскИркутская областьзамазкаластикзамазкаугольникластикскакалказамазкачайникфлешкаПустая шоколадинатурецкий барабанСибирский
233Женский18МоскваМосквазамазкаластиккорректорлинейкаластикскакалкакорректорчайникфлэшкаСоленый огурецсоленый огурецЦентральный
344Женский18ТираспольМолдавиякорректорластиккорректорлинейкаластикскакалкакорректорчайникфлешкаСоленый огурецсоленый огурецЗарубежные территории
455Женский19ВологдаВологодская областькорректорластиккорректорлинейка (или угольник)ластикскакалкакорректорчайникфлешкаВ попе шоколадинашоколадинаСеверо-Западный
\n", "
" ], "text/plain": [ " Unnamed: 0 id gender age place region \\\n", "0 1 1 Женский 19 Москва Москва \n", "1 2 2 Женский 18 Ангарск Иркутская область \n", "2 3 3 Женский 18 Москва Москва \n", "3 4 4 Женский 18 Тирасполь Молдавия \n", "4 5 5 Женский 19 Вологда Вологодская область \n", "\n", " X1 X2 X3 X4 \\\n", "0 замазка/штрих ластик/стерка/резинка штрих треугольник \n", "1 замазка ластик замазка угольник \n", "2 замазка ластик корректор линейка \n", "3 корректор ластик корректор линейка \n", "4 корректор ластик корректор линейка (или угольник) \n", "\n", " X5 X6 X7 X8 X9 X10 \\\n", "0 ластик скакалки штрих чайник флешка соленый огурец \n", "1 ластик скакалка замазка чайник флешка Пустая шоколадина \n", "2 ластик скакалка корректор чайник флэшка Соленый огурец \n", "3 ластик скакалка корректор чайник флешка Соленый огурец \n", "4 ластик скакалка корректор чайник флешка В попе шоколадина \n", "\n", " conts okrug \n", "0 соленый огурец Центральный \n", "1 турецкий барабан Сибирский \n", "2 соленый огурец Центральный \n", "3 соленый огурец Зарубежные территории \n", "4 шоколадина Северо-Западный " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Теперь построим таблицу сопряжёенности для переменных `conts` и `okrug`:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
okrugДальневосточныйЗарубежные территорииПриволжскийСеверо-ЗападныйСибирскийУральскийЦентральныйЮжный
conts
другое11000020
соленый огурец122121232
турецкий барабан00001090
турецкий барабан/соленый огурец00000020
шоколадина30110100
\n", "
" ], "text/plain": [ "okrug Дальневосточный Зарубежные территории \\\n", "conts \n", "другое 1 1 \n", "соленый огурец 1 2 \n", "турецкий барабан 0 0 \n", "турецкий барабан/соленый огурец 0 0 \n", "шоколадина 3 0 \n", "\n", "okrug Приволжский Северо-Западный Сибирский \\\n", "conts \n", "другое 0 0 0 \n", "соленый огурец 2 1 2 \n", "турецкий барабан 0 0 1 \n", "турецкий барабан/соленый огурец 0 0 0 \n", "шоколадина 1 1 0 \n", "\n", "okrug Уральский Центральный Южный \n", "conts \n", "другое 0 2 0 \n", "соленый огурец 1 23 2 \n", "турецкий барабан 0 9 0 \n", "турецкий барабан/соленый огурец 0 2 0 \n", "шоколадина 1 0 0 " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "table = pd.crosstab(df.conts, df.okrug)\n", "table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Теперь сформируем из обычной таблицы сопряжённости объект типа `Table` из модуля `stats` библиотеки `statsmodels`, чтобы на её основе можно было проверять гипотезу о независимости двух признаков (переменных в качественной шкале)." ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "from statsmodels.api import stats\n", "cont_table = stats.Table(table)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "При выявлении связи между качественными признаками выдвигается следующая нулевая гипотеза: \n", "$$\n", "H_0: \\text{признаки независимы (связи нет)}.\n", "$$\n", "\n", "Соответственно, альтернативная гипотеза:\n", "\n", "$$\n", "H_1: \\text{признаки не являются независимыми (связь есть)}.\n", "$$\n", "\n", "Как происходит проверка такой нулевой гипотезы? Сравниваются частоты, полученные на основе имеющихся данных (которые мы видели в таблице выше) и ожидаемые частоты – частоты, которые имели бы место, если нулевая гипотеза была бы верна. Считаются разности между наблюдаемыми и ожидаемыми частотами, возводятся в квадрат, чтобы учесть отклонения в обе стороны, и нормируются. Далее определяется сумма этих нормированных квадратов разностей (она имеет распределение [хи-квадрат](https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%85%D0%B8-%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82) с числом степеней свободы равным $(nrows-1)(ncols-1)$), и оценивается, является ли полученное значение типичным для такого распределения хи-квадрат в случае, если нулевая гипотеза верна. \n", "\n", "Посмотрим на ожидаемые частоты:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
okrugДальневосточныйЗарубежные территорииПриволжскийСеверо-ЗападныйСибирскийУральскийЦентральныйЮжный
conts
другое0.7894740.5789470.5789470.4736840.5789470.4736844.0526320.473684
соленый огурец3.7500002.7500002.7500002.2500002.7500002.25000019.2500002.250000
турецкий барабан1.3815791.0131581.0131580.8289471.0131580.8289477.0921050.828947
турецкий барабан/соленый огурец0.5921050.4342110.4342110.3552630.4342110.3552633.0394740.355263
шоколадина0.9868420.7236840.7236840.5921050.7236840.5921055.0657890.592105
\n", "
" ], "text/plain": [ "okrug Дальневосточный Зарубежные территории \\\n", "conts \n", "другое 0.789474 0.578947 \n", "соленый огурец 3.750000 2.750000 \n", "турецкий барабан 1.381579 1.013158 \n", "турецкий барабан/соленый огурец 0.592105 0.434211 \n", "шоколадина 0.986842 0.723684 \n", "\n", "okrug Приволжский Северо-Западный Сибирский \\\n", "conts \n", "другое 0.578947 0.473684 0.578947 \n", "соленый огурец 2.750000 2.250000 2.750000 \n", "турецкий барабан 1.013158 0.828947 1.013158 \n", "турецкий барабан/соленый огурец 0.434211 0.355263 0.434211 \n", "шоколадина 0.723684 0.592105 0.723684 \n", "\n", "okrug Уральский Центральный Южный \n", "conts \n", "другое 0.473684 4.052632 0.473684 \n", "соленый огурец 2.250000 19.250000 2.250000 \n", "турецкий барабан 0.828947 7.092105 0.828947 \n", "турецкий барабан/соленый огурец 0.355263 3.039474 0.355263 \n", "шоколадина 0.592105 5.065789 0.592105 " ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cont_table.fittedvalues" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "А теперь на остатки – стандартизированные разности между наблюдаемыми и ожидаемыми частотами (имеют стандартное нормальное распределение):" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
okrugДальневосточныйЗарубежные территорииПриволжскийСеверо-ЗападныйСибирскийУральскийЦентральныйЮжный
conts
другое0.7996711.210500-0.1037570.038236-0.1037570.038236-0.7712580.038236
соленый огурец-1.161895-0.150756-0.150756-0.500000-0.150756-0.5000000.9686650.166667
турецкий барабан-0.750021-0.509815-0.509815-0.3612960.483670-0.3612960.904170-0.361296
турецкий барабан/соленый огурец-0.1196970.0998400.0998400.2428310.0998400.242831-0.3094360.242831
шоколадина2.529857-0.2629420.9125651.179875-0.2629421.179875-2.028581-0.119697
\n", "
" ], "text/plain": [ "okrug Дальневосточный Зарубежные территории \\\n", "conts \n", "другое 0.799671 1.210500 \n", "соленый огурец -1.161895 -0.150756 \n", "турецкий барабан -0.750021 -0.509815 \n", "турецкий барабан/соленый огурец -0.119697 0.099840 \n", "шоколадина 2.529857 -0.262942 \n", "\n", "okrug Приволжский Северо-Западный Сибирский \\\n", "conts \n", "другое -0.103757 0.038236 -0.103757 \n", "соленый огурец -0.150756 -0.500000 -0.150756 \n", "турецкий барабан -0.509815 -0.361296 0.483670 \n", "турецкий барабан/соленый огурец 0.099840 0.242831 0.099840 \n", "шоколадина 0.912565 1.179875 -0.262942 \n", "\n", "okrug Уральский Центральный Южный \n", "conts \n", "другое 0.038236 -0.771258 0.038236 \n", "соленый огурец -0.500000 0.968665 0.166667 \n", "турецкий барабан -0.361296 0.904170 -0.361296 \n", "турецкий барабан/соленый огурец 0.242831 -0.309436 0.242831 \n", "шоколадина 1.179875 -2.028581 -0.119697 " ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cont_table.resid_pearson" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Если большинство остатков выходят за границы типичных для стандартной нормальной величины значений (обычно таковыми считают значения от $-2$ до $2$), то это может служить основанием для отвержения нулевой гипотезы о независимости признаков. Здесь такого не наблюдается. Убедимся в выводе, определив p-value явно:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7460857589281362" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res = cont_table.test_nominal_association()\n", "res.pvalue" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Действительно, на любом конвенциональном уровне значимости (5%, 10%, 1%) нет оснований отвергнуть нулевую гипотезу. То, как студент продолжает фразу «Жадина-говядина» не связано с тем, в каком федеральном округе он жил больше всего. Проверим то же самое, но не для всех округов, а конкретно для разделения *Москва-не Москва*." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0idgenderageplaceregionX1X2X3X4X5X6X7X8X9X10contsokrugmoscow
011Женский19МоскваМосквазамазка/штрихластик/стерка/резинкаштрихтреугольникластикскакалкиштрихчайникфлешкасоленый огурецсоленый огурецЦентральныйTrue
122Женский18АнгарскИркутская областьзамазкаластикзамазкаугольникластикскакалказамазкачайникфлешкаПустая шоколадинатурецкий барабанСибирскийFalse
233Женский18МоскваМосквазамазкаластиккорректорлинейкаластикскакалкакорректорчайникфлэшкаСоленый огурецсоленый огурецЦентральныйTrue
344Женский18ТираспольМолдавиякорректорластиккорректорлинейкаластикскакалкакорректорчайникфлешкаСоленый огурецсоленый огурецЗарубежные территорииFalse
455Женский19ВологдаВологодская областькорректорластиккорректорлинейка (или угольник)ластикскакалкакорректорчайникфлешкаВ попе шоколадинашоколадинаСеверо-ЗападныйFalse
\n", "
" ], "text/plain": [ " Unnamed: 0 id gender age place region \\\n", "0 1 1 Женский 19 Москва Москва \n", "1 2 2 Женский 18 Ангарск Иркутская область \n", "2 3 3 Женский 18 Москва Москва \n", "3 4 4 Женский 18 Тирасполь Молдавия \n", "4 5 5 Женский 19 Вологда Вологодская область \n", "\n", " X1 X2 X3 X4 \\\n", "0 замазка/штрих ластик/стерка/резинка штрих треугольник \n", "1 замазка ластик замазка угольник \n", "2 замазка ластик корректор линейка \n", "3 корректор ластик корректор линейка \n", "4 корректор ластик корректор линейка (или угольник) \n", "\n", " X5 X6 X7 X8 X9 X10 \\\n", "0 ластик скакалки штрих чайник флешка соленый огурец \n", "1 ластик скакалка замазка чайник флешка Пустая шоколадина \n", "2 ластик скакалка корректор чайник флэшка Соленый огурец \n", "3 ластик скакалка корректор чайник флешка Соленый огурец \n", "4 ластик скакалка корректор чайник флешка В попе шоколадина \n", "\n", " conts okrug moscow \n", "0 соленый огурец Центральный True \n", "1 турецкий барабан Сибирский False \n", "2 соленый огурец Центральный True \n", "3 соленый огурец Зарубежные территории False \n", "4 шоколадина Северо-Западный False " ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['moscow'] = df.region == 'Москва'\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "tt = pd.crosstab(df.moscow, df.conts)\n", "cont_table2 = stats.Table(tt)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.012555970911947822" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cont_table2.test_nominal_association().pvalue" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В данном случае на имеющихся данных у нас есть основания отвергнуть нулевую гипотезу о независимости признаков на 5% уровне значимости (`pvalue<0.05`). Следовательно, можем считать, что тот факт, из Москвы студент или нет, влияет на то, какую форму продолжения фразы о жадине он выбирает." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Оценка связи между переменными в порядковой и количественной шкале " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В теоретической части была подробно описана методика расчёта коэффициентов корреляции Пирсона и Спирмена, а также критерии их применимости, поэтому давайте просто посмотрим, как их вычислять с помощью библиотеки `scipy`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Загрузим уже знакомый по первой части специализации файл с оценками студентов `scores2.csv`:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv(\"https://raw.githubusercontent.com/allatambov/CognTech/master/2-python-libraries/scores2.csv\")" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idcatpsmstatsoceconengpolthmstat2phistlawphilpolsocptheopregcomppgamewpolmale
0М141БПЛТЛ024798898108.07997.088.06101
1М141БПЛТЛ03181010101010109.0910109.088.09101
2М141БПЛТЛ0759991091098.091099.088.0791
3М141БПЛТЛ017998899106.09998.088.0890
4М141БПЛТЛ06910101010101098.081097.065.08101
\n", "
" ], "text/plain": [ " id catps mstat soc econ eng polth mstat2 phist law \\\n", "0 М141БПЛТЛ024 7 9 8 8 9 8 10 8.0 7 \n", "1 М141БПЛТЛ031 8 10 10 10 10 10 10 9.0 9 \n", "2 М141БПЛТЛ075 9 9 9 10 9 10 9 8.0 9 \n", "3 М141БПЛТЛ017 9 9 8 8 9 9 10 6.0 9 \n", "4 М141БПЛТЛ069 10 10 10 10 10 10 9 8.0 8 \n", "\n", " phil polsoc ptheo preg compp game wpol male \n", "0 9 9 7.0 8 8.0 6 10 1 \n", "1 10 10 9.0 8 8.0 9 10 1 \n", "2 10 9 9.0 8 8.0 7 9 1 \n", "3 9 9 8.0 8 8.0 8 9 0 \n", "4 10 9 7.0 6 5.0 8 10 1 " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Рассчитаем коэффициент корреляции Пирсона между оценками студентов по математике (`mstat`) и статистике (`mstat2`)." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "import scipy.stats as st" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.7679923219060808, 8.027789126694679e-13)" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.pearsonr(data.mstat, data.mstat2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Вспомним, какая гипотеза проверяется при реализации формального критерия: \n", "\n", "$H_0:\\rho=0$ (связи нет, коэффициент корреляции не является статистически значимым)\n", "\n", "$H_1:\\rho \\ne0$ (связь есть, коэффцициент корреляции является статистически значимым)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Интерпретация:* связь положительная и сильная, нулевая гипотеза о незначимости коэффициента корреляции отвергается (на любом конвенциональном уровне значимости), есть значимая связь между оценками по двум частям курса «Математика и статистика»." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Однако, в нашем случае для оценки связи между этими переменными уместно всё же выбрать коэффицент корреляции Спирмена, поскольку шкала оценок является порядковой:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "SpearmanrResult(correlation=0.7775327757540231, pvalue=2.74438553278318e-13)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.spearmanr(data.mstat, data.mstat2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Принципиальных отличий в результатах не наблюдается. Если бы мы хотели оценить (и сразу визуализировать) связь между всеми парами переменных, мы могли бы воспользоваться библиотекой `seaborn` и нарисовать тепловую карту – в данном случае корреляционную матрицу с раскрашенными ячейками, интенсивность цвета которых отвечает за силу связи.\n", "\n", "Отберём нужные столбцы (все, кроме номера студенческого и пола студента):" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "small = data.loc[:,'catps' : 'game']\n", "small = small.dropna()" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
catpsmstatsoceconengpolthmstat2phistlawphilpolsocptheopregcomppgame
catps1.0000000.4868890.4637570.6128450.3246490.5213280.3044170.3755900.3592960.4536330.4144820.351877-0.0547610.3227220.248421
mstat0.4868891.0000000.4541280.6176280.4534960.3875930.7631510.3787230.4511240.5558160.3583620.4128860.0743350.1563740.373145
soc0.4637570.4541281.0000000.5838330.4474600.6489790.3769730.6563020.4692490.7115450.6714570.6090080.3509740.5703590.199828
econ0.6128450.6176280.5838331.0000000.3963720.4600550.6217650.3452220.3947220.7368660.3814570.5488710.1963450.4007270.294552
eng0.3246490.4534960.4474600.3963721.0000000.4020750.3788170.3428700.3470540.4696620.4065770.2978880.1470510.2667310.316410
polth0.5213280.3875930.6489790.4600550.4020751.0000000.4790910.7422950.5942680.6632440.7054300.6897140.3280880.6549600.357327
mstat20.3044170.7631510.3769730.6217650.3788170.4790911.0000000.3369460.5822140.6412520.3956790.6034310.2755260.2863900.486772
phist0.3755900.3787230.6563020.3452220.3428700.7422950.3369461.0000000.4514430.5677650.6489990.6313920.3841950.4468840.301759
law0.3592960.4511240.4692490.3947220.3470540.5942680.5822140.4514431.0000000.5780090.6149870.5767660.4527610.3842280.336355
phil0.4536330.5558160.7115450.7368660.4696620.6632440.6412520.5677650.5780091.0000000.5894870.7732780.3556120.5351400.443688
polsoc0.4144820.3583620.6714570.3814570.4065770.7054300.3956790.6489990.6149870.5894871.0000000.6574320.3365470.5737740.325602
ptheo0.3518770.4128860.6090080.5488710.2978880.6897140.6034310.6313920.5767660.7732780.6574321.0000000.5417700.6113800.478500
preg-0.0547610.0743350.3509740.1963450.1470510.3280880.2755260.3841950.4527610.3556120.3365470.5417701.0000000.5608210.277569
compp0.3227220.1563740.5703590.4007270.2667310.6549600.2863900.4468840.3842280.5351400.5737740.6113800.5608211.0000000.312462
game0.2484210.3731450.1998280.2945520.3164100.3573270.4867720.3017590.3363550.4436880.3256020.4785000.2775690.3124621.000000
\n", "
" ], "text/plain": [ " catps mstat soc econ eng polth mstat2 \\\n", "catps 1.000000 0.486889 0.463757 0.612845 0.324649 0.521328 0.304417 \n", "mstat 0.486889 1.000000 0.454128 0.617628 0.453496 0.387593 0.763151 \n", "soc 0.463757 0.454128 1.000000 0.583833 0.447460 0.648979 0.376973 \n", "econ 0.612845 0.617628 0.583833 1.000000 0.396372 0.460055 0.621765 \n", "eng 0.324649 0.453496 0.447460 0.396372 1.000000 0.402075 0.378817 \n", "polth 0.521328 0.387593 0.648979 0.460055 0.402075 1.000000 0.479091 \n", "mstat2 0.304417 0.763151 0.376973 0.621765 0.378817 0.479091 1.000000 \n", "phist 0.375590 0.378723 0.656302 0.345222 0.342870 0.742295 0.336946 \n", "law 0.359296 0.451124 0.469249 0.394722 0.347054 0.594268 0.582214 \n", "phil 0.453633 0.555816 0.711545 0.736866 0.469662 0.663244 0.641252 \n", "polsoc 0.414482 0.358362 0.671457 0.381457 0.406577 0.705430 0.395679 \n", "ptheo 0.351877 0.412886 0.609008 0.548871 0.297888 0.689714 0.603431 \n", "preg -0.054761 0.074335 0.350974 0.196345 0.147051 0.328088 0.275526 \n", "compp 0.322722 0.156374 0.570359 0.400727 0.266731 0.654960 0.286390 \n", "game 0.248421 0.373145 0.199828 0.294552 0.316410 0.357327 0.486772 \n", "\n", " phist law phil polsoc ptheo preg compp \\\n", "catps 0.375590 0.359296 0.453633 0.414482 0.351877 -0.054761 0.322722 \n", "mstat 0.378723 0.451124 0.555816 0.358362 0.412886 0.074335 0.156374 \n", "soc 0.656302 0.469249 0.711545 0.671457 0.609008 0.350974 0.570359 \n", "econ 0.345222 0.394722 0.736866 0.381457 0.548871 0.196345 0.400727 \n", "eng 0.342870 0.347054 0.469662 0.406577 0.297888 0.147051 0.266731 \n", "polth 0.742295 0.594268 0.663244 0.705430 0.689714 0.328088 0.654960 \n", "mstat2 0.336946 0.582214 0.641252 0.395679 0.603431 0.275526 0.286390 \n", "phist 1.000000 0.451443 0.567765 0.648999 0.631392 0.384195 0.446884 \n", "law 0.451443 1.000000 0.578009 0.614987 0.576766 0.452761 0.384228 \n", "phil 0.567765 0.578009 1.000000 0.589487 0.773278 0.355612 0.535140 \n", "polsoc 0.648999 0.614987 0.589487 1.000000 0.657432 0.336547 0.573774 \n", "ptheo 0.631392 0.576766 0.773278 0.657432 1.000000 0.541770 0.611380 \n", "preg 0.384195 0.452761 0.355612 0.336547 0.541770 1.000000 0.560821 \n", "compp 0.446884 0.384228 0.535140 0.573774 0.611380 0.560821 1.000000 \n", "game 0.301759 0.336355 0.443688 0.325602 0.478500 0.277569 0.312462 \n", "\n", " game \n", "catps 0.248421 \n", "mstat 0.373145 \n", "soc 0.199828 \n", "econ 0.294552 \n", "eng 0.316410 \n", "polth 0.357327 \n", "mstat2 0.486772 \n", "phist 0.301759 \n", "law 0.336355 \n", "phil 0.443688 \n", "polsoc 0.325602 \n", "ptheo 0.478500 \n", "preg 0.277569 \n", "compp 0.312462 \n", "game 1.000000 " ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "small.corr('spearman') # просто корреляционная матрица" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# картинка\n", "\n", "import seaborn as sn\n", "sn.heatmap(small.corr('spearman'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "На мой взгляд, будет привычнее, если более высоким значениям коэффициентов корреляции будут соответствовать более тёмные цвет. Изменим палитру:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sn.heatmap(small.corr('spearman'), cmap='Blues')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Про цветовые палитры можно почитать [здесь](https://seaborn.pydata.org/tutorial/color_palettes.html)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }