Ödevler
##grafikteki noktaların birbirinin tam üstüne binmesini (overplotting) önlemek için kullanılır. Noktalara yatay ve dikey eksende çok küçük miktarda rastgele “gürültü” ekleyerek, aynı değere sahip gözlemlerin ayrı ayrı görünmesini sağlar. Özellikle büyük veri setlerinde yoğunluğu görmek için tercih edilir
##theme_classic alternatifleri theme_minimal,theme_bw ve theme_dark; ben theme_dark ı en alt tabloda denedim
##(trees) 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("trees")
names(trees)
## [1] "Girth" "Height" "Volume"
glimpse(trees)
## Rows: 31
## Columns: 3
## $ Girth <dbl> 8.3, 8.6, 8.8, 10.5, 10.7, 10.8, 11.0, 11.0, 11.1, 11.2, 11.3, …
## $ Height <dbl> 70, 65, 63, 72, 81, 83, 66, 75, 80, 75, 79, 76, 76, 69, 75, 74,…
## $ Volume <dbl> 10.3, 10.3, 10.2, 16.4, 18.8, 19.7, 15.6, 18.2, 22.6, 19.9, 24.…
trees_tr <- trees %>%
rename(
cap = Girth,
uzunluk = Height,
hacim=Volume)
names(trees_tr)
## [1] "cap" "uzunluk" "hacim"
trees_tr <- trees_tr |>
select(hacim, uzunluk) |>
na.omit()
ggplot(trees_tr, aes(x = hacim, y = uzunluk)) +
geom_point() +
labs(x = "Agac Hacmi (($ft^{3}$)",
y = "Agac Uzunlugu (ft)",
title = "Agac uzunlugu ile hacmi arasındaki iliski")
## Bu grafikte; • her bir nokta bir agaci temsil eder • yatay eksen:
uzunlugu • dikey eksen: hacimi
Agacların uzunlugu arttıkca hacimde bir artış var mı?
trees_mod <- lm(hacim ~ uzunluk, data = trees_tr)
summary(trees_mod)
##
## Call:
## lm(formula = hacim ~ uzunluk, data = trees_tr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.274 -9.894 -2.894 12.068 29.852
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -87.1236 29.2731 -2.976 0.005835 **
## uzunluk 1.5433 0.3839 4.021 0.000378 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.4 on 29 degrees of freedom
## Multiple R-squared: 0.3579, Adjusted R-squared: 0.3358
## F-statistic: 16.16 on 1 and 29 DF, p-value: 0.0003784
#Eğim (Slope - uzunluk katsayısı): Analiz sonucunda eğim katsayısı 1.5433 olarak bulunmuştur2222. Bu değer pozitif olduğu için ağaç uzunluğu ile hacim arasında doğru orantılı bir ilişki vardır3. Yani, ağacın uzunluğu 1 fit arttığında, ağacın beklenen hacmi yaklaşık 1.54 birim (\(ft^{3}\)) artmaktadır.
#Kesişim (Intercept): Kesişim değeri -87.1236 olarak hesaplanmıştır4444. Bu, ağacın uzunluğu teorik olarak 0 fit olsaydı beklenen başlangıç hacmini ifade eder5. Gerçek hayatta 0 boyunda bir ağaç olamayacağı için bu değer matematiksel bir başlangıç noktasıdır6.
#R-squared (\(R^{2}\)): Modelin açıklayıcılık oranı (Multiple R-squared) 0.3579’dur7. Bu sonuç, ağaç hacmindeki değişimin yaklaşık %35.8’inin ağaç uzunluğu değişkeni tarafından açıklandığını gösterir8. Geri kalan kısım modele dahil edilmeyen diğer faktörlere bağlıdır.
#Artık Standart Hatası (Residual Standard Error): Bu değer 13.4 olarak bulunmuştur9. Bu, modelimizin yaptığı hacim tahminleri ile ağaçların gerçek hacim değerleri arasında ortalama 13.4 birimlik bir fark (tahmin hatası) olduğunu gösterir10.
coef(trees_mod)
## (Intercept) uzunluk
## -87.12361 1.54335
ggplot(trees_tr, aes(x = uzunluk, y = hacim)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "pink") +
labs(x = "Agac Hacmi (($ft^{3}$)",
y = "Agac Uzunlugu (ft)",
title = "Ağaç Uzunluğu ile Hacmi Arasındaki İlişki") +
theme_bw() # Alternatif tema denemesi
## `geom_smooth()` using formula = 'y ~ x'
new_trees <- data.frame(uzunluk = 80)
predict(trees_mod, newdata = new_trees)
## 1
## 36.34437
ggplot(trees_tr, aes(x = hacim, y = uzunluk)) +
geom_jitter(width = 0.3, height = 0.3, alpha = 0.5, color = "orange") +
geom_point(alpha = 0.5, size = 3, color = "purple") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(
x= "Agac Hacmi (($ft^{3}$)",
y = "Agac Uzunlugu (ft)",
title = "Basit Doğrusal Regresyon"
) +
theme_dark() +
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'