Введение 2
1. Линейная регрессия 3
1.1. Постановка задачи 3
1.2. Способы нахождения линии регрессии 5
2. Линейное программирование в регрессионном анализе .... 6
2.1. Обзор статьи Харви Вагнера 6
2.2. Сведение к задаче ЛП 11
2.3. Вычислительные эксперименты 14
3. Квантильная регрессия 18
3.1. Основные определения и модель 18
3.2. Модель Коенкера-Бассета 19
3.3. Представление квантильной регрессии в виде задачи
ЛП 21
3.4. Вычислительный эксперимент 22
Заключение 25
Список литературы 26
Приложения 27
1. Код класса для решения квантильной регрессии 27
2. Код класса для решения МНММ 29
3. Инструкции к классам 31
Линейная регрессия — метод восстановления зависимости одной переменной у (зависимой) от другой или нескольких других переменных (независимых переменных) х. Одной из целей регрессионного анализа является предсказание значения зависимой переменной с помощью независимой(-ых). На практике линия регрессии чаще всего ищется с помощью метода наименьших квадратов. Так как прогнозирование в целом и, в особенности, финансовых показателей сопряжено с рядом трудностей, то возникла потребность альтернативы методу наименьших квадратов, которая была бы менее чувствительна к выбросам.
В 1978 году была опубликована статья «Квантильная регрессия» (Regression Quantiles) Роджера Коенкера и Гильберта Бассета [9], в которой впервые была введена квантильная регрессия. Было установлено: если ошибки не подчинены нормальному закону распределения, квантильная регрессия может быть более эффективна, чем метод наименьших квадратов. Данная работа делиться на две части:
• Линейная регрессия: способы нахождения коэффициентов прямой;
• Квантильная регрессия.
В работе показано как находить коэффициенты регрессии с помощью линейного программирования.
В процессе выполнения выпускной квалификационной работы были разобраны метод наименьших квадратов, метод наименьших сумм модулей, метод наименьшего максимального модуля, квантильная регрессия и их сведение к задачам линейного программирования. Был проведен сравнительный анализ данных методов, из которых были выбраны самые подходящие в условиях конкретных задач.
На языке Python были написаны классы, реализующие вышеперечисленные методы. Классы полностью подготовлены к встраиванию в программы. Проведено несколько вычислительных экспериментов, позволивших оценить работу классов. Время работы программ также может зависеть от архитектуры компьютера, на котором проводится вычислительный эксперимент, и от операционной системы. Была разработана необходимая документация для использования классов.