Как рассчитать SST, SSR и SSE в R


Мы часто используем три разных значения суммы квадратов , чтобы измерить, насколько хорошо линия регрессии действительно соответствует набору данных:

1. Общая сумма квадратов (SST) – сумма квадратов разностей между отдельными точками данных (y i ) и средним значением переменной ответа ( y ).

  • SST = Σ(y i – y ) 2

2. Регрессия суммы квадратов (SSR) – сумма квадратов разностей между прогнозируемыми точками данных (ŷ i ) и средним значением переменной ответа ( y ).

  • SSR = Σ(ŷ i – y ) 2

3. Ошибка суммы квадратов (SSE) – сумма квадратов разностей между предсказанными точками данных (ŷ i ) и наблюдаемыми точками данных (y i ).

  • SSE = Σ(ŷ i – y i ) 2

В следующем пошаговом примере показано, как рассчитать каждую из этих метрик для заданной регрессионной модели в R.

Шаг 1: Создайте данные

Во-первых, давайте создадим набор данных, который содержит количество часов обучения и экзаменационные баллы, полученные для 20 разных студентов в определенном колледже:

#create data frame
df <- data.frame(hours=c(1, 1, 1, 2, 2, 2, 2, 2, 3, 3,
 3, 4, 4, 4, 5, 5, 6, 7, 7, 8),
 score=c(68, 76, 74, 80, 76, 78, 81, 84, 86, 83,
 88, 85, 89, 94, 93, 94, 96, 89, 92, 97))

#view first six rows of data frame
head(df)

 hours score
1 1 68
2 1 76
3 1 74
4 2 80
5 2 76
6 2 78

Шаг 2: Подгонка регрессионной модели

Далее мы будем использовать функцию lm() , чтобы подобрать простую модель линейной регрессии, используя счет в качестве переменной ответа и часы в качестве переменной-предиктора:

#fit regression model
model <- lm(score ~ hours, data = df)

#view model summary
summary(model)

Call:
lm(formula = score ~ hours, data = df)

Residuals:
 Min 1Q Median 3Q Max 
-8.6970 -2.5156 -0.0737 3.1100 7.5495 

Coefficients:
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 73.4459 1.9147 38.360 < 2e-16 \*\*\*
hours 3.2512 0.4603 7.063 1.38e-06 \*\*\*
---
Signif. codes: 0 ‘\*\*\*’ 0.001 ‘\*\*’ 0.01 ‘\*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.289 on 18 degrees of freedom
Multiple R-squared: 0.7348, Adjusted R-squared: 0.7201 
F-statistic: 49.88 on 1 and 18 DF, p-value: 1.378e-06

Шаг 3: Рассчитайте SST, SSR и SSE

Мы можем использовать следующий синтаксис для вычисления SST, SSR и SSE:

#find sse
sse <- sum (( fitted (model) - df$score)^2)
sse

[1] 331.0749

#find ssr
ssr <- sum (( fitted (model) - mean (df$score))^2)
ssr

[1] 917.4751

#find sst
sst <- ssr + sse
sst

[1] 1248.55

Получаются следующие показатели:

  • Общая сумма квадратов (SST): 1248,55
  • Сумма квадратов регрессии (SSR): 917,4751
  • Ошибка суммы квадратов (SSE): 331,0749

Мы можем убедиться, что SST = SSR + SSE:

  • SST = SSR + SSE
  • 1248,55 = 917,4751 + 331,0749

Мы также можем вручную рассчитать R-квадрат регрессионной модели:

  • R-квадрат = SSR / SST
  • R-квадрат = 917,4751/1248,55
  • R-квадрат = 0,7348

Это говорит нам о том, что 73,48% различий в экзаменационных баллах можно объяснить количеством часов обучения.

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

Вы можете использовать следующие калькуляторы для автоматического расчета SST, SSR и SSE для любой простой линии линейной регрессии:

Калькулятор ТПН
Калькулятор ССР
Калькулятор SSE

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.