Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Статистическая обработка экспериментальных данных. Регрессионный анализ в языке R. Учебное пособие
.pdf
1.5. Нелинейная регрессия
Нелинейная регрессия – вид регрессионного анализа, в котором
экспериментальные данных моделируются функцией, являющейся
нелинейной комбинацией параметров модели и зависящей от одной и
более независимых переменных. Данные аппроксимируются методом
последовательного приближения.
Пример 5
Рассмотрим в качестве примера нелинейную регрессию.
Исходные данные – таблица поглощения кислорода некоторой
химической реакцией в зависимости от времени, которые приведены
на рисунке 12. Сам процесс описывается нелинейной функцией –
кинетическим уравнением первого порядка: ,
Рисунок 12 – Исходные данные для нелинейной регрессии
где X – время в минутах, Y – объём поглощённого кислорода в мл.
Для построения нелинейной модели регрессии используется
функция nls, атрибутами которой являются:
модель (в нашем случае это кинетическое уравнение
первого порядка);
31

экспериментальные данные;
test=read.table("1.txt", header=TRUE)#загрузка данных
attach(test)#построение графика точек
plot(Y~X)
#построение нелинейной модели
test.mod=nls(Y~a*(1-exp(-k*X)),start=list(a=1,k=0.5))
#визуализация модели
test.predict=predict(test.mod,newdata=data.frame(X=0:100))
plot(Y~X)
lines(0:100,test.predict)
стартовые значения параметров модели, которые
подбираются исследователем эмпирически.
Затем выполняется построение графика по полученной модели.
Реализация нелинейной регрессии на языке R.
В файле 1.txt хранятся исходные данные, приведенные на
рисунке 12. Также исходные данные могут внесены в программу,
аналогично примеру 1. Для этого их нужно занести в вектор при
помощи функции си при помощи функция data.frame объединить в
таблицу.
Функция attach добавляет источник данных в поисковые пути
языка R. После выполнения этой функции можно обращаться к
элементам таблицы данных по именам столбцов. Функция plot
предоставляет возможность построения различных графиков. В
данном случае она используется для вывода на экран
экспериментальных данных в виде точек, при этом y зависит от x. Для
построения нелинейной модели регрессии используется функция nls,
атрибутами которой являются:
32

модель (в нашем случае это кинетическое уравнение
первого порядка);
экспериментальные данные;
стартовые значения параметров модели, которые
подбираются исследователем эмпирически.
Функция predict используется для расчета предполагаемых
данных в соответствии с некоторой моделью. Могут использоваться
различные модели, в том числе нелинейные. В данном примере она
осуществляет расчет значения y при изменении x от 1 до 100 на основе
нелинейной модели, полученной с помощью функции nls. Функция
lines строит линию по указанным точкам, при этом x меняется от 1
до 100.
На рисунке 13 представлен вывод команды summary для
построенной модели. Значения коэффициентов были получены за 4
итераций. Сумма квадратов отклонений составила 0.03621. На рисунке
14 представлен график, на котором точками отмечены
экспериментальные значения в соответствии с таблицей 5, а кривая
построена по полученному уравнению. Видно, что стартовые данные
были подобраны удачно, и кривая хорошо описывает процесс.
Рисунок 13 – Параметры нелинейной модели
33

Рисунок 14 – Экспериментальные данные и полученная зависимость
Из рисунка 14 видно, что кривая хорошо описывает процесс.
Достижение такого результата, в частности, обусловлено тем, что
начальные значения коэффициентов, указанные в функции nls, были
достаточно близки к их реальным значениям.
34

2. Задание на самостоятельную работу
1. Изучить теоретическую часть и реализовать примеры с 1-го по 5-ой.
2. Выполнить самостоятельно задания 2.1 – 2.3. Подготовить отчет
(программный код, результат выполнения и вывод).
2.1. Задание на МНК и расчёт коэффициента связности (пример 1).
2.1.1. В соответствии с вариантом задания применить метод
наименьших квадратов (функция lm).
2.1.2. Построить на одной координатной плоскости функции
заданных точек и график получившейся функции.
2.1.3. В соответствии с вариантом задания рассчитать
коэффициент связности вручную, при помощи языка R
определить коэффициент корреляции Пирсона и
оценить их по шкале Чеддока.
2.2. Задание на построение многокритериальной линейной
регрессии (пример 3).
2.2.1. На основе данных из варианта задания провести
моделирование многокритериальной линейной
регрессии по методу наименьших квадратов.
2.2.2. Выполнить проверку результатов:
– выбрать одну из строк таблицы данных;
35

– рассчитать прогнозируемое значение зависимой
data=read.table("data.txt", header=TRUE, sep=",")
переменной с использованием языка R по формуле:
,
где xi – независимые переменные, ki – коэффициенты из
вывода summary(model) из столбца Coefficients, intersept
– константа из столбца Coefficients.
2.3. Задание на построение нелинейной регрессионной модели
(пример 5)
2.3.1. На основе данных из варианта задания необходимо
найти коэффициенты уравнения.
2.3.2. Построить в языке R точки и график функции.
Варианты для задания 2.2
Целая и дробная часть числа в языке R разделяется через символ
«точка». Исходные данные могут быть загружены из текстового файла
с расширением .txt, из табличного файла с расширением .csv. Ниже
приведен код загрузки исходных данных из файла.
где data.txt – имя текстового файла, header=TRUE указывает, что у
таблицы есть заголовок sep=","указывает, что является разделителем
в файле (между элементами матрицы). Если в качестве разделения
между элементами при наборе использовался TAB, то из строчки
загрузки файла необходимо убрать sep=",". Если разделителем
между элементами был TAB, а sep="," из стоки загрузки не удален,
между элементами будет стоять символ ” \”.
Для загрузки исходного файла data.txtнеобходимо выбрать
папку, где он располагается. Для этого переходим в пункт меню
36

«Файл», «Изменить папку». Желательно избегать размещения
исходных файлов в папках с кириллическими именами.
Язык R является чувствительным к регистру X и х – это
разные переменные. Все функции записывается с маленькой буквы.
Вариант 1
Рассмотрим метод определения вероятности ночных
заморозков, предложенный профессором П. И. Броуновым, который
позволяет рассчитать вероятность на основе скорости изменения
температуры в промежутке между 13 и 21 часами.
Необходимо применить метод многокритериальной регрессии,
чтобы спрогнозировать вероятность ночных заморозков, исходя из
трех независимых переменных: времени года, температуры в 13 часов
и температуры в 21 час. В качестве зависимой переменной выступает
вероятность ночных заморозков.По методу Броунова для расчета
ночных заморозков используется 6 линейных уравнений. В результате
применение метода многокритериальной регрессии их можно будет
заменить двумя более сложными уравнениями.
В таблице представлен фрагмент исходных данных. Значения
температуры получены с портативной метеостанции (прибор,
позволяющий получать метеорологическую информацию с датчиков,
обрабатывать полученные значение и на их основе осуществлять
прогнозирование погодных условий), а вероятность рассчитана по
методу Броунова. В состав портативной метеорологической станции
входят микрокомпьютер Raspberry Pi 2, микроконтроллер Arduino
Nano, бюджетные модели метеорологических датчиков, Wi-Fi модуль.
Данные с датчиков передаются на микроконтроллер, на котором
проверяется корректность полученных значений, далее данные
37

передаются на микрокомпьютер. Raspberry Pi 2 осуществляет
,
5241321
interceptfecotcoeftcoefwincoefsummcoefspry
1,0
обработку полученных значений, формирует веб-страницу и при
помощи Wi-Fi модуля отправляется пользователю.
Исходные данные для многокритериальной регрессии
Вид уравнения:
где y – вероятность ночных заморозков, spr, summ, win
–
текущий сезон, t1, t2 – значения температуры, coefi – коэффициенты
регрессионной модели, полученные в результате вывода
summary(model).
В результате построения модели будет выведен результат (см.
рисунок 7). Исходя из полученных данных необходимо рассчитать
прогнозируемое значение зависимой переменной и сделать вывод о
том, насколько точны полученные коэффициенты (см. пример 3).
Расчет прогнозируемого значения необходимо выполнить с помощью
языка R.
Вариант 2
Рассмотрим данные о погоде в Москве (ВДНХ) в промежутке с
26.02.2018 по 26.03.2018, которые были получены из источника [13],
38

который хранит информацию о погоде с количеством осадков,
,
54321
interceptcoefvcoefhcoefdpcoefpcoefty
облачностью, влажностью, скоростью ветра и т.д. Эта статистика
использовалась при проверке корректности алгоритмов
прогнозирования погодных условий на основе локальных признаков.
Данные алгоритмы применялись в составе портативной
метеорологической станции.
Необходимо применить метод многокритериальной регрессии,
чтобы спрогнозировать количество осадков, исходя из пяти
независимых переменных: температуры, атмосферного давления,
тенденции изменения атмосферного давления, влажности и скорости
ветра. В качестве зависимой переменной выступает количество
осадков. В таблице представлен фрагмент исходных данных.
Исходные данные для многокритериальной регрессии
Вид уравнения:
39

где y – прогностическое значение количества осадков, t, p, dp, h, v –
значения температуры, давления, изменение атмосферного давления,
влажность, скорость ветра соответственно, coefi – коэффициенты
регрессионной модели, полученные в результате вывода
summary(model).
В результате построения модели будет выведен результат (см.
рисунок 7), на основании которого необходимо рассчитать
прогнозируемое значение зависимой переменной и сделать вывод о
том, насколько точны полученные коэффициенты (см. пример 3).
Расчет прогнозируемого значения необходимо выполнить с помощью
языка R.
Вариант 3
Рассмотрим данные о погоде в Москве (ВДНХ) в промежутке с
26.02.2018 по 26.03.2018, которые были получены из источника [13], в
которых хранится информация о погоде с количеством осадков,
облачностью, влажностью, скоростью ветра и т.д. Эта статистика
использовалась при проверке корректности алгоритмов
прогнозирования погодных условий на основе локальных признаков.
Данные алгоритмы применялись в составе портативной
метеорологической станции.
Необходимо применить метод многокритериальной регрессии,
чтобы спрогнозировать количество осадков, исходя из пяти
независимых переменных: температуры, атмосферного давления,
тенденции изменения атмосферного давления, влажности и скорости
ветра. В качестве зависимой переменной выступает количество
осадков.
В таблице представлен фрагмент исходных данных.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
