Как рассчитать 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 ; 

простой вывод линейной регрессии в SAS

Обратите внимание, что среднеквадратичное значение на выходе равно 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 в SAS

Обратите внимание, что в выходных данных отображается только значение RMSE 3,64093 .

Примечание . Аргумент noprint в proc reg сообщает SAS не печатать весь вывод результатов регрессии, как это было на предыдущем шаге.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как выполнить простую линейную регрессию в SAS
Как выполнить множественную линейную регрессию в SAS
Как выполнить полиномиальную регрессию в SAS
Как выполнить логистическую регрессию в SAS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *