В этой статье мы познакомимся с методом линейной регрессии для построения модели, описывающей взаимодействие между двумя непрерывными величинами. Используем полученную модель для прогноза. Анализ будет выполнен в аналитической платформе KNIME. C предыдущими статьями, в которых проводился разведочный анализ, построение графиков и расчёт описательных статистик, можно ознакомиться здесь Знакомство, здесь Визуализация и здесь Описательные статистики.
Мы будем исследовать зависимость показателя В среднем руб. на текущем счёте на человека от Средней зарплаты
Процесс подготовки данных и подбора модели представлен на Рис.1
Подготавливаем данные
Как и в предыдущих статьях данные о показателях относятся к Амурской области. Прочитаем их из файла, используя узел CSV Reader.
Применим экспериментальный узел Row Filter (Labs) с настройками на Рис. 2
В анализируемом датасете остались только сведения о показателях В среднем руб. на текущем счёте на человека и Средняя зарплата за период 2017-2018 годов.
Воспользуемся узлом Pivoting c настройками Рис. 3 и в результате получим преобразуем данные в удобную форму Рис. 4
Разделим датасет на две части по параметру год. Используем узел Row Splitter из Manipulation > Row > Filter с настройками Рис. 5.
По данным за 2017 год мы построим модель, а по данным 2018 года вычислим прогноз.
Построение модели линейной регрессии
С помощью узла Scatter Plot построим точечный график зависимости Средней суммы на счёте от размера Средней зарплаты за 2017 год Рис. 6. Подобный график мы строили в статье Визуальный анализ данных, построение графиков и диаграмм в KNIME по данным за весь период наблюдения.
Из Рис. 6 можно сделать вывод, что чем выше Средняя зарплата, тем выше Средняя сумма на счёте. Предположим, что эта зависимость линейная и построим модель.
При работе в KNIME для построения модели достаточно воспользоваться узлом Linear Regression Learner из Analytics > Mining > Linear/Polynomial Regression.
В результате на Рис. 7 вычислены коэффициенты модели и её статистические характеристики:
величина коэффициента перед объясняющей переменной Средняя зарплата 0.14;
величина свободного члена Intercept 15038.19;
величины стандартных ошибок Std. Err;
величины t-статистик t-value;
значимость зависимости между показателями P>|t|.
При уровне значимости 0.05 зависимость показателя В среднем руб. на текущем счёте на человека от Средней зарплаты статистически значима, поскольку P>|t| < 0.05.
Вычислить прогнозные значения показателя на 2018 год поможет узел Regression Predictor из Analytics > Mining > Linear/Polynomial Regression.
На Рис. 8 показаны прогнозные и реальные значения показателя В среднем руб. на текущем счёте на человека.
В следующей статье мы проверим выполнение условий применимости полученной линейной модели, оценим её качество.
Для решения этих задач мы познакомимся с возможностью интегрирования языка R в аналитическую платформу KNIME.
Теоретический материал о линейной регрессии Вы можете найти в моём персональном блоге.
Подписывайтесь на мой канал, чтобы узнавать о выходе новых статей.