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.