Найти тему
dmescheryakov.site

Построение простейшей модели линейной регрессии в KNIME

Оглавление

В этой статье мы познакомимся с методом линейной регрессии для построения модели, описывающей взаимодействие между двумя непрерывными величинами. Используем полученную модель для прогноза. Анализ будет выполнен в аналитической платформе KNIME. C предыдущими статьями, в которых проводился разведочный анализ, построение графиков и расчёт описательных статистик, можно ознакомиться здесь Знакомство, здесь Визуализация и здесь Описательные статистики.

Мы будем исследовать зависимость показателя В среднем руб. на текущем счёте на человека от Средней зарплаты

Процесс подготовки данных и подбора модели представлен на Рис.1

Рис. 1 Регрессионный анализ
Рис. 1 Регрессионный анализ

Подготавливаем данные

Как и в предыдущих статьях данные о показателях относятся к Амурской области. Прочитаем их из файла, используя узел CSV Reader.

Применим экспериментальный узел Row Filter (Labs) с настройками на Рис. 2

Рис. 2  Фильтрация данных с помощью  Row Filter (Labs)
Рис. 2 Фильтрация данных с помощью Row Filter (Labs)

В анализируемом датасете остались только сведения о показателях В среднем руб. на текущем счёте на человека и Средняя зарплата за период 2017-2018 годов.

Воспользуемся узлом Pivoting c настройками Рис. 3 и в результате получим преобразуем данные в удобную форму Рис. 4

Рис. 3 Преобразование данных с помощью Pivoting
Рис. 3 Преобразование данных с помощью Pivoting
Рис. 4 Преобразованный набор данных
Рис. 4 Преобразованный набор данных

Разделим датасет на две части по параметру год. Используем узел Row Splitter из Manipulation > Row > Filter с настройками Рис. 5.

Рис. 5 Деление набора данных на две части с помощью Row Splitter
Рис. 5 Деление набора данных на две части с помощью Row Splitter

По данным за 2017 год мы построим модель, а по данным 2018 года вычислим прогноз.

Построение модели линейной регрессии

С помощью узла Scatter Plot построим точечный график зависимости Средней суммы на счёте от размера Средней зарплаты за 2017 год Рис. 6. Подобный график мы строили в статье Визуальный анализ данных, построение графиков и диаграмм в KNIME по данным за весь период наблюдения.

Рис. 6
Рис. 6

Из Рис. 6 можно сделать вывод, что чем выше Средняя зарплата, тем выше Средняя сумма на счёте. Предположим, что эта зависимость линейная и построим модель.

При работе в KNIME для построения модели достаточно воспользоваться узлом Linear Regression Learner из Analytics > Mining > Linear/Polynomial Regression.

В результате на Рис. 7 вычислены коэффициенты модели и её статистические характеристики:

Рис. 7 Коэффициенты линейной модели и статистические характеристики
Рис. 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 показаны прогнозные и реальные значения показателя В среднем руб. на текущем счёте на человека.

Рис. 8 Реальные и прогнозные значения за 2018 год
Рис. 8 Реальные и прогнозные значения за 2018 год

В следующей статье мы проверим выполнение условий применимости полученной линейной модели, оценим её качество.

Для решения этих задач мы познакомимся с возможностью интегрирования языка R в аналитическую платформу KNIME.

Теоретический материал о линейной регрессии Вы можете найти в моём персональном блоге.

Подписывайтесь на мой канал, чтобы узнавать о выходе новых статей.