Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программные системы статистического анализа. Обнаружение закономерностей в данных с использованием системы R и языка Python. Учебное пособие
.pdf
Преимущество такого метода перед кросс-валидацией на 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
