Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Статистическая обработка экспериментальных данных. Регрессионный анализ в языке R. Учебное пособие
.pdf
Если модель не оказалась адекватной, необходимо либо перейти
к более сложной модели (выбрать другой вид функциональной
зависимости), либо уменьшить диапазон изменения значений входных
переменных. Для проверки адекватности модели необходимо сравнить
отношение дисперсии адекватности и дисперсии воспроизводимости
по критерию Фишера.
Точный критерий Фишера – критерий, который используется
для сравнения двух относительных показателей, характеризующих
частоту, определенного признака (имеет значение от 0 до 1). Точный
критерий Фишера в основном применяется для сравнения малых
выборок, так как его вычисление трудоемко.
Проверка адекватности возможна только в случае, когда число
опытов превышает число коэффициентов уравнения регрессии. Такой
план эксперимента называется ненасыщенным.
В регрессионном анализе данный критерий позволяет оценивать
значимость линейных регрессионных моделей. В частности, критерий
Фишера используется в шаговой регрессии для проверки
целесообразности включения или исключения независимых
переменных в регрессионной модели. В дисперсионном анализе
критерий Фишера позволяет оценивать значимость факторов и их
взаимодействия.
7. Использование результатов анализа
Результаты регрессионного анализа могут быть применены для
решения следующих задач: предсказание неизвестных значений
зависимой переменной (см. пример 3, 4), предсказание неизвестных
значений коэффициентов для заданного вида уравнения (см.
пример 5).
21

Пример 3
#data.txt – имя файла, header=TRUE – наличие заголовка,
sep="," – разделитель между элементами
data=read.table("data.txt", header=TRUE, sep=",")
data # вывод загруженных исходных данных
model=lm(data$Rate~(data$Color+data$Length+data$Width))
summary(model)
Рассмотрим пример многофакторной линейной регрессии по
МНК. Однофакторную линейную регрессию мы рассмотрели в
примере с люксметром (пример 1).
Исходный файл представляет данные о цвете, длине и ширине
лепестков и показателе роста цветков. Идея состоит в том, чтобы
прогнозировать значения Rate – показатель роста цветков (последний
столбец) на основе значений Color, Length и Width – цвет, длина и
ширина лепестков соответственно. На рисунке 6 приведены исходные
данные примера.
Рисунок 6 – Исходные данные примера
Реализация многокритериальной линейной регрессии по
МНК на языке R.
22

Для загрузки исходного файла data.txt необходимо выбрать
папку, где он располагается. Для этого переходим в пункт меню
«Файл», «Изменить папку». Желательно избегать размещения
исходных файлов в папках с кириллическими именами. Если в
качестве разделения между элементами при наборе использовался
TAB, то из строчки загрузки файла необходимо убрать sep=”,”. Если
разделителем между элементами был TAB, а sep=”,” из стоки загрузки
не удален, между элементами будет стоять символ ” \”. Команду lm
(которая также использовалась в примере 1) в данном случае можно
интерпретировать как «Сохранить в объект с именем model результат
функции анализа lm (линейная модель)». Прогнозируемой зависимой
переменной является столбец Rate в объекте-таблице (data$Rate), а
независимые переменные-предикторы представляют собой Color,
Length и Width. Вторая команда означает: «Отображать только базовые
результаты анализа, сохраненные в объекте с именем model».
Результат выполнения summary(model) приведен на рисунке 7.
Рисунок 7 – Результат выполнения построения регрессионной модели
23

На рисунке 7 приведен результат выполнения построения
регрессионной модели. Красным выделен столбец на основе которого
осуществляется анализ полученных значений, расчет зависимой
переменной исходя из исходных данных и коэффициентов
построенной регрессионной модели. Общий вид формулы расчета
показателя роста:
Произведем расчёт значения зависимой переменной Rateна
основе результата построения регрессионной модели (столбец
Estimate, который выделен красным) и исходных данных (строка 4 из
рисунка 6). Исходные данные: длина лепестка = 5.0, ширина лепестка
= 1.9, цвет = pink, показатель роста = 0.4. Коэффициенты: Intercept = -
0.14758, data$Colorpink = -0.49083, data$Length = 0.04159, data$Width =
0.45200.
Показатель data$Colorpink, data$Length, data$Width –
коэффициенты, которые необходимо умножить на значения цвета
pink ϵ{0,1}, длины и ширины соответственно. Если значение цвета
Color = teal, из столбца Estimate необходимо взять значение
коэффициента data$Colorteal вместо data$Colorpink, если значение
цвета Color = blue, то расчет производится без этого параметра.
Intercept – это константа, не связанная ни с какой переменной, которую
также нужно учитывать при расчете. Подставим в формулу значения и
получим, что показатель роста рассчитывается следующим образом:
24

Показатель роста, исходя из построения регрессионной модели,
# уравнение для цвета pink
# y = -0.14758+data[2]*0.04159+data[3]*0.45200-0.49083
# уравнение для цвета teal
# y = -0.14758+data[2]*0.04159+data[3]*0.45200+0.35672
# уравнение для цвета blue
# y = -0.14758+data[2]*0.04159+data[3]*0.45200
j=which(data[1] == "blue")
j # вывод порядковых номеров элементов у которых
# Color=blue
y = -0.14758+data[j,2]*0.04159+data[j,3]*0.45200
y # вывод рассчитанного показателя роста
j=which(data[1] == "teal")
j # вывод порядковых номеров Color=teal
y = -0.14758+data[j,2]*0.04159+data[j,3]*0.45200+0.35672
y # вывод рассчитанного показателя роста
равен 0,42834, показатель роста из таблицы исходных данных Rate=
0,4 (рисунок 6).
Показатель роста, рассчитываемый по приведенному
уравнению, соответствует показателю ростаиз исходных данных, что
делает данный метод применимым. Таким образом, с помощью
построения многокритериальной модели регрессии вместо анализа
таблицы можно перейти к одному уравнению.
Проверку также можно произвести с помощью языка R для
каждого цвета.
Реализация проверки полученных значений на языке R.
25

j=which(data[1] == "pink")
y = -0.14758+data[j,2]*0.04159+data[j,3]*0.45200-0.49083
y # вывод рассчитанного показателя роста
а) б)
в)
Функция which (x==a) проверяет, какие элементы объекта х
равны a, и возвращает вектор, который содержит порядковые номера
этих элементов. В соответствии с порядковым номером
осуществляется расчет показателя роста.
На рисунке 8 приведен результат выполнения расчета
показателя роста для каждого цвета. Вычисленное значение совпадает
со столбцом Rate исходных данных, приведенных на рисунке 6.
Рисунок 8 – Результат расчета показателя роста
а) для цвета pink, б) для цвета teal в) для цвет аblue
1.4. Шаговая линейная регрессия
Шаговая линейная регрессия – метод, который использует
линейную регрессию для нахождения оптимального подмножества
признаков для данного набора данных, т.е. для построения лучшей
модели регрессии. Данный метод называется пошаговым, потому что
26

для каждой новой итерации происходит изменение набора признаков и
происходит оценка качества модели.
Переменные добавляются в модель или исключаются из нее по
одной, и на каждом шаге происходит переоценка модели, пока не
будет достигнуто нужное значение какого-то критерия для остановки
процесса.
Пример 4
Рассмотрим в качестве примера набор исходных данных longley
из библиотеки The R Data sets Package, которая включена в
стандартный дистрибутив языка программирования R. Этот набор
содержит исторические данные экономического характера с 1947 по
1962 годы, которые представлены 7 переменными и используются для
предсказания занятости населения в количественном исчислении за
год. Он содержит следующие поля:
год (Year);
количество населения (Population);
количество работающих (Employed);
количество безработных (Unemployed);
количество военнослужащих (Armed.Forces);
значение валового налогового продукта (ВНП)(GNP);
значение дефлятора ВНП – индекса, являющегося
отношением номинального ВНП к реальному (GNP.Deflator).
Ниже представлен программный код реализации шаговой
линейной регрессии. Сначала строится линейная регрессия, где в
качестве зависимой переменной выступает вектор, содержащий
27

количество работающих людей в разные годы, а в качестве
#загрузка данных
data(longley)
Longley# вывод исходных данных
#построение модели линейной регрессии по переменной Employed
base=lm(Employed~., longley)
#пошаговая выборка признаков
fit=step(base)
#формирование прогнозов
predictions=predict(fit, longley)
predictions
#вычисление точности
rmse<-mean((longley$Employed- predictions)^2)
rmse# вывод значения точности
независимых – все остальные переменные.
Затем применяется функция step, которая выполняет пошаговую
регрессию. В результате применения этой функции из модели были
удалены две переменных, т.е. итоговая линейная модель включает
только пять признаков.
Функция predict выводит количество работающих людей по
годам, спрогнозированное на основе построенной модели. Функция
mean рассчитывает среднее значение. В качестве аргумента
используются квадраты разностей реальных и спрогнозированных
значений. Результат позволяет оценить, насколько хорошо модель
прогнозирует данные.
Реализация шаговой линейной регрессии на языке R.
Замечание: при копировании из PDF знак минус подменяется знаком
тире.
28

На рисунке 9 представлен результат выполнения шаговой
линейной регрессии fit = step(base). AIC(AkaikeInformationCriterion) –
информационный критерий Акаике, один из способов сравнения
регрессионных моделей. Он учитывает статистическое соответствие
модели данным и число необходимых для достижения этого
соответствия параметров. Следует выбирать модели, у которых
значение этого показателя меньше, что указывает на хорошее
соответствие данным при меньшем числе параметров.
Рисунок 9 – Результат выполнения шаговой линейной регрессии
Когда в модель включены все переменные, AIC = –33.22, что
указано в первой строке на рисунке 9. Следующая строка описывает
29

взаимосвязь между переменными в модели. Ниже приведена таблица,
в которой описываются основные параметры модели при удалении
одной из переменных (первый столбец). Столбец D f– число степеней
свободы, SumofSq – сумма квадратов отклонений, RSS
(ResidualSumofSquares) – остаток суммы квадратов отклонений, AIC –
значение критерия. Так как AIC при удалении переменной
GNP.Deflator является минимальным на текущем шаге, эта переменная
исключается из модели и выполняется переход к следующему шагу.
Алгоритм прекращает свою работу, когда
при удалении переменных показатель AIC перестаёт уменьшаться.
На рисунке 10 представлены результаты работы модели:
спрогнозированное значение занятости населения по годам
predictions = predict(fit, longley).
Рисунок 10 – Результат прогнозирования признаков на основе
полученной модели
Для вычисления точности используется среднее значение
квадратов отклонений реальных и спрогнозированных значений
rmse<-mean((longley$Employed - predictions)^2)). На рисунке 11
приведен результат вычисления точности. Он составляет 0.05366753,
что свидетельствует о не высокой точности модели.
Рисунок 11 – Результат вычисления точности
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
