Model uyumunu nicelendirme

R'da Regresyona Giriş

Richie Cotton

Data Evangelist at DataCamp

Bream ve perch modelleri

Sazan kefal (Bream)

Daha önce gösterilen eğilim çizgili sazan kefal kütlesi ile boyunun saçılım grafiği.

Levrek (Perch)

Daha önce gösterilen eğilim çizgili levrek kütlesi ile boyunun saçılım grafiği.

R'da Regresyona Giriş

Belirleme katsayısı

Bazen “r-kare” veya “R-kare” olarak adlandırılır.

yanıt değişkenindeki varyansın, açıklayıcı değişkenden tahmin edilebilen oranı

  • 1 mükemmel uyum demektir
  • 0 en kötü uyumu ifade eder
R'da Regresyona Giriş

summary()

“Multiple R-Squared” başlıklı değere bakın

mdl_bream <- lm(mass_g ~ length_cm, data = bream)
summary(mdl_bream)
# Bazı çıktı satırları atlandı

Residual standard error: 74.15 on 33 degrees of freedom
Multiple R-squared:  0.8781,    Adjusted R-squared:  0.8744 
F-statistic: 237.6 on 1 and 33 DF,  p-value: < 2.2e-16
R'da Regresyona Giriş

glance()

library(broom)
library(dplyr)
mdl_bream %>% 
  glance()
# A tibble: 1 × 12
  r.squared adj.r.squared sigma statistic  p.value    df logLik   AIC   BIC
      <dbl>         <dbl> <dbl>     <dbl>    <dbl> <dbl>  <dbl> <dbl> <dbl>
1     0.878         0.874  74.2      238. 1.22e-16     1  -199.  405.  409.
# ... with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
mdl_bream %>% 
  glance() %>% 
  pull(r.squared)
0.8780627
R'da Regresyona Giriş

Sadece korelasyonun karesi

bream %>% 
  summarize(
    coeff_determination = cor(length_cm, mass_g) ^ 2
  )
  coeff_determination
1           0.8780627
R'da Regresyona Giriş

Artık standart hatası (RSE)

bir tahmin ile gözlenen yanıt arasındaki “tipik” fark

Yanıt değişkeni ile aynı birimdedir.

R'da Regresyona Giriş

summary() yine

“Residual standard error” başlıklı değere bakın

summary(mdl_bream)
# Bazı çıktı satırları atlandı

Residual standard error: 74.15 on 33 degrees of freedom
Multiple R-squared:  0.8781,    Adjusted R-squared:  0.8744 
F-statistic: 237.6 on 1 and 33 DF,  p-value: < 2.2e-16
R'da Regresyona Giriş

glance() yine

library(broom)
library(dplyr)
mdl_bream %>% 
  glance()
# A tibble: 1 x 11
  r.squared adj.r.squared sigma statistic  p.value    df logLik   AIC   BIC deviance df.residual
      <dbl>         <dbl> <dbl>     <dbl>    <dbl> <int>  <dbl> <dbl> <dbl>    <dbl>       <int>
1     0.878         0.874  74.2      238. 1.22e-16     2  -199.  405.  409.  181452.          33
mdl_bream %>% 
  glance() %>% 
  pull(sigma)
74.15224
R'da Regresyona Giriş

RSE hesaplama: artıkların karesi

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  )
  species mass_g length_cm residuals_sq
1   Bream    242      23.2     138.9571
2   Bream    290      24.0     260.7586
3   Bream    340      23.9    5126.9926
4   Bream    363      26.3    1318.9197
5   Bream    430      26.5     390.9743
6   Bream    450      26.8     547.9380
...
R'da Regresyona Giriş

RSE hesaplama: artık kareleri toplamı

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq)
  )
  resid_sum_of_sq
1        181452.3
R'da Regresyona Giriş

RSE hesaplama: serbestlik derecesi

Serbestlik derecesi, gözlem sayısı eksi model katsayısı sayısına eşittir.

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    deg_freedom = n() - 2
  )
  resid_sum_of_sq deg_freedom
1        181452.3          33
R'da Regresyona Giriş

RSE hesaplama: oranın karekökü

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    deg_freedom = n() - 2,
    rse = sqrt(resid_sum_of_sq / deg_freedom)
  )
  resid_sum_of_sq deg_freedom      rse
1        181452.3          33 74.15224
R'da Regresyona Giriş

RSE’nin yorumlanması

mdl_bream için RSE 74.

Tahmin edilen bream kütleleri ile gözlenen bream kütleleri arasındaki fark tipik olarak yaklaşık 74 g’dir.

R'da Regresyona Giriş

Kök ortalama kare hata (RMSE)

Artık standart hatası

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    deg_freedom = n() - 2,
    rse = sqrt(resid_sum_of_sq / deg_freedom)
  )

Kök ortalama kare hata

bream %>% 
  mutate(
    residuals_sq = residuals(mdl_bream) ^ 2
  ) %>% 
  summarize(
    resid_sum_of_sq = sum(residuals_sq),
    n_obs = n(),
    rmse = sqrt(resid_sum_of_sq / n_obs)
  )
R'da Regresyona Giriş

Hadi pratik yapalım!

R'da Regresyona Giriş

Preparing Video For Download...