Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программные системы статистического анализа. Обнаружение закономерностей в данных с использованием системы R и языка Python. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Преимущество такого метода перед кросс-валидацией на K блоках в
x
том, что пропорции тренировочного и тестового наборов не зависят от числа повторений (блоков). Недостаток метода в том, что некоторые наблюдения могут ни разу не попасть в тестовый набор, тогда как дру­гие могут попасть в него более чем один раз. Другими словами, тесто-
т
вые наборы могу
перекрываться. Кроме того, поскольку разбиения проводятся случайно, результаты будут отличаться в случае повторно­го анализа.
Кросс-валидация по K блокам, в этом случае исходный набор
данных разбивается на K одинаковых по размеру блоков. Из K блоков один оставляется для тестирования модели, а остающиеся K-1 блока используются как обучающая выборка. Процесс повторяется K раз, и каждый из блоков используется один раз как тестовый набор. Получа­ются K результатов, по одному на каждый блок, они усредняются или комбиниру
ются каким-либо другим способом и дают одну оценку. Преимущество такого способа перед случайным сэмплированием (random subsampling) в том, что все наблюдения используются и для тренировки, и для тестирования модели, и каждое наблюдение исполь­зуется для тестирования в точности один раз. Часто используется кросс-валидация на 10 блоках, но каких-то определенных рекоменда­ций по выбору числа блоков нет.
Для
проверки адекватности построенной регрессионной модели предлагается анализировать выборку остатков полученной модели на близость к нормальному закону распределения, поскольку именно вы­полнение предположений нормальности обеспечивает корректность выводов, связанных с гипотезами, рассматриваемыми в регрессионном анализе.
В случае, если проверка на качество и/или адекватность мод
ели показала отрицательный результат, необходимо вернуться к началу и пересмотреть вид модели регрессии.
Рассмотрим примерную схему действий при проведении регресси-
онного анализа.
1. По рассматриваемым данным определить вид регрессионной мо-
дели: переменные, включаемые в модель в качестве регрессоров (отбор
«вручную» с учетом корреляции
, либо с использованием пошаго-
i
вых процедур типа stepwise или процедур выбора регрессоров по всем подмножествам), их взаимодействие и характер влияния на значения отклика. При необходимости преобразовать переменные в фиктивные
(так называемые dummy переменные).
41
2. Построить регрессионную модель по выбранным независимым
R
R
R
y
переменным, получить оценки параметров модели, значение коэффи-
2
циента детерминации
3. По значению
дели: в случае, когда
, проверить значимость регрессоров.
2
сделать вывод о значимости построенной мо-
2
достаточно близко к единице, можно считать, что модель в достаточной степени отражает взаимосвязи между зави­симой и независимыми переменными, и переходить к пункту 4. Иначе необходимо изменить структуру модели, в том числе включив в рас­смотрение новые, не используемые ранее регрессоры от исходных пе­ременных, и вернуться к пункту 1.
4. Проверить адекватность полу
ченной модели пу
тем проверки остатков на нормальность. В случае, когда модель не проходит эту проверку, изменить модель: например, провести логарифмирование отклика
го
y
(и пересчитать параметры модели уже для преобразованно-
y
), расширить множество регрессоров, включенных в модель, в том
числе и за счет незначимых.
5. Проверить качество построенной регрессионной модели с ис­пользованием метода кросс-валидации: сделать вывод о степени изме­нения значения коэффициента детерминации и показателя качества прогноза. Если такие изменения существенны, то модель нельзя счи­тать качественной, и необходимо изменение ее структуры, либо, воз­можно, у
даление выбросов в выборке.
3.3. РЕГРЕССИОННЫЙ АНАЛИЗ В СИСТЕМЕ R
При проведении регрессионного анализа в системе R предлагается вос-
пользоваться операциями и функциями, представленными в табл. 2 и 3.
Таблица 2
Символы, использующиеся при построении моделей регрессии
в системе R
Символ Назначение
Отделяет зависимые переменные от независимых. Например,
~
+ Разделяет независимые переменные
предсказание значений y по значениям закодировано так: ~
xzw
42
и w будет
,xz
Символ Назначение
y
y
y
x
y
y
y
y
x
Обозначает взаимодействие между независимыми переменными. Предсказание значений y по значениям
:
*
^
.
-
-1
I
function
как ~: Краткое обозначение для всех возможных взаимодействий. Код
Обозначает взаимодействие до определенного порядка. Код
Символ заполнитель для всех переменных в таблице данных, кроме зависимой. Например, если таблица данных содержит переменные
Знак минуса удаляет переменную из уравнения. Например,
Подавляет свободный член уравнения. Например, формула
предсказания значений начало координат
Элемент в скобках интерпретируется как арифметическое выражение. Например,
где h – это новая переменная, полученная при возведении в квадрат суммы z и w
В формулах можно использовать математические функции. Например,
log y
xzxz
~**yxzw
~:::
xzwxz xwzw   
~^2yxzw

:: :
zxwzw 
~^2:yxzw xw

~1yx
:zw
в полном виде означает
::xzw
в полном виде будет записан как ~
и w, то код
,,xyz
соответствует ~::
позволяет подогнать такую регрессионную модель для
по x, чтобы ее график проходил через
y
~^2yx zw
. Для сравнения
log ~yxzw
по значениям
~^2yxIzw
будет предсказывать значения
,
z
и w
будет означать ~
~.
Окончание табл. 2
,xz
будет закодировано
xzw
xzw xzzw
 
означает ~
означает ~yxh,
xzw

xzw
.
43
Таблица 3
Функции, использующиеся при построении моделей регрессии
в системе R
Функция Действие
summary() Показывает детальную информацию о подогнанной модели
coefficients()
confint()
fitted()
residuals() Показывает остатки для подогнанной модели
anova()
vcov() Выводит ковариационную матрицу для параметров модели
AIC()
stepAIC()
crossval() Функция для k-кратной кросс-валидации
predict()
Перечисляет параметры модели (свободный член и регрес­сионные коэффициенты)
Вычисляет доверительные интервалы для параметров модели (по умолчанию 95 %)
Выводит на экран предсказанные значения согласно подо­гнанной модели
Создает таблицу ANOVA (дисперсионного анализа) для по­догнанной модели или таблицу ANOVA, сравнивающую две или более моделей
Вычисляет информационный критерий Акаике
(Akaike'sInformationCriterion)
Проведение пошаговой регрессии с использованием точного критерия AIC в качестве критерия включения или удаления переменных
Использует подогнанную модель для предсказания зависи­мости переменной для нового набора данных
3.4. УПРАЖНЕНИЯ
1. По данным из первой главы построить регрессионную модель.
2. Проверить качество и адекватность построенной регрессионной
модели, сделать соответствующие выводы, при необходимости вер­нуться на этап определения вида модели.
3. Для наиболее оптимальной построенной модели записать про­гностическую модель, описать в терминах предметной области вид и характер полученных зависимостей, сделать сравнительный анализ степени влияния незави качества получаемых прогнозов.
симых переменных на отклик, характеристики
44
4. ПРОВЕДЕНИЕ СТАТИСТИЧЕСКОГО АНАЛИЗА С ИСПОЛЬЗОВАНИЕМ PYTHON
Python – высокоуровневый язык программирования общего назна­чения, ориентированный на повышение производительности разработ­чика и читаемости кода. Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентиро­ванное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты – динамическая типизация, автомати­ческое управление памятью, полная интроспекция, механизм обработ­ки исключений, поддержка многопоточных вычислений и удобные высокоу функции и классы, которые могут объединяться в модули, которые в свою очередь могут быть объединены в пакеты.
вают двух типов по своему происхождению: модули, написанные на «чи­стом» Python, и модули расширения (extension m других языках программирования. Например, в стандартной библиотеке есть «чистый» модуль pickle и его аналог на Си: cPickle. Модуль оформля­ется в виде отдельного файла, а пакет – в виде отдельного каталога.
определяется только во время исполнения. Поэтому вместо «присваива­ния значения переменной» лучше говорить о «связывании значения с не­кото сом, продуманной модульностью и масштабируемостью, благодаря чему исходный код написанных на Python программ легко читаем.
ровневые структуры данных. Код в Python организовывается в
Модули могут располагаться как в каталогах, так и в ZIP-архивах и бы-
odules), написанные на
Python поддерживает динамическую типизацию, т. е. тип переменной
рым именем». Язык обладает четким и последовательным синтакси-
4.1. УСТАНОВКА И НЕОБХОДИМЫЕ ДИСТРИБУТИВЫ
Установить Python (здесь и далее предполагается использование версии 3 и выше) можно как отдельно, так и в составе дистрибутивов, которые содержат интерпретатор языка и основные пакеты языка.
45
В рамках данного пособия предлагается использование дистрибутива Anaconda (https://www.continuum.io/downloads) – в нем содержатся ма-
тематические пакеты, которые используются в ходе статистического анализа. Для разработки лучше всего подходит IDE от JetBrains –
PyCharm (https://www.jetbrains.com/pycharm/download/).
4.2. ПАКЕТЫ ДЛЯ РАБОТЫ С ДАННЫМИ
Pandas – мощный инструмент для анализа данных. Пакет дает воз­можность строить сводные таблицы, выполнять группировки, предо­ставляет удобный доступ к табличным данным. Команда подключения:
import pandas as p. Из этого пакета можно использовать функции read_excel для загрузки данных из Excel, класс DataFrame для работы с
данными и его методы plot и hist для построения графиков как самих данных, так и гистограмм по ним. Получить общу данным, полученным с помощью функции read_excel, можно с помо­щью метода describe.
Matplotlib – библиотека на языке программирования Python для ви­зуализации данных. Команда подключения: import matplotlib.pyplot as plt. Из данной библиотеки можно использовать функции plot и scatter для отрисовки данных.
NumPy – библиотека с открытым исходным кодом для языка про­граммирования Python. Основные возможности – мерных массивов (включая матрицы), поддержка высокоуровневых математических функций, предназначенных для работы с многомер­ными массивами. Команда подключения: import numpy as np.
SciPy – библиотека, предназначенная для выполнения научных и инженерных расчетов. Основные возможности – поиск минимумов и максимумов функций; вычисление интегралов функций; поддержка специальных и статистических функций и др. Команда подключения статистического пакета: from scipy import stats. В библиотеке SciPy предста
тод chi2_contingency);
групп (критерий Стьюдента – метод ttest_ind, критерий Манна–Уитни – метод mannwhitneyu);
влены функции, позволяющие осуществлять:
проверку гипотезы о независимости (критерий хи-квадрат – ме-
проверку гипотезы об однородности средних для независимых
ю информацию по
поддержка много-
46
проверку гипотезы об однородности средних для зависимых
групп (критерий Стьюдента – метод ttest_1samp, критерий Уилкоксо­на – метод wilcoxon);
проверку гипотезы однородности для более чем двух выборок
(критерий ANOVA – f_oneway).
Кроме того, используя библиотеку SciPy, можно рассчитать и определить значимость коэффициента корреляции: для количествен­ных данных с использованием коэффициента корреляции Пирсона – метод pearsonr, для порядковых данных – с помощью коэффициентов корреляции Спирмана (метод spearmanr) и коэффициента корреляции Кенделла (метод kendalltau).
Statsmodels.api – библиотека, предназначенная для проверки различ­ных статистических гипот as sm. Из данной библиотеки можно использовать функции для проверки гипотезы нормальности (критерий Колмогорова – метод kstest, критерий Харки–Бера – метод stats.stattools.jarque_bera и другие).
Sklearn – библиотека, включающая в себя различные методы ре­грессионного анализа и алгоритмы машинного обучения. Команда подключения: import sklearn as skl. Из данной библиотеки можно ис­пользовать функции для создания объекта линейной ре linear_model.LinearRegression(), для которой доступны методы постро­ения регрессионной модели (метод fit), получения коэффициентов ре­грессии (поле coef_). Также в пакете представлен класс model_selection для использования различных типов кросс-валидации (например, ме­тод cross_val_score). Сайт, на котором можно подробнее ознакомиться с документацией пакета: http://scikit-learn.org/stable/index.html.
ез. Команда подключения: import statsmodels.api
грессии
4.3. УПРАЖНЕНИЯ
Выполнить основные этапы статистического анализа (предвари­тельный анализ, проверка гипотез и построение моделей регрессии) с использованием возможностей языка программирования Python, в частности реализовать:
1) построение наиболее информативных диаграмм;
2) проверку гипотезы о нормальности;
3) вычисление корреляции и проверку гипотез о независимости;
4) проверку гипотезы об однородности для двух выборок;
5) проверку гипотезы об однородности для трех и более выборок;
6) построение модели множест
ной структуры модели.
венной регрессии
47
, выбор оптималь-
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Cheema J. A Review of missing data handling methods in education research //
Review of Educational Research. – 2014. – № 4. – P. 487–508.
2. Enders C. Applied missing data analysis / C. Enders.– New York, London,
2010. – 377 p.
3. Hothorn T. A handbook of statistical analyses using R. 3rd ed. / T. Hothorn,
B.S. Everitt.– Boca Raton, Florida: Chapman & Hall/CRC, 2014.
4. Newman D. Missing Data: Five Practical Guidelines // Organizational Re-
search Methods. – 2014. – № 4. – P. 372–411.
5. Peugh J., Enders C. Missing data in educational research: A review of re-
porting practices and suggestions for improvement / J. Peugh, C. Enders // Review of Educational Research. –2004. – № 4. – P. 525–556.
6. Rubin D. Inference and missing data / D. Rubin // Biometrika. – 1976. –
№ 3. – P. 581–592.
7. Бослаф С. Статистика для всех / С. Бослаф. – М., 2015. – 586 с.
8. Вероятность и математическая статистика. Энциклопедия / под ред.
Ю.В. Прохорова. – М.: Большая российская энциклопедия, 1999. – 914 с.
9. Воронцов К.В. Комбинаторный подход к оценке качества обучаемых ал-
горитмов. – Математические вопросы кибернетики / под ред. О.Б. Лупанова. – М.: Физматлит, 2004. – T. 13. – С. 5–36.
10. Кабаков Р.И. R в действии. Анализ и визуализация данных в програм-
ме R / пер. с англ. П.А. Волковой. – М.: ДМК Пресс, 2014. – 588 с.
11. Лемешко Б.Ю. Непараметрические критерии согласия: Руководство по
применению: монография / Б.Ю. Лемешко.– М.: ИНФРА-М, 2014. – 163 с.
DOI: 10.12737/11873.
12. Лемешко Б.Ю. Критерии проверки отклонения распределения от нор-
мального закона. Руководство по применению: монография / Б.Ю. Лемеш­ко. – М.: ИНФРА-М, 2015. – 160 с. – (Научная мысль). DOI: 10.12737/6086.
13. Лемешко Б.Ю. Статистический анализ данных, моделирование и ис- следование вероятностных закономерностей. Компьютерный подход: моно­графия / Б.Ю. Лемешко, С.Б. Лемешко, С.Н. Постовалов, Е.В. Чимитова. – Новосибирск: Изд-во НГТУ, 2011. – 888 с. (серия «Монографии НГТУ»).
14. Маккинни У. Python и анализ данных / пер. с англ. А.А. Слинкина. – М.: ДМК Пресс,
15. Мастицкий С.Э. Статистический анализ и визуализация данных с по­мощью R / С.Э. Мастицкий, В.К. Шитиков. – Хайдельберг – Лондон – Тольят­ти, 2014. – 401 c.
16. Попов А.А. Статистические методы анализа данных: учеб.-метод. по- собие / А.А. Попов. – Новосибирск: Изд-во НГТУ, 2004. – 31 с.
2015. – 482 с.
48
ПРИЛОЖЕНИЕ
НАБОРЫ ДАННЫХ
1. Apartaments. В данном наборе представлены данные о предложе­ниях по продаже квартир в строящихся домах.
Общая
площадь
квартиры
(кв.м)
33,91 16 10,7 есть 12 13,32 37,34 17,8 8,3 есть 1 14,86 36,38 17,8 8,3 есть 3 15,49 40,51 20 8,3 нет 12 15,58 39,06 20 8,5 есть 12 15,79 38,27 20 8,2 есть 0 15,87 40,61 19,3 8,4 есть 6 17,13 37,79 17,5 8,3 есть 0 17,95 38,27 20 10,2 нет 6 18,14 38,54 19 7,4 есть 12 18,65 41,03 16 11 есть 3 19,46 42,03 20 10,2 есть 2 19,50 40,15 19,2 10,1 есть 6 20,77 55,01 28 10,7 есть 12 21,10 39,81 18 8,1 нет 0 21,51 52,59 21,2 11,2 есть 18 22,17 49,40 28,5 8 нет 4 22,20 39,47 20 9,2 нет 0 22,29 39,78 17,7 11 есть 0 22,62 41,59 21 10,2 нет 0 23,60 45,30 20,6 10,4 есть 8 24,38 49,07 22,3 12,4 есть 3 24,84
Жилая
площадь
квартиры
(кв.м)
Площадь
кухни (кв.м)
Наличие
балкона
Число месяцев
до окончания
срока
строительства
Цена
квартиры,
у.е.
49
Продолжение таблицы
Общая
площадь
квартиры
(кв.м)
38,01 20 10,2 есть 1 24,95 55,90 31,4 11,1 есть 6 25,45 53,65 30,5 8,3 есть 7 25,72 48,44 31 8 нет 0 26,62 67,43 40,5 10,7 есть 24 26,75 70,93 45,9 10,7 нет 12 27,14 73,84 47,5 10,4 нет 13 27,67 70,06 41,3 8,3 есть 12 27,74 57,30 33,5 10,1 есть 12 27,76 53,66 31,1 10 есть 2 27,97 75,24 46,3 10,7 есть 12 28,55 69,16 42,4 8,3 есть 12 28,95 60,43 31 11 есть 3 29,53 67,94 43,5 8,3 есть 12 29,84 56,52 29,7 9,4 есть 3 30,41 59,73 31,9 11,2 есть 6 30,58 60,93 36,3 10,9 есть 0 31,48 67,37 42,5 8,3 есть 7 32,10 68,04 35,4 13 есть 20 33,86 64,98 38,9 9,3 есть 6 34,04 69,02 30,7 8,3 есть 12 34,28 67,77 41 8 есть 2 34,40 56,84 32,7 10,1 есть 6 34,73 62,14 21,4 11 есть 0 34,81 78,69 42,4 15,5 есть 6 35,11
Жилая
площадь
квартиры
(кв.м)
Площадь
кухни (кв.м)
Наличие
балкона
Число месяцев
до окончания
срока
строительства
Цена
квартиры,
у.е.
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]