Adınız & Soyadınız:Elif BAŞAR
NO:23727095
Cevaplarınız bir .Rmd dosyası içinde
hazırlayınız (bu dosyayı şablon olarak kullanabilirsiniz) ve
.html çıktı dosyasını üretiniz (RStudio içinde knit komutu
ile). adiniz_soyadiniz.Rmd ve adiniz_soyadiniz.html olarak
isimlendirdiğiniz bu iki dosyayı Google Classroom’a
yükleyiniz.
Bu klasörde yer alan sagliksig.rda içinde
train_sig ve test_sig isimli iki veri
çerçevesi bulunmaktadır:
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
load("/cloud/project/Odev/sagliksig.rda")
str(train_sig)
## tibble [1,002 × 8] (S3: tbl_df/tbl/data.frame)
## $ yas : num [1:1002] 18 28 32 31 30 18 19 19 26 24 ...
## $ cinsiyet: Factor w/ 2 levels "E","K": 1 1 1 2 2 2 2 1 1 2 ...
## $ BMI : num [1:1002] 33.8 33 28.9 25.7 32.4 ...
## $ cocuksay: num [1:1002] 1 3 0 0 1 0 5 0 0 0 ...
## $ sigara : Factor w/ 2 levels "evet","hayır": 2 2 2 2 2 2 2 2 2 2 ...
## $ bolge : Factor w/ 4 levels "güneybatı","güneydoğu",..: 2 2 3 2 1 4 1 3 1 4 ...
## $ maliyet : num [1:1002] 1726 4449 3867 3757 4150 ...
## $ lmaliyet: num [1:1002] 7.45 8.4 8.26 8.23 8.33 ...
Hedef değişken lmaliyet, sağlık sigortası maliyetinin
doğal logaritmasıdır. Kestirim değişkenleri yaş, cinsiyet, BMI (vücut
kitle endeksi), çocuk sayısı, sigara ve bölgedir.
Bu değişkenleri kullanarak lmaliyet için bir regresyon
modeli tahmin ediniz. İdeal regresyon modelinizde uygun etkileşim
terimleri de yer alabilir. Sonuçları yorumlayınız ve tartışınız.
model <- lm(lmaliyet ~ yas + cinsiyet + BMI + cocuksay + sigara + bolge, data = train_sig)
summary(model)
##
## Call:
## lm(formula = lmaliyet ~ yas + cinsiyet + BMI + cocuksay + sigara +
## bolge, data = train_sig)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.09803 -0.20291 -0.03800 0.08032 2.16365
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.3858865 0.0894726 93.726 < 2e-16 ***
## yas 0.0342863 0.0009977 34.367 < 2e-16 ***
## cinsiyetK 0.0440780 0.0278793 1.581 0.11419
## BMI 0.0147306 0.0024031 6.130 1.27e-09 ***
## cocuksay 0.1028666 0.0116636 8.819 < 2e-16 ***
## sigarahayır -1.5608929 0.0341653 -45.686 < 2e-16 ***
## bolgegüneydoğu -0.0675984 0.0392995 -1.720 0.08573 .
## bolgekuzeybatı 0.0324234 0.0401234 0.808 0.41923
## bolgekuzeydoğu 0.1033006 0.0396355 2.606 0.00929 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4384 on 993 degrees of freedom
## Multiple R-squared: 0.7776, Adjusted R-squared: 0.7758
## F-statistic: 434 on 8 and 993 DF, p-value: < 2.2e-16
##Modelin çoğu bağımsız değişken için anlamlı olduğunu ve verileri oldukça iyi
##açıkladığını söyleyebiliriz. Ancak, cinsiyet ve bolge seviyeleri için p değerleri
##yüksek. Bu değişkenlerin modeldeki etkileri istatistiksel olarak anlamsızdır.
Test verisini kullanarak ortalama hata karesini (test MSE) hesaplayınız. Test verisindeki gerçek hedef değişken ile kestirim değerlerinin serpilme grafiğini 45-derece doğrusu ile birlikte çiziniz ve R-kare ile birlikte yorumlayınız.
library(tidyverse)
load("/cloud/project/Odev/sagliksig.rda")
str(test_sig)
## tibble [336 × 8] (S3: tbl_df/tbl/data.frame)
## $ yas : num [1:336] 33 60 25 23 19 23 60 18 23 60 ...
## $ cinsiyet: Factor w/ 2 levels "E","K": 1 2 1 1 1 1 2 1 1 1 ...
## $ BMI : num [1:336] 22.7 25.8 26.2 34.4 24.6 ...
## $ cocuksay: num [1:336] 0 0 0 0 1 0 0 0 1 0 ...
## $ sigara : Factor w/ 2 levels "evet","hayır": 2 2 2 2 2 2 2 2 2 1 ...
## $ bolge : Factor w/ 4 levels "güneybatı","güneydoğu",..: 3 3 4 1 1 4 4 2 3 1 ...
## $ maliyet : num [1:336] 21984 28923 2721 1827 1837 ...
## $ lmaliyet: num [1:336] 10 10.27 7.91 7.51 7.52 ...
model2 <- lm(lmaliyet ~ yas + cinsiyet + BMI + cocuksay + sigara + bolge, data = test_sig)
test_sig$predicted <- predict(model2, newdata = test_sig)
test_MSE <- mean((test_sig$lmaliyet - test_sig$predicted)^2)
print(paste("Test MSE:", test_MSE))
## [1] "Test MSE: 0.206503252959391"
library(ggplot2)
ggplot(test_sig, aes(x = lmaliyet, y = predicted)) + geom_point() + # Nokta olarak göster
geom_abline(slope = 1, intercept = 0, color = "red") + # 45 derece doğrusu
labs(x = "Gerçek Değerler", y = "Tahmini Değerler", title = "Gerçek ve Tahmini Değerlerin Serpilme Grafiği")
summary(model2)$r.squared
## [1] 0.7453334
Önceki sorudaki verileri kullanarak bir regresyon ağacı eğitiniz. Ağacın grafiğini çizerek yorumlayınız. Test verisinde MSE’yi hesaplayınız. Önceki sorudaki regresyon modeline göre daha başarılı mı?
library(rpart.plot)
## Loading required package: rpart
model3 <- rpart(formula = lmaliyet ~ yas + cinsiyet + BMI + cocuksay + sigara + bolge, data = test_sig)
rpart.plot(model3)
Uygun ayarlanma parametrelerini seçerek Bagging ve Random Forest algoritmalarını eğitiniz. Her bir algoritmanın test MSE değerlerini hesaplayınız. Öncek sonuçlarla birlikte tartışınız. Bu yöntemlere göre önemli değişkenler hangileridir?
tahminler <- predict(model3, newdata = test_sig)
gercek_degerler <- test_sig$lmaliyet
hata_kareleri <- (tahminler - gercek_degerler)^2
mse <- mean(hata_kareleri)
mse
## [1] 0.1721315
Önceki sorulardaki sigorta veri kümesini kullanarak lmaliyet için Boosting algoritmasını eğitmek istiyoruz. Uygun ayarlanma parametrelerini kullanarak GBM paketi ile modeli eğitiniz. Test MSE değerini hesaplayınız ve önceki sonuçlarla karşılaştırınız.
install.packages("gbm")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(gbm)
## Loaded gbm 2.1.9
## This version of gbm is no longer under development. Consider transitioning to gbm3, https://github.com/gbm-developers/gbm3
gbm_model <- gbm(lmaliyet ~ yas + cinsiyet + BMI + cocuksay + sigara + bolge, data = test_sig,
distribution = "gaussian", n.trees = 100, interaction.depth = 3, shrinkage = 0.1)
gbm_tahminler <- predict(gbm_model, newdata = test_sig, n.trees = 100)
gbm_mse <- mean((gbm_tahminler - test_sig$lmaliyet)^2)
gbm_mse
## [1] 0.1208532
GBM boosting algoritmasında seçmemiz gereken 3 ayarlanma parametresi vardır. Bu hiperparametreler için aşağıdaki gibi bir grid oluşturalım.
# create a grid of hyper-parameters
B <- c(500,1000,2000,5000) # n.trees
d <- c(1,2,3,4) # interaction.depth
lambda <- c(0.001,0.01,0.02,0.03,0.05,0.1,0.2) # shrinkage
G <- expand.grid(B=B, d=d, lambda=lambda)
# Hiperparametre grid'i oluşturun
B <- c(500, 1000, 2000, 5000) # n.trees
d <- c(1, 2, 3, 4) # interaction.depth
lambda <- c(0.001, 0.01, 0.02, 0.03, 0.05, 0.1, 0.2) # shrinkage
# Grid oluşturma
G <- expand.grid(B = B, d = d, lambda = lambda)
# Grid'i gösterin
print(G)
## B d lambda
## 1 500 1 0.001
## 2 1000 1 0.001
## 3 2000 1 0.001
## 4 5000 1 0.001
## 5 500 2 0.001
## 6 1000 2 0.001
## 7 2000 2 0.001
## 8 5000 2 0.001
## 9 500 3 0.001
## 10 1000 3 0.001
## 11 2000 3 0.001
## 12 5000 3 0.001
## 13 500 4 0.001
## 14 1000 4 0.001
## 15 2000 4 0.001
## 16 5000 4 0.001
## 17 500 1 0.010
## 18 1000 1 0.010
## 19 2000 1 0.010
## 20 5000 1 0.010
## 21 500 2 0.010
## 22 1000 2 0.010
## 23 2000 2 0.010
## 24 5000 2 0.010
## 25 500 3 0.010
## 26 1000 3 0.010
## 27 2000 3 0.010
## 28 5000 3 0.010
## 29 500 4 0.010
## 30 1000 4 0.010
## 31 2000 4 0.010
## 32 5000 4 0.010
## 33 500 1 0.020
## 34 1000 1 0.020
## 35 2000 1 0.020
## 36 5000 1 0.020
## 37 500 2 0.020
## 38 1000 2 0.020
## 39 2000 2 0.020
## 40 5000 2 0.020
## 41 500 3 0.020
## 42 1000 3 0.020
## 43 2000 3 0.020
## 44 5000 3 0.020
## 45 500 4 0.020
## 46 1000 4 0.020
## 47 2000 4 0.020
## 48 5000 4 0.020
## 49 500 1 0.030
## 50 1000 1 0.030
## 51 2000 1 0.030
## 52 5000 1 0.030
## 53 500 2 0.030
## 54 1000 2 0.030
## 55 2000 2 0.030
## 56 5000 2 0.030
## 57 500 3 0.030
## 58 1000 3 0.030
## 59 2000 3 0.030
## 60 5000 3 0.030
## 61 500 4 0.030
## 62 1000 4 0.030
## 63 2000 4 0.030
## 64 5000 4 0.030
## 65 500 1 0.050
## 66 1000 1 0.050
## 67 2000 1 0.050
## 68 5000 1 0.050
## 69 500 2 0.050
## 70 1000 2 0.050
## 71 2000 2 0.050
## 72 5000 2 0.050
## 73 500 3 0.050
## 74 1000 3 0.050
## 75 2000 3 0.050
## 76 5000 3 0.050
## 77 500 4 0.050
## 78 1000 4 0.050
## 79 2000 4 0.050
## 80 5000 4 0.050
## 81 500 1 0.100
## 82 1000 1 0.100
## 83 2000 1 0.100
## 84 5000 1 0.100
## 85 500 2 0.100
## 86 1000 2 0.100
## 87 2000 2 0.100
## 88 5000 2 0.100
## 89 500 3 0.100
## 90 1000 3 0.100
## 91 2000 3 0.100
## 92 5000 3 0.100
## 93 500 4 0.100
## 94 1000 4 0.100
## 95 2000 4 0.100
## 96 5000 4 0.100
## 97 500 1 0.200
## 98 1000 1 0.200
## 99 2000 1 0.200
## 100 5000 1 0.200
## 101 500 2 0.200
## 102 1000 2 0.200
## 103 2000 2 0.200
## 104 5000 2 0.200
## 105 500 3 0.200
## 106 1000 3 0.200
## 107 2000 3 0.200
## 108 5000 3 0.200
## 109 500 4 0.200
## 110 1000 4 0.200
## 111 2000 4 0.200
## 112 5000 4 0.200
Eğitim verilerini kullanarak 5-katlı çapraz geçerleme yöntemi ile optimal ayarlanma parametrelerini seçiniz. Bu değerleri kullanarak test MSE’yi hesaplayınız.
Bu soruda döviz kurunun yönünü (yukarı/aşağı) sınıflandırmaya çalışacağız. USD/TL döviz kurundaki günlük değişimin yönünü (up/down) son 5 günlük döviz kuru ve hisse senedi piyasası değişimlerinden hareketle öngörmek istiyoruz.
finmarkets.RData 13/01/2000 - 04/05/2020 dönemini
kapsayan 5086 günlük gözlemden oluşmaktadır.
library(tidyverse)
load("finmarkets.RData")
str(finmarkets)
## 'data.frame': 5086 obs. of 20 variables:
## $ datechar : chr "2000-01-13" "2000-01-14" "2000-01-17" "2000-01-18" ...
## $ year : chr "2000" "2000" "2000" "2000" ...
## $ month : chr "01" "01" "01" "01" ...
## $ day : Ord.factor w/ 7 levels "Pazar"<"Pazartesi"<..: 5 6 2 3 4 6 2 3 4 5 ...
## $ bist100 : num 18138 19110 18458 19577 19288 ...
## $ usd : num 0.539 0.54 0.543 0.546 0.546 ...
## $ bistret : num 6.87 5.22 -3.47 5.89 -1.49 ...
## $ bistdirection: Factor w/ 2 levels "Down","Up": 2 2 1 2 1 1 1 2 2 2 ...
## $ bistretlag1 : num 3.53 6.87 5.22 -3.47 5.89 ...
## $ bistretlag2 : num 3.17 3.53 6.87 5.22 -3.47 ...
## $ bistretlag3 : num -2.27 3.17 3.53 6.87 5.22 ...
## $ bistretlag4 : num -4.42 -2.27 3.17 3.53 6.87 ...
## $ bistretlag5 : num -3.37 -4.42 -2.27 3.17 3.53 ...
## $ usdret : num -0.0619 0.196 0.4419 0.6445 0.0304 ...
## $ usddirection : Factor w/ 2 levels "Down","Up": 1 2 2 2 2 2 2 2 2 2 ...
## $ usdretlag1 : num 0.8285 -0.0619 0.196 0.4419 0.6445 ...
## $ usdretlag2 : num 0 0.8285 -0.0619 0.196 0.4419 ...
## $ usdretlag3 : num 0.00299 0 0.82846 -0.06192 0.196 ...
## $ usdretlag4 : num -0.12587 0.00299 0 0.82846 -0.06192 ...
## $ usdretlag5 : num -0.92476 -0.12587 0.00299 0 0.82846 ...
## - attr(*, "na.action")= 'omit' Named int [1:6] 1 2 3 4 5 6
## ..- attr(*, "names")= chr [1:6] "1" "2" "3" "4" ...
usdret: USD/TL döviz kurundaki günlük değişim, %.
usddirection: iki seviyeli faktör değişkeni, usdret’in
işaret negatifse “Down”, pozitifse “Up”.
usdretlag1-usdretlag5: usdret’in 5 günlük gecikmeli
değerleri, birinci gecikme, ikinci gecikme, vs.
bistretlag1-bistretlag5: BIST100 getirilerinin gecikmeli
değerleri.
Bugünkü döviz kurunun yönünü öngörmek isteyen bir yatırımcının son beş günlük döviz kuru ve BIST100 hareketlerini bildiğini varsayıyoruz.
Verileri aşağıdaki gibi eğitim ve test kümelerine ayıralım:
fin_train <- finmarkets |> filter(year<=2016)
fin_test <- finmarkets |> filter(year>2016)
Eğitim kümesini kullanarak hedef değişken usddirection
için bir lojistik regresyon sınıflandırma modeli eğitiniz. Modelde
sadece usdretlag1 - usdretlag5 gecikme
değişkenlerini (5 değişken) kullanın. Test verilerini kullanarak
doğruluk ve hata oranlarını hesaplayınız. Karışıklık matrisini
(Confusion matrix) hesaplayınız ve yorumlayınız. No information rate
kaçtır? Model sizce başarılı mı?
model <- glm(usddirection ~ usdretlag1 + usdretlag2 + usdretlag3 + usdretlag4 + usdretlag5,
data = fin_train,
family = binomial)
predictions <- predict(model, newdata = fin_test, type = "response")
predicted_classes <- ifelse(predictions > 0.5, "Up", "Down")
actual_classes <- fin_test$usddirection
accuracy <- mean(predicted_classes == actual_classes)
cat("Accuracy:", accuracy, "\n")
## Accuracy: 0.5354142
error_rate <- mean(predicted_classes != actual_classes)
cat("Error rate:", error_rate, "\n")
## Error rate: 0.4645858
conf_matrix <- table(predicted_classes, actual_classes)
conf_matrix
## actual_classes
## predicted_classes Down Up
## Down 270 264
## Up 123 176
Lojistik regresyon modelini usdretlag1 -
usdretlag5 gecikmelerinin yanı sıra BIST100 gecikmelerini,
bistretlag1-bistretlag5, ekleyerek
genişletiniz (toplamda 10 değişkenli bir model) ve eğitiniz. Modelin
performansını test verilerinden hareketle değerlendiriniz ve öncek
kısımdaki sonuçlarla karşılaştırınız. Test performansına göre hangi
model daha başarılıdır? Seçtiğiniz modeli yatırım stratejilerinizde
kullanır mısınız? Tartışınız.
logit_model_expanded <- glm(usddirection ~ usdretlag1 + usdretlag2 + usdretlag3 + usdretlag4 + usdretlag5 +
bistretlag1 + bistretlag2 + bistretlag3 + bistretlag4 + bistretlag5,
data = fin_train, family = binomial)
predicted_classes_expanded <- predict(logit_model_expanded, newdata = fin_test, type = "response")
predicted_direction_expanded <- ifelse(predicted_classes_expanded > 0.5, "Up", "Down")
test_accuracy_expanded <- mean(predicted_direction_expanded == fin_test$usddirection)
test_accuracy_expanded
## [1] 0.6110444
##Genişletilmiş modelin test verileri üzerindeki doğruluk oranı %61,1 olarak hesaplanmıştır. Önceki modele kıyasla daha yüksek bir doğruluk oranıdır, bu da genişletilmiş modelin daha iyi performans gösterdiğini gösterir.Yatırım stratejilerinde kullanmak için yeterli bulmuyorum. Modelin karmaşıklığı, uygulanabilirliği ve diğer faktörler de dikkate alınmalıdır.
yasamveri2015.RData dosyasında veriler
isimli bir veri çerçevesi içinde Türkiye’de il düzeyinde mutluluk
endeksi ile bazı il özelliklerine ilişkin değişkenler yer
almaktadır.
load("yasamveri2015.RData")
str(veriler)
## tibble [81 × 42] (S3: tbl_df/tbl/data.frame)
## $ il : chr [1:81] "Adana" "Adıyaman" "Afyonkarahisar" "Ağrı" ...
## $ oda : num [1:81] 1.22 0.93 1.36 0.84 1.4 1.57 1.38 1.62 1.45 1.55 ...
## $ tuv : num [1:81] 86.3 77.1 90.2 64.1 95 ...
## $ ev_kalite : num [1:81] 22.7 41.1 12.9 40.5 16.9 ...
## $ istihdam : num [1:81] 43.3 39.2 51.1 53.2 47.4 44.5 52.9 47.1 51.4 44.4 ...
## $ issizlik : num [1:81] 13.2 9.1 5.6 6.8 6.6 10.2 7.9 7.1 6.9 6 ...
## $ ort_gun_kazanc : num [1:81] 59.1 53.2 53.9 56.1 53.8 ...
## $ is_tatmin : num [1:81] 73.3 64.3 85.3 64 88.7 ...
## $ tasarruf : num [1:81] 5428 1543 4062 842 3121 ...
## $ orta_ust_gelir_gr : num [1:81] 34.1 16.3 29.7 22.6 34.8 ...
## $ temel_iht_gr : num [1:81] 59.8 74.8 44.1 73.5 43.8 ...
## $ bebek_mort : num [1:81] 13.18 12.06 9.57 14.43 15.38 ...
## $ yasam_bek : num [1:81] 77.4 79.5 77 75.6 77.8 ...
## $ doktor_basv : num [1:81] 5323 7437 5727 6720 8067 ...
## $ saglik_tatmin : num [1:81] 68.5 69.1 80.1 66.2 74.2 ...
## $ kamu_saglik_tatmin : num [1:81] 72.5 74.6 87.3 63.3 86.5 ...
## $ okullasma_3_5 : num [1:81] 28.4 30 31.8 25.4 47.1 ...
## $ TEOG : num [1:81] 282 289 296 234 317 ...
## $ YGS : num [1:81] 200 197 195 190 196 ...
## $ yuk_egit_orani : num [1:81] 14.21 12.29 10.78 8.62 13.43 ...
## $ kamu_egit_tatmin : num [1:81] 63.9 69 88.9 65.3 87.5 ...
## $ hava_kir : num [1:81] 44.8 71 81 47 29 ...
## $ orman_alan : num [1:81] 42.094 25.234 17.001 0.532 39.174 ...
## $ atik_hiz : num [1:81] 97.9 65.9 73.1 56.2 70 ...
## $ gurultu_kir : num [1:81] 25.53 19.39 6.48 12.92 12.83 ...
## $ bel_temiz_tatmin : num [1:81] 59.6 36.7 77.6 35.9 74.4 ...
## $ cinayet : num [1:81] 42.9 18.4 29.7 29.1 21.7 ...
## $ tra_kaza : num [1:81] 2.26 1.76 2.82 1.3 3.08 ...
## $ gece_guv_yuru : num [1:81] 53.1 73.6 87.2 57.9 67.5 ...
## $ kamu_guv_tatmin : num [1:81] 76.6 82.8 91.2 76.9 92.3 ...
## $ oy_verme_belediye : num [1:81] 88.1 87.2 92 77.1 91.2 90.9 89.8 87.7 90.7 91.3 ...
## $ uyelik_siy_parti : num [1:81] 20.6 22.3 20 18.6 22.1 ...
## $ sendika : num [1:81] 7.6 6.98 5.71 6.36 5.42 ...
## $ internet : num [1:81] 9.74 3.71 7.04 2.16 8.61 ...
## $ kanalizasyon : num [1:81] 91.5 67.7 71.9 50.4 69 ...
## $ havaalani : num [1:81] 7449.8 74.3 12 167 21.7 ...
## $ kamu_ulasim_tatmin : num [1:81] 56.3 36.7 74.2 48.5 73.4 ...
## $ sin_tiyatro : num [1:81] 73.09 2.9 34.92 6.32 19.26 ...
## $ avm : num [1:81] 82.4 0 119.9 0 0 ...
## $ sosyal_ilis_tatmin : num [1:81] 81.9 81.8 94 90 92.8 ...
## $ sosyal_hayat_tatmin: num [1:81] 46.7 56.9 70.3 46.2 62.7 ...
## $ mutluluk : num [1:81] 53 65 76.4 60.1 66 ...
İllerin mutluluk düzeyinin histogramını çiziniz ve özet istatistikleri ile birlikte yorumlayınız. İlleri mutluluk düzeyine göre büyükten küçüğe doğru sıralayan bir grafik çiziniz. En mutlu ve en mutsuz iller hangileridir?
summary(veriler$mutluluk)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 41.98 56.54 60.39 61.15 65.57 77.66
veriler %>% ggplot(mapping = aes(x = mutluluk)) +
geom_histogram(bins = 6, color = "darkblue", fill = "lightblue")
Hedef değişken mutluluk için bir LASSO regresyon modeli
tahmin ediniz. Ayarlanma parametresi lambda’ya 5-katlı çapraz geçerleme
ile belirleyiniz. Hangi değişkenler seçildi?
ggplot(veriler, aes(x = mutluluk, y = fct_reorder(il, mutluluk))) +
geom_point() +
theme(axis.text.y = element_text(size = 5)) +
labs(title = "Mutluluk sıralaması (2015)",
subtitle = "Kaynak: TÜİK") +
xlab("Mutluluk düzeyi") +
ylab("")
summary(veriler$mutluluk)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 41.98 56.54 60.39 61.15 65.57 77.66