# geom_jitter() ggplot2'de kullanılan bir görselleştirme aracıdır. fonksiyonunun kullanım amacı, grafiklerde özellikle kategorik değişkenlere karşı gösterilen sayısal verilerde gözlemlerin üst üste binmesi nedeniyle oluşan bilgi kaybını önlemektir. Bu fonksiyon, noktaları eksenler boyunca küçük ve rastgele miktarlarda kaydırarak gözlem yoğunluğunu ve veri dağılımını daha görünür hale getirir. Böylece grafiklerin okunabilirliği artar ve veriler daha sağlıklı bir şekilde yorumlanabilir.
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)
## Warning: package 'ggplot2' was built under R version 4.5.2
data(mtcars)
names(mtcars)
##  [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
## [11] "carb"
glimpse(mtcars)
## Rows: 32
## Columns: 11
## $ mpg  <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.2, 17.8,…
## $ cyl  <dbl> 6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 8,…
## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 140.8, 16…
## $ hp   <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, 180, 180…
## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92,…
## $ wt   <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3.150, 3.…
## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 22.90, 18…
## $ vs   <dbl> 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,…
## $ am   <dbl> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,…
## $ gear <dbl> 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3,…
## $ carb <dbl> 4, 4, 1, 1, 2, 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2,…
mtcars_tr <- mtcars %>% 
  rename(
    yakit_verimliligi= mpg,
    silindir_sayisi= cyl, 
    motor_hacmi= disp,
    beygir_gucu= hp,
    arka_aks_orani= drat,
    agirlik= wt,
    ceyrek_mil_suresi= qsec,
    motor_tipi= vs,
    vites_turu= am,
    vites_sayisi= gear,
    karburator_sayisi= carb,
  )
names(mtcars_tr)
##  [1] "yakit_verimliligi" "silindir_sayisi"   "motor_hacmi"      
##  [4] "beygir_gucu"       "arka_aks_orani"    "agirlik"          
##  [7] "ceyrek_mil_suresi" "motor_tipi"        "vites_turu"       
## [10] "vites_sayisi"      "karburator_sayisi"
mtcars_tr <- mtcars_tr |>
  dplyr::select(agirlik, yakit_verimliligi) |>
  na.omit()
ggplot(mtcars_tr, aes(x = yakit_verimliligi, y = agirlik)) +
  geom_point()+ 
  labs(x = "Ağırlık(lb)",
       y = "Yakıt Verimliliği(mpg)",
       title = " Ağırlık ve Yakıt Verimliliği İlişkisi")

# Negatif Korelasyon: Grafik sağ aşağı doğru bir eğilim gösteriyor. Ağırlık arttıkça yakıt verimliliğini azalmıştır.
  cars_mod <- lm( yakit_verimliligi ~ agirlik, data= mtcars_tr)
summary(cars_mod)
## 
## Call:
## lm(formula = yakit_verimliligi ~ agirlik, data = mtcars_tr)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5432 -2.3647 -0.1252  1.4096  6.8727 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  37.2851     1.8776  19.858  < 2e-16 ***
## agirlik      -5.3445     0.5591  -9.559 1.29e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.046 on 30 degrees of freedom
## Multiple R-squared:  0.7528, Adjusted R-squared:  0.7446 
## F-statistic: 91.38 on 1 and 30 DF,  p-value: 1.294e-10
# Eğim (Slope): Arabanın ağırlığı 1 birim arttığında, yakıt verimliliğinin ortalama 5.34 birim azaldığını saptadım.
# Kesişim (Intercept): Arabanın ağırlığı 0 olsaydı, modelin tahmin ettiği başlangıç yakıt verimliliği değeri 37.28 olacaktı.
# R-squared (R2): Yakıt verimliliğindeki (mpg) toplam değişimin yaklaşık %75'inin arabanın ağırlığı değişkeniyle açıklandığını gördüm.
# Artık Standart Hatası (Residual Standard Error): Modelimin yaptığı yakıt verimliliği tahminleri ile gerçek veriler arasında ortalama 3.04 birimlik bir yanılma payı olduğunu saptadım.
coef(cars_mod)
## (Intercept)     agirlik 
##   37.285126   -5.344472
# Yakıt Verimliliği= b0 + b1X
# Yakıt Verimliliği = 37.285 + (-5.344)x Ağırlık
ggplot(mtcars_tr, aes(x = agirlik, y = yakit_verimliligi)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(x = "Ağırlık(lp)",
       y = "Yakıt Verimliliği (mpg)",
       title = "Basit Doğrusal Regresyon Çizgisi") +
  theme_classic(base_size=15)
## `geom_smooth()` using formula = 'y ~ x'

new_cars <- data.frame(agirlik = 6)
predict(cars_mod, newdata = new_cars)
##        1 
## 5.218297
# Modelimi kullanarak ağırlığı 6 birim (6000 lbs) olan bir arabanın beklenen yakıt verimliliğini yaklaşık 5.21 mil (mpg) olarak hesapladım.
ggplot(mtcars_tr, aes(x = agirlik, y = yakit_verimliligi)) +
  geom_jitter(width = 0.3, height = 0.3, alpha = 0.5, color = "steelblue") +
  geom_point(alpha = 0.5, size = 3, color = "steelblue") +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(
    x = "Agirlik(lp)",
    y = "Yakıt Verimliliği (mpg)",
    title = "Basit Doğrusal Regresyon"
  ) +
  theme_classic() +
  theme(
    plot.title = element_text(size = 20, face = "bold"),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 12)
  )
## `geom_smooth()` using formula = 'y ~ x'

ggplot(mtcars_tr, aes(x = agirlik, y = yakit_verimliligi)) +
  geom_jitter(width = 0.3, height = 0.3, alpha = 0.5, color = "steelblue") +
  geom_point(alpha = 0.5, size = 3, color = "steelblue") +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(
    x = "Agirlik(lp)",
    y = "Yakıt Verimliliği (mpg)",
    title = "Basit Doğrusal Regresyon"
  ) +
  theme_classic() +
  theme_grey()
## `geom_smooth()` using formula = 'y ~ x'

ggplot(mtcars_tr, aes(x = agirlik, y = yakit_verimliligi)) +
  geom_jitter(width = 0.3, height = 0.3, alpha = 0.5, color = "steelblue") +
  geom_point(alpha = 0.5, size = 3, color = "steelblue") +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(
    x = "Agirlik(lp)",
    y = "Yakıt Verimliliği (mpg)",
    title = "Basit Doğrusal Regresyon"
  ) +
  theme_classic() +
  theme_dark()
## `geom_smooth()` using formula = 'y ~ x'

ggplot(mtcars_tr, aes(x = agirlik, y = yakit_verimliligi)) +
  geom_jitter(width = 0.3, height = 0.3, alpha = 0.5, color = "steelblue") +
  geom_point(alpha = 0.5, size = 3, color = "steelblue") +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(
    x = "Agirlik(lp)",
    y = "Yakıt Verimliliği (mpg)",
    title = "Basit Doğrusal Regresyon"
  ) +
  theme_classic() +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'