--- title: "R Laboratuvarı 17: Doğrusal regresyon" format: html execute: echo: true warning: false --- Batarya kapasite kaybı çevrim sayısına göre modellenir; katsayı birimleri ve artıklar korunur. ```{r} batarya <- data.frame( cevrim = c(0, 50, 100, 150, 200, 250, 300, 350), kayip_yuzde_puan = c(0.2, 1.0, 2.1, 3.3, 4.4, 4.8, 5.9, 7.2) ) fit <- lm(kayip_yuzde_puan ~ cevrim, data = batarya) coef_table <- as.data.frame(summary(fit)$coefficients) coef_table$terim <- rownames(coef_table) rownames(coef_table) <- NULL knitr::kable(coef_table[, c("terim", "Estimate", "Std. Error", "Pr(>|t|)")], digits = 5, caption = "Batarya regresyon katsayıları") ``` ```{r} par(mfrow = c(1, 2)) plot(fitted(fit), residuals(fit), xlab = "Uydurulan kayıp (yüzde puan)", ylab = "Artık (yüzde puan)") abline(h = 0, lty = 2) qqnorm(residuals(fit)); qqline(residuals(fit)) ``` Ortalama yanıt güven aralığı ile yeni tek batarya öngörü aralığı ayrı hesaplanır. ```{r} yeni <- data.frame(cevrim = 250) ortalama_araligi <- predict(fit, newdata = yeni, interval = "confidence", level = 0.95) tek_gozlem_araligi <- predict(fit, newdata = yeni, interval = "prediction", level = 0.95) araliklar <- data.frame( hedef = c("ortalama yanıt", "yeni tek batarya"), tahmin = c(ortalama_araligi[1, "fit"], tek_gozlem_araligi[1, "fit"]), alt = c(ortalama_araligi[1, "lwr"], tek_gozlem_araligi[1, "lwr"]), ust = c(ortalama_araligi[1, "upr"], tek_gozlem_araligi[1, "upr"]) ) stopifnot(araliklar$ust[2] - araliklar$alt[2] > araliklar$ust[1] - araliklar$alt[1]) knitr::kable(araliklar, digits = 4, caption = "250 çevrimde iki farklı belirsizlik hedefi") ``` Cook uzaklığı yalnız inceleme işaretidir; aşağıdaki tablo otomatik silme listesi değildir. ```{r} etki <- data.frame( gozlem = seq_len(nrow(batarya)), kaldirac = hatvalues(fit), Cook_uzakligi = cooks.distance(fit) ) knitr::kable(etki, digits = 4, caption = "Regresyon etki tanıları") ```