Как рассчитать rmse в sas
Один из способов оценить, насколько хорошо модель регрессии соответствует набору данных, — это вычислить среднеквадратическую ошибку , которая представляет собой метрику, которая сообщает нам среднее расстояние между прогнозируемыми значениями модели и фактическими значениями набора данных.
Чем ниже RMSE, тем лучше данная модель может «подогнать» набор данных.
Формула для нахождения среднеквадратической ошибки, часто обозначаемая сокращенно RMSE , выглядит следующим образом:
RMSE = √ Σ(P i – O i ) 2 / n
Золото:
- Σ — символ, обозначающий «сумму».
- Pi — прогнозируемое значение для i-го наблюдения в наборе данных.
- O i — наблюдаемое значение для i-го наблюдения в наборе данных.
- n — размер выборки
В следующем пошаговом примере показано, как вычислить RMSE для простой модели линейной регрессии в SAS.
Шаг 1. Создайте данные
В этом примере мы создадим набор данных, содержащий общее количество изученных часов и оценку итогового экзамена 15 студентов.
Мы подберем простую модель линейной регрессии, используя часы в качестве предикторной переменной и оценку в качестве переменной отклика.
Следующий код показывает, как создать этот набор данных в SAS:
/*create dataset*/ data exam_data; input hours score; datalines ; 1 64 2 66 4 76 5 73 5 74 6 81 6 83 7 82 8 80 10 88 11 84 11 82 12 91 12 93 14 89 ; run ; /*view dataset*/ proc print data =exam_data;
Шаг 2. Подберите простую модель линейной регрессии.
Далее мы будем использовать proc reg для соответствия простой модели линейной регрессии:
/*fit simple linear regression model*/ proc reg data =exam_data; model score = hours; run ;
Обратите внимание, что среднеквадратичное значение на выходе равно 3.64093 .
Шаг 3. Извлеките RMSE из регрессионной модели.
Если вы хотите отобразить только RMSE этой модели, а не другие выходные результаты, вы можете использовать следующий код:
/*fit simple linear regression model*/ proc reg data =exam_data outest =outest noprint ; model score = hours / rmse ; run ; quit ; /*print RMSE of model*/ proc print data =outest; var _RMSE_; run ;
Обратите внимание, что в выходных данных отображается только значение RMSE 3,64093 .
Примечание . Аргумент noprint в proc reg сообщает SAS не печатать весь вывод результатов регрессии, как это было на предыдущем шаге.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как выполнить простую линейную регрессию в SAS
Как выполнить множественную линейную регрессию в SAS
Как выполнить полиномиальную регрессию в SAS
Как выполнить логистическую регрессию в SAS