Calcular o R-quadrado
Agora que você calculou o RMSE das previsões do seu modelo, vai analisar quão bem o modelo se ajusta aos dados: isto é, quanta variância ele explica. Você pode fazer isso usando \(R^2\).
Suponha que \(y\) seja o valor real, \(p\) seja a previsão do modelo e \(res = y - p\) sejam os resíduos das previsões.
Então a soma total dos quadrados \(tss\) ("variância total") dos dados é:
$$ tss = \sum{(y - \overline{y})^2} $$
onde \(\overline{y}\) é o valor médio de \(y\).
A soma residual dos erros ao quadrado do modelo, \(rss\), é: $$ rss = \sum{res^2} $$
\(R^2\) (R-quadrado), a "variância explicada" pelo modelo, é então:
$$ 1 - \frac{rss}{tss} $$
Depois de calcular o \(R^2\), você vai comparar o que calculou com o \(R^2\) reportado por glance() (docs). glance() retorna um data frame de uma linha; para um modelo de regressão linear, uma das colunas retornadas é o \(R^2\) do modelo nos dados de treinamento.
O data frame unemployment já foi carregado para você e contém as colunas predictions e residuals que você calculou em um exercício anterior. O unemployment_model também está disponível para você usar.
Este exercício faz parte do curso
Aprendizado Supervisionado em R: Regressão
Instruções do exercício
- Calcule a média de
female_unemploymente atribua à variávelfe_mean. - Calcule a soma total dos quadrados e atribua à variável
tss. - Calcule a soma residual dos quadrados e atribua à variável
rss. - Calcule o \(R^2\). É um bom ajuste (\(R^2\) próximo de 1)?
- Use
glance()para obter o \(R^2\) do modelo. É igual ao que você calculou?
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# unemployment is available
summary(unemployment)
# unemployment_model is available
summary(unemployment_model)
# Calculate and print the mean female_unemployment: fe_mean
(fe_mean <- ___)
# Calculate and print the total sum of squares: tss
(tss <- ___((___ - ___)^2))
# Calculate and print residual sum of squares: rss
(rss <- ___)
# Calculate and print the R-squared: rsq
(rsq <- ___)
# Get R-squared from glance and print it
(rsq_glance <- ___(___)$___)