Ödevler

  1. aşağıdaki geom_jitter fonksiyonunun kullanım amacını araştırın.

##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

  1. theme_classic fonksiyonunun alternatiflerini bulun ve deneyin.

##theme_classic alternatifleri theme_minimal,theme_bw ve theme_dark; ben theme_dark ı en alt tabloda denedim

  1. bu ders notlarında yer alan palmerpenguins’teki penguins veri seti gibi bir veri üzerinde (örn. midiPISA) regresyon denklemi kurun ve tüm kodları kendi veri setinize uygulayarak çalıştırın.

##(trees) data verisini kullandım

  1. Kendi seçtiğiniz veri seti üzerinde regresyon modeli kurma, saçılım diyagramı oluşturma, grafiğe regresyon çizgisi ekleme, eğim, kesişim ve R-squared katsayılarını yorumlama gibi tüm adımları yapın ve açıklamalarını yazın.
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'