Ödevler
##geom_jitter fonksiyonunun temel işlevleri şunlardır: * Çakışmayı Önleme: Üst üste binen noktaları birbirinden ayırarak görsel kirliliği engeller. * Rastgelelik Ekleme: Noktalara küçük miktarda ‘titreşim’ ekleyerek gerçek veri yoğunluğunu ortaya çıkarır. * Yoğunluk Analizi: Büyük veri gruplarında hangi bölgelerin daha kalabalık olduğunu netleştirir.
##theme_classic alternatifleri theme_minimal,theme_bw ve theme_dark; ben theme_bw yi ve theme_minimal i denedim
##(cars) data verisini kullandım
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)
data(cars)
names(cars)
## [1] "speed" "dist"
glimpse(cars)
## Rows: 50
## Columns: 2
## $ speed <dbl> 4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13…
## $ dist <dbl> 2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34…
# Değişkenleri Türkçeleştirelimm
arabalar <- cars %>%
rename(hiz = speed, mesafe = dist)
arabalar <- arabalar |>
select(hiz, mesafe) |>
na.omit()
ggplot(arabalar, aes(x = hiz, y = mesafe)) +
geom_point() +
labs(x = "Hiz (mph)",
y = "Durma Mesafesi (ft)",
title = "Araba hizi ve Durma Mesafesi İlişkisi")
## Bu grafikte; • her bir nokta bir arabayı temsil eder • yatay eksen:
durma mesfaesini • dikey eksen: hizi
Arabaların hızı arttıkça durma mesafelerinde bir artış var mı?
# Hiz (X) mesafeyi (Y) ne kadar etkiliyor?
araba_mod <- lm(mesafe ~ hiz, data = arabalar)
summary(araba_mod)
##
## Call:
## lm(formula = mesafe ~ hiz, data = arabalar)
##
## Residuals:
## Min 1Q Median 3Q Max
## -29.069 -9.525 -2.272 9.215 43.201
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -17.5791 6.7584 -2.601 0.0123 *
## hiz 3.9324 0.4155 9.464 1.49e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 15.38 on 48 degrees of freedom
## Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438
## F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12
#Eğim (Slope - hiz katsayısı): Analiz sonucunda eğim katsayısı 3.9324 olarak bulunmuştur. Bu değer pozitif olduğu için araba hızı ile durma mesafesi arasında doğru orantılı bir ilişki vardır. Yani, arabanın hızı 1 mph arttığında, durma mesafesinin yaklaşık 3.93 fit artması beklenmektedir.
#Kesişim (Intercept): Kesişim değeri -17.5791 olarak hesaplanmıştır. Bu, teorik olarak hız 0 olduğunda beklenen durma mesafesini ifade eder. Matematiksel bir başlangıç noktasıdır; gerçek hayatta duran bir aracın durma mesafesi negatif olamaz.
#R-squared (\(R^{2}\)): Modelin açıklayıcılık oranı (Multiple R-squared) 0.6511’dir. Bu sonuç, durma mesafesindeki değişimin yaklaşık %65.1’inin araba hızı değişkeni tarafından açıklandığını gösterir . Bu, hızın durma mesafesi üzerinde oldukça güçlü bir etkisi olduğunu kanıtlar.
#Artık Standart Hatası (Residual Standard Error): Bu değer 15.38 olarak bulunmuştur. Bu değer, modelimizin yaptığı tahminler ile gerçek veriler arasında ortalama 15.38 fitlik bir tahmin hatası payı olduğunu gösterir.
coef(araba_mod)
## (Intercept) hiz
## -17.579095 3.932409
ggplot(arabalar, aes(x = hiz, y = mesafe)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "green") +
labs(x = "hiz (mph)",
y = "durma mesafesi (ft)",
title = "Araba hizi ile durma mesafesi Arasındaki İlişki") +
theme_minimal() # Alternatif tema denemesi
## `geom_smooth()` using formula = 'y ~ x'
new_arabalar <- data.frame(hiz = 40)
predict(araba_mod, newdata = new_arabalar)
## 1
## 139.7173
ggplot(arabalar, aes(x = hiz, y = mesafe)) +
geom_jitter(width = 0.3, height = 0.3, alpha = 0.5, color = "black") +
geom_point(alpha = 0.5, size = 3, color = "blue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(
x= "Araba Hizi (mph)",
y = "Durma mesafesi (ft)",
title = "Basit Doğrusal Regresyon"
) +
theme_bw() +
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'