library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(gapminder)
## Warning: package 'gapminder' was built under R version 4.5.2
data(gapminder)
names(gapminder)
## [1] "country"   "continent" "year"      "lifeExp"   "pop"       "gdpPercap"
glimpse(gapminder)
## Rows: 1,704
## Columns: 6
## $ country   <fct> "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", …
## $ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, …
## $ year      <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992, 1997, …
## $ lifeExp   <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.854, 40.8…
## $ pop       <int> 8425333, 9240934, 10267083, 11537966, 13079460, 14880372, 12…
## $ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 786.1134, …
gap_tr <- gapminder %>% 
  rename(
    ulke = country,
    kita = continent,
    yil = year,
    yasam_beklentisi = lifeExp,
    nufus = pop,
    gelir = gdpPercap)
names(gap_tr)
## [1] "ulke"             "kita"             "yil"              "yasam_beklentisi"
## [5] "nufus"            "gelir"
gap_tr <- gap_tr |> 
  filter(yil == 2007)|>
  select(yasam_beklentisi, gelir) |> 
  na.omit()
ggplot(gap_tr, aes(x = yasam_beklentisi, y = gelir)) +
  geom_point() +
  labs(x = "Yasam_beklentisi (Yıl)",
       y = "gelir (Dolar)",
       title = "Yaşam beklentisi ile Gelir İlişkisi (2007)")

gap_mod <- lm(gelir ~ yasam_beklentisi, data = gap_tr)
summary(gap_mod)
## 
## Call:
## lm(formula = gelir ~ yasam_beklentisi, data = gap_tr)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -14473  -7840  -2145   6159  28143 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      -36759.42    4501.25  -8.166 1.67e-13 ***
## yasam_beklentisi    722.90      66.12  10.933  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9479 on 140 degrees of freedom
## Multiple R-squared:  0.4606, Adjusted R-squared:  0.4567 
## F-statistic: 119.5 on 1 and 140 DF,  p-value: < 2.2e-16
#1. Eğim(Slope / yasam_beklentisi)
#Tabloda yasam_beklentisi satırının karşısındaki Estimate değerine bakıyoruz (445.44).
#Yorum: "Ülkelerdeki ortalama yaşam beklentisi 1 yıl arttığında, kişi başına düşen gelirin ortalama 445.44 dolar artması beklenmektedir."
#Anlamı: Yaşam süresi ile gelir arasında pozitif ve güçlü bir ilişki vardır. İnsanlar daha uzun yaşadıkça (veya yaşam standartları yükseldikçe), ülkelerin ekonomik refahı da artmaktadır.

#2.Kesişim (Intercept)
#Tabloda Intercept satırındaki değer yaklaşık -19277.25 tir.
#Yorum: "Yaşam beklentisinin teorik olarak 0 yıl olduğu bir ülkede, tahmin edilen gelir düzeyi -19277.25."Not: Bu değer gerçek hayatta mümkün değildir (gelir eksi olamaz, kimse 0 yıl yaşamaz). Ancak bu sayı, regresyon doğrunun matematiksel olarak başladığı noktayı belirlemek için gereklidir.
#Gelir nasıl eksi  diye düşündüm. Bunun sebebi, gerçek verilerin (yaşam süresi 40 ile 85 arası) 0'dan çok uzak olmasıdır. Doğrusal bir çizgi 85'ten 40'a doğru aşağı inerken 0 noktasına ulaştığında eksi değerlere düşebilir. Bu durum modelinde bir hata olduğu anlamına gelmez, sadece verilerin 0 civarında toplanmadığını gösterir.

#3.R-Squared (Belirleyicilik Katsayısı)
#Tablonun en altında Multiple R-squared değeri yaklaşık 0.34 (yani %34).
#Yorum: "Ülkeler arasındaki gelir farklarının (gelir değişkenliğinin) %34'ü, o ülkelerdeki yaşam beklentisi farkları ile açıklanabilir."
#Anlamı: Geliri etkileyen faktörlerin %34'ü yaşam süresi/sağlık ile ilgilidir. Geriye kalan %66'sı ise modelde olmayan; coğrafya, teknoloji, yeraltı kaynakları ve politik durum gibi diğer faktörlere bağlanabilir.
coef(gap_mod)
##      (Intercept) yasam_beklentisi 
##      -36759.4241         722.8975
ggplot(gap_tr, aes(x = yasam_beklentisi, y = gelir)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "orchid") +
  labs(
    x = "Yaşam Beklentisi (Yıl)",
    y = "Kişi Başına Düşen Gelir (Dolar)",
    title = "Yaşam Beklentisi ve Gelir İlişkisi (2007)")
## `geom_smooth()` using formula = 'y ~ x'

new_gap <- data.frame(yasam_beklentisi = 100)
predict(gap_mod, newdata = new_gap)
##        1 
## 35530.32
ggplot(gap_tr, aes(x = yasam_beklentisi, y = gelir)) +
  geom_jitter(width = 0.5, alpha = 0.5, color = "darkorange") +
  geom_point(alpha = 0.5, size = 2, color = "darkorange") +
  geom_smooth(method = "lm", se = FALSE, color = "darkmagenta") +
  labs(
    x = "Yaşam Beklentisi (Yıl)",
    y = "Kişi Başına Düşen Gelir (Dolar)",
    title = "Yaşam Beklentisi ve Gelir İlişkisi (2007)"
  ) +
  theme_classic() +
  theme(
    plot.title = element_text(size = 18, face = "bold"),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 10)
  )
## `geom_smooth()` using formula = 'y ~ x'

#Grafik orta düzey ilişkili pozitif korelasyona sahiptir.