R ile Makine Öğrenmesi Uygulamaları: Doğrusal Regresyon
Rolls Royce Büyük Veriyi Nasıl Kullanıyor?
Rolls Royce, 500 havayolu ve 150’den fazla askeri kuvvet tarafından kullanılan çok büyük motorlar imal eden çok bir şirket. Bu motorlar muazzam büyüklükte güç üretiyorlar ve böyle büyük rakamlarla iş gören bir şirketin Büyük Veri’yi bağrına basması hiç şaşırtıcı değil.
Bu sektör, arızaların ve hataların milyarlara ve insan hayatına mal olabildiği, son derece ileri teknolojilerin kullanıldığı bir sektördür. Dolayısıyla şirketin, ürünlerinin sağlık durumunu takip etmesi ve potansiyel sorunları daha gerçekleşmeden saptaması çok önemlidir.
Şirketin baş bilim sorumlusu Paul Stein şöyle açıklıyor: ” Tasarım sürecinde kullanılan yüksek güçlü bilgisayar gruplarımız var. Jet motorlarımızın simülasyonu için onlarca terabayt veri üretiyoruz. Ardından oldukça gelişkin bilgisayar teknikleri kullanarak bu büyük veri setini inceliyor ve tasarladığımız o ürünün iyi mi yoksa kötü mü olduğunu görselleştirebiliyoruz. Büyük Veri’nin görselleştirilmesi, en az onu incelemek için kullandığımız teknikler kadar önemli.”
Doğrusal Regresyon
Günlük hayat içerisinde beynimiz, çeşitli karar verme süreçlerinde, geçmiş tecrübelerinden faydalanarak karmaşık problemleri çözüp kararlar verebilmektedir. Bu kararların niteliği, karşılaşılan problemden probleme değişiklik gösterse de, beynimiz elindeki seçenekleri, öğrendiğimiz gerçeklik süzgecinden geçirip karar vermektedir . Burada anahtar kelime “öğrenme” kelimesidir.
İnsanlar ve makinelerin ortak özelliklerinden bir tanesi öğrenme sürecini verilerden faydalanarak gerçekleştirmesidir. Hayatımızda bir konu ile ilgili ne kadar fazla ve çeşitli kararlar vermişsek bu konu ile ilgili tecrübemiz, karar verme hızımız, kurduğumuz modelin doğruluğuna olan inancımız da aynı oranda artacaktır. Gelişen teknoloji ile birlikte makineler hem daha çok veri barındırabiliyor hem de öğrendikleri kaynaklar çeşitlenebiliyor; yazılı, sayısal, görsel veya işitsel kaynaklar gibi. Bu makineler bizim analiz edemeyeceğimiz kadar büyük ve karmaşık haldeki veriyi analiz edebiliyor, gözle göremeyeceğimiz ayrıntılara ulaşabiliyor, optimizasyon süreçlerinde baş rolü oynayabiliyor.
Doğrusal Regresyon ise insan düşünce yapısını makinelere öğretme aşamasında en somut örnekleri barındırıyor. Bir evin satış fiyatını etkileyen faktörleri düşündüğümüzde o evin konumu, genişliği, oda sayısı gibi değişkenleri ekleyip o evin fiyatı hakkında aşağı yukarı bir tahminleme yapabiliyoruz. Çünkü beynimiz bu değişkenler arasındaki doğrusal ilişkiyi kurabiliyor ve hayal gücümüzde canlandırabiliyor.
Bu yazıda, en temelinde bizim düşünce yapımızı taklit edebilen ve bizim için düşünebilen bilgisayarlara nasıl öğreteceğimizden, Makine Öğrenmesinden bahsedeceğiz. Ve bu öğrenmenin mantığını en iyi anlatacak olan, doğrusal regresyondan.
Uygulamanın İçeriği
- Veri Ön İşleme
- Eksik ve Aykırı Gözlem Tespiti
- Keşifçi Veri Analizi
- Doğrusal Regresyon Modeli
- Varsayımların Kontrol Edilmesi
- Stepwise Yöntemler
- Tahmin
- Veriyi Test ve Train Olarak Ayırma
- Cross Validation Yöntemi
Kullanılan Paketler
library(caret) library(tidyverse) library(AppliedPredictiveModeling) library(pls) library(elasticnet) library(broom) library(glmnet) library(MASS) library(ISLR) library(PerformanceAnalytics) library(funModeling) library(Matrix) library(readxl) library(olsrr)
Çalışmanın Amacı
Bir bina inşaatı için kullanılan harcın sağlamlığı üzerinde etkili olduğu düşünülen bağımsız değişkenler ile bir regresyon modeli kurmak, kurulan modelin ve değişkenlerin anlamlılıklarını test etmek, en iyi modeli bulmak, kurulan modelin tahmin performansını ölçmek.
1. Veri Ön İşleme
# Verinin yer aldığı director bölümünü seçmeyi unutmayın df <- read_xlsx("C:/Users/Asus/Desktop/R ile ML Uygulamaları/Doğrusal Regresyon/data.xlsx") head(df) # Veride bazı değişkenler karakter verisi olarak kaydedildiği için numeric olarak değiştirdim saglamlik <- as.numeric(df$Saglamlık) cimento <- as.numeric(df$Cimento) mucur <- as.numeric(df$Mucur) kul<- as.numeric(df$Kül) kaba_agr<- as.numeric(df$Kaba Agr) ince_agr<- as.numeric(df$İnce Agr) veri <- data.frame( saglamlik, cimento, mucur, kul, kaba_agr, ince_agr )
2. Eksik ve Aykırı Gözlem Tespiti
# EKSİK VERİLERİN TESPİT EDİLMESİ sum(is.na(veri))
Veri kullanılabilir hale getirildikten sonra “veri” değişkenine atandı ve eksik verilerin olmadığı belirlendi. Şimdi sıra aykırı gözlem tespitinde.
# BAĞIMLI DEĞİŞKEN İÇİN AYKIRI GÖZLEM TESPİTİ summary(saglamlik)
Doğrusal regresyonun varsayımlarını ilerde kontrol edeceğiz ama ön bilgi olarak bilmemiz gereken analize başlamadan önce bağımlı değişkenin normal dağılıp dağılmadığını kontrol etmek. Normal dağılımın en bilindik özelliklerinden bir tanesi, bu dağılımın simetrik olmasıdır. Dolayısıyla Mean, Mode, Median istatistikleri birbirine yakın değerler almaktadır. summary() fonksiyonu ile değişkenin özet istatistiğini çıkardığımızda ortalama ile medyan değerlerinin çok farklı olduğunu görüyoruz. Yani sapan değerler olabileceği kanısına varıyoruz.
hist(x = veri$saglamlik,freq = T) veri <- veri[-which(saglamlik>60),]
Değişkenin histogramını çizdirdiğimizde median değerinin sağ tarafında bir kaç tane sapan değer olduğu belirleniyor. Sağlamlık değişkenini incelediğimizde 60’değerinin üzerindeki değerlerin sapan değer oldukları belirleniyor ve bu değerler çıkarılıyor.
3. Keşifçi Veri Analizi
## Veri setinin genel yapısı hakkında bilgiler için glimpse() fonksiyonu glimpse(veri) ## Verideki sürekli değişkenlerin özet istatistikleri için profiling_num() profiling_num(veri) ## Değişkenler arasındaki kolerasyonu incelemek için aşağıdaki fonksiyon kullanılır. chart.Correlation(veri)
Doğrusal regresyon değişkenler arasındaki doğrusal ilişkiyi ölçer demiştik. Korelasyon istatistiği de aynı şekilde bu değişkenler arasındaki doğrusal ilişkiyi incelediğinden bu önemli bir istatistiktir.
Kolerasyon + yönde olduğunda değişkenler arasında pozitif yönlü bir ilişki vardır, yani bir değişken içerisindeki değer artış gösterdiğinde diğer değişken değeri de belirli bir oranda artmaktadır. Bu değerin 0 değerine yaklaşması ise bu değişkenler arasında herhangi bir doğrusal ilişki yoktur yorumu yapılabilir.
“Şirketin üretim sistemleri, gittikçe daha fazla ağ bağlantılı hale geliyor ve ‘Nesnelerin Interneti(IoT)’ adı verilen ağ tabanlı endüstri ortamında birbirleriyle iletişim kurabiliyor. İnovasyon sadece son derece gelişkin ve akıllı sistemler olan metal işleme süreçlerinde değil, otomatik ölçüm düzenlerimizde ve fabrikalarda ürettiğimiz bileşenlerin kalite kontrolünü denetleme şeklimizde de gerçekleşiyor.”
Paul Stein
4. Doğrusal Regresyon Modeli
model <- lm(veri$saglamlik~ veri$cimento+ veri$mucur+ veri$kul+ veri$kaba_agr+ veri$ince_agr) summary(model)
Tüm değişkenleri içeren bir model kurduk ve özet istatistiklerini çıkartır.
Bu bölümde modele eklenene değişkenlerin model için ne kadar anlamlı olduklarını inceleyebiliyoruz. Hata oranını 0.05 olarak aldığımızda Çimento, Mucur ve Kül değişkenlerinin anlamlı olduklarını görebiliyoruz. Yani bu değişkenleri modelden çıkarmak, modelin açıklayıcılığını azaltabilir yorumunu yapıyoruz.
Bu katsayıların anlamlılıklarını hem T test istatistiğini kullanarak, hem de güven aralıklarını hesaplayarak test edebiliriz.
confint(model)
confint() fonksiyonu yardımı ile modele eklenen değişkenlerin anlamlılıklarını incelemek mümkün. Bu fonksiyon bir sayı aralığı döndürür ve bu aralığın 0 değerini içermemesi beklenir. Eğer 0 değerini içeriyorsa değişken o güven düzeyinde anlamsızdır yorumu yapılabilir.
5. Varsayımların Kontrol Edilmesi
# par() fonksiyonu ile çıktı ekranını 2x2'lik 4 parçaya ayırıyoruz par(mfrow=c(2,2)) # plot model ile modelin çıktısını elde ediyoruz plot(model)
- 1. Grafik için; Varyans homojenliği var mı yok mu diye bakıyoruz. Noktaların 0 etrafında rasgele dağılması istenir – gözlem sayısının az olması sebebi ile grafikler subjektiftir, yapılan yorumlar yanlıdır.
- 2. Grafik için; Artıkların normal dağılıp dağılmadığını belirtir. Bir doğru üzerinde olması istenir. Görsel olarak normal dağılıyor denilebilir ama test yapılması gerekmektedir.
- 3. Grafik için; Standartlaştırılmış artık değerler için ve fitted valuelar için inceliyoruz. 1. grafikle benzer yapıdalar.
- 4. Grafik için; Standardizied residuals kısmı uç değerlerin veya aykırı gözlem etrafında olup olmadığını gösterir. Standardized gözlemlerin +3 ve -3 değerleri arasında olup olmadığı incelenir.
- 4. Grafik için; Leverage ile etkin gözlem olup olmadığına bakıyoruz.- Leverege için kriter 2*p/n. Hesaplanan değer bu kriteri geçiyor ise etkin gözlemdir. Yani modelin başarısını doğrudan etkiler yorumu yapılabilir.
Bağımlı Değişkenin yayılımını incelemek, gözlemlerin arasındaki rassallığı görselleştirmek ve bu değişken hakkında genel bilgilere sahip olmak için;
Bu bölümde sadece 2. grafik için; gözlemler arasında herhangi bir örüntünün olmaması, birbirini takip eden gözlem birimlerinin olmaması istenir. Rassallık, yapılan her analiz için çok önemlidir. Eğer rassallık olmaz ise yapılan analizler yanlı olacaktır.
Normallik testi;
ols_test_normality(saglamlik)
H0 : Bağımlı değişkenin dağılımı normaldir.
H1 : Bağımlı değişkenin dağılımı normal değildir.
Bu bölümde çeşitli normallik testlerine göre bağımlı değişkenin dağılımının normal olup olmadığını inceliyoruz. p değerlerinin 0’a çok yakın olması demek, H0:Değişkenin dağılımı normal değildir, hipotezini reddetmemiz anlamına gelmektedir. Sonuç olarak normallik varsayımı sağlanamamaktadır. Burada çeşitli normalizasyon işlemleri uygulanarak dağılımın normal dağılan bir yapı haline getirilmesi gerekmektedir. Bir sonraki yazımda normalizasyon ile ilgili bir bölüm eklenecektir, buradan o yazıya ulaşabileceksiniz. Şimdi bu varsayımın sağlandığı varsayımı altında çalışmamıza devam ediyoruz 🙂
Varyans homojenliği testi;
Yukarıda belirttiğim gibi varyansın homojen olması, gözlemlerin belirli bir örüntü oluşturmaması gerekiyor. Bunu istatistiksel olarak kontrol etmek için;
ols_test_breusch_pagan(model)
Burada kurulan hipotezi de görmekteyiz. P değerinin 0.05 değerinden küçük olması sebebiyle H0 hipotezini reddediyoruz ve varyans sabit değildir yani değişkendir yorumunu yapıyoruz.
Çoklu doğrusal bağıntı problemi için;
ols_coll_diag(model)
Çoklu doğrusal bağıntı problemi, bir modelde birbirini açıklayan değişkenlerin olduğu durumda görülmektedir. Bu problem 1000, 2000 tane bağımsız değişkenin oluşturduğu bir model için kaçınılmazdır. Biz de büyük veriler ile uğraştığımız için bu problemle karşılaşıyoruz. Bu fonksiyonun çıktısı olduğu için buraya eklemiyorum.
Bu fonksiyon Tolerans ve VIF adında 2 adet istatistik dönderiyor.
Tolerans = 1-p(x,y)^2 (1 – Değişkenler arasındaki kolerasyonun karesi)
VIF = 1/Tolerans
Eğer VIF değeri 10 değerinden küçük ise o değişkenler arasında çoklu doğrusal bağıntı problemi yoktur yorumu yapılır.
“Rolls Royce, özel depolama yaklaşımına sahip güçlü ve güvenli bir özel bulut aracı kullanıyor. Bu sistem, işlem verimliliğini optimize ederken, çevrim dışı inceleme için de bir veri havuzu sağlıyor. İleride, IoT’den elde edinilen veriler dahil olmak üzere daha fazla veri kaynağı birleştirildiğinde, bulut depolama daha da fazla kullanılacak ve şirket müşterileri için yeni hizmetler yaratılacak”
6. Stepwise Yöntemler
Stepwise yöntemler bir istatistik modeli için vazgeçilmezdir. Çünkü bir modele hangi değişkenin ne kadar katkı sağladığını, olası tüm değişken kombinasyonlarını inceleyerek görebilirsiniz. İleriye doğru seçme, geriye doğru eleme ve çift yönlü seçme olarak 3 şekilde bu yöntemleri kullanabilirsiniz.
model <- lm(saglamlik~.,data = veri) a <- ols_step_all_possible(model) a data.frame(a$predictors,a$adjr)
Şekilde görüldüğü gibi kül değişkeninden başlayarak olası kombinasyonları ve bu kombinasyonalara ait düzeltilmiş Düzeltilmiş RKare değerlerini görebilirsiniz. Sığmadığı için 21 tanesini gösterebildim fakat toplamda 31 tane kombinasyon var ve tüm değişkenler modele eklendiğinde Düzeltilmiş RKare değeri 0.7737 oluyor.
Düzeltilmiş RKare kullanmamızın sebebi RKare değerinin eklenen değişkenlere karşı artan bir yapıda olmasıdır. Yani değişken eklendiğinde modele çok çok az bir katkısı olsa dahi RKare değeri artmaktadır.
Bu sebeple daha hassas ölçümü olan Düzeltilmiş RKare değerini kullanıyoruz.
İleri Doğru Seçme
ols_step_forward_aic(model)
Bu işlem ile modele en çok katkısı olan değişken ilk girer, sonra diğerleri kümülatif olarak eklenerek devam eder.
Algoritma sizin kullanabileceğiniz olası kombinasyonu belirler ve RKare sonucunu gösterir. Burada Kül, Çimento ve Mucur değişkenlerini modele eklersek Adj.RKare değerinin 0.77690 olacağını görmekteyiz.
Geriye Doğru Eleme
ols_step_backward_aic(model)
Burada ise ilk önce tüm değişkenlerin olduğu full modelden başlayarak modele katkısı en düşük olan değişkenler modelden çıkarılır. Sonrasında kalan değişkenler ile model kurulur.
İlk önce kaba kum, sonra ince kum modelden çıkarılırsa modelin Adj.RKare değeri 0.77690. Bu değişkenler çıkarıldıktan sonra modelde kalan değişkenler Kül, Çimento ve Mucur değişkenleri olur yani yukarıda yaptığımız ileriye doğru seçme işleminde döndürülen RKare ile aynı sonucu elde ederiz. Sonuç olarak bu yöntemler birbirini tamamlayan bir yapıdadır yorumu yapılabilir.
Çift Yönlü Seçme
Hem ileriye doğru seçme, hem de geriye doğru eleme işlemleri birlikte uygulanır.
Yine Kül, Çimento ve Mucur değişkenleri modelde kalmış ve yine Adj.RKare deperinin 0.77690 olduğu gözlemlenmiştir.
Yeni Modelin Kurulması
Stepwise yöntemlerde sadece anlamlı değişkenlerle bir işlem yapılması gerekiyordu fakat konunun tam olarak anlatılması için tüm değişkenleri kullandık. Mucur değişkeni ilk modeli kurduğumuzda anlamsız olduğu için şimdi bu değişken olmadan sadece Kül ve Çimento değişkenleri ile bir model kuruyoruz.
model1 <- lm(saglamlik~cimento+kul,data = veri) summary(model1)
Değişkenlerin anlamlılıklarına baktığımızda model için gayet uygun değişkenler oldukları görünüyor. Adj.RKare değeri de 0.766 olarak verilmiş, bu da güzel bir sonuç. İdeal modelimizi bulduk artık tahmin işlemine geçebiliriz.
7. Tahmin
Artık elimizde 1 bağımlı değişken ve 2 bağımsız değişkenden oluşan bir model var. Bu modeldeki bağımsız değişkenler, bağımlı değişken olan sağlamlık değişkenindeki değişimin 0.776’sını açıklıyor. Tahmin için rastgele kül ve çimento değeri ekleyip, karılan harcın sağlamlık değerini tahmin edelim.
new_obs <- data.frame(cimento=340, kul=180) predict(model1, new_obs) [1] 48
Cimento değeri 340 birim ve kül değeri 180 birim olan bir harcın sağlamlık değeri 48 birimdir. Bu tahmini yapmak için predict() fonksiyonundan yararlanılır.
%95 güvenle tahmin yapmak istersek;
predict(model1, new_obs, interval = "confidence") fit lwr upr 1 48 46 50
%95 güvenle bu değerlere sahip bir harcın sağlamlık değerinin alt sınırı 46, üst sınırı 50 ve tahmin değeri 48’dir.
8. Train ve Test Veri Seti Olarak Ayırma
# Yeni model için kullanacağımız veri seti veri_yeni <- data.frame( saglamlik, cimento, kul ) set.seed(1234) train_indeks <- createDataPartition(veri_yeni$saglamlik, p = .8, list = FALSE, times = 1)
Veri setini %20’ye %80 olarak ayırmak istiyoruz. createDataPartition() fonksiyonu ile veriyi 20’ye 80’olacak şekilde indislere ayırıyoruz.
train <- veri_yeni[train_indeks,] test <- veri_yeni[-train_indeks,]
Test ve train datasına bi indisleri dağıtıyoruz ve iki ayrı veri setine sahip oluyoruz. Ancak bu yeterli olmuyor çünkü bağımlı ve bağımsız değişkenlerin de kullanım kolaylığı için ayrılması gerekiyor.
train_x <- train %>% dplyr::select(-saglamlik) train_y <- train$saglamlik test_x <- test %>% dplyr::select(-saglamlik) test_y <- test$saglamlik
Veriyi 4 parçaya böldükten sonra bir de training(eğitim) verisi oluşturuyoruz
training <- data.frame(train_x, Saglamlik = train_y)
Training(eğitim) verisi ile bir model kurma işlemi yapıyoruz
model2 <- lm(Saglamlik~kul+cimento, data = training)
Modeli eğittikten sonra test ve train hatası hesaplıyoruz
defaultSummary(data.frame(obs = training$Saglamlik, pred = model2$fitted.values)) defaultSummary(data.frame(obs = test_y, pred = predict(model2, test_x)))
Doğrusal Regresyon hata kareler ortalamasını en küçüklemeyi amaçlayan bir yöntemdir. Dolayısıyla model tahmin performanslarını karşılaştırırken RMSE(Root Means Squared Error), RKare, veya MAE(Mean Absolute Error) istatistikleri kullanılır. RMSE değerinden gidersek, test verisini tahmin için kullandığımızda hatanın arttığını görüyoruz.
9 – Cross Validation Yöntemi
Bu yöntem, bu problem için modelin overfitting yani gözlem değerlerini ezberlemesi durumunun önüne geçiyoruz. Modeli k adet parçaya ayırdıktan sonra o parça test seti olarak ayrılır ve diğer parçalar train seti olarak modeli eğitir. Bu işlem k kez devam eder ve bu işlemlerin ortalamasını alarak bir sonuç döndürür.
ctrl <- trainControl(method = "cv", number = 10) model_val <- train(x = train_x, y = train_y, method = "lm", trControl = ctrl) summary(model_val)
Cross Validation yöntemini kullan, veri setini 10 parçaya bölme methodunu uygula ve “ctrl” değişkenine aktar.
x_train setinden y_train’i öğren, bu öğrenme işlemi için Linear Model yapısını kullan ve ctrl kontrolü ile hareket et.
Yukarıda yaptığımız tahmin işlemlerinin aynısını model2 için değil de model_val modeli için değiştirip CV yönteminin ne kadar faydalı bir yöntem olduğunu test edebilirsiniz.
Şansınız bol, Hata Kareler Ortalamanız düşük olsun 🙂
Shiny
Shiny videolar serimizin 8. videosu ile devam ediyoruz. Bu bölümde Iris veri setini kullanarak basit keşifçi veri analizi işlemleri yapılmıştır. R’da hazır halde bulunan verilerin veya .csv uzantılı olarak çekilen verinin içerisindeki değişkenleri seçme ve bu değişkenler ile işlemler yapma konuları hakkında bilgi sahibi olabilirsiniz.
Rolls Royce bir endüstri devi olarak, inovasyonun çelik ve terle geleceği şekillendirmek anlamına geldiği “eski çağ”dan, veri destekli gelişim ve verimlilik “yeni çağı”na geçişin önemli bir örneğini sunuyor. Stein’in söylediği gibi “Rolls Royce, pek çok başarılı sanayi firması gibi dijital açıdan gittikçe daha bilinçli hale gelmek zorunda. Rolls Royce’un dijitalleşmesi tartışmaya açık bir konu değil; soru bunun olup olmayacağı değil, ne kadar hızlı olacağı.
Kaynaklar
- Bernard Marr – Büyük Veri İş Başında
- https://shiny.rstudio.com/gallery/widget-gallery.html
- https://shiny.rstudio.com/tutorial/written-tutorial/
Merhaba Mustafa,
Çalışmanın verisini paylaşabilir misin ?
Mail adresinize gönderdim
Merhaba veriyi bana da gönderebilir misiniz?
Mail adresinize gönderdim
Mustafa Bey merhaba, veriyi bana da göndermenizi rica ederim.
Mail adresinize gönderdim
Veriyi almamız mümkün mü acaba ?
Mail adresinize gönderdim.
Merhaba Mustafa Bey,
veriyi benimle de paylaşabilir misiniz?
Teşekkürler
Mail adresinize gönderdim
İyi akşamlar, veriyi benimde almam mümkün olabilir mi ?
Mali adresinize gönderdim
Mustafa Bey merhaba R dili ile ilgili bir konuda size danışmak istiyordum rica etsem mail atabilirmisiniz
Mail attım.
Öncelikle emeğiniz için teşekkür ederim. Doğru analiz doğru hipotez kurma ili ilişkilidir. H0 hipotezi yokluk hipotezi olarak isimlendirilir. Boş hipotez, sıfır hipotezi v.b. isimleri de mevcuttur. Yazınızda “Bu bölümde çeşitli normallik testlerine göre bağımlı değişkenin dağılımının normal olup olmadığını inceliyoruz. p değerlerinin 0’a çok yakın olması demek, H0: Değişkenin dağılımı normal değildir, hipotezini reddetmemiz anlamına gelmektedir. Yani bu bağımlı değişken ile bir doğrusal regresyon modeli kurulabilir.” şeklinde bir ifade yer almaktadır. H0 hipotezi yokluk hipotezi olduğu için şöyle kurulması gerekir “Verinin normal dağılımdan farkı yoktur”. ve p değeri 0,05’ten küçük ise verinin normal dağılmadığı anlamına gelmektedir. Dolayısıyla bu ifadenin düzeltilmesi gerekir ki hipotez kurulması süreci yanlış yürütülmesin. Bu da aslında lineer bir yapının olmadığı anlamına gelmektedir. Gömleğin düğmesi gibi başta yanlış ilikleyince tüm düğmeler yanlış ilikleniyor. İyi çalışmalar dilerim.
Selamlar, öncelikle gösterdiğiniz ilgi için teşekkür ederim. H0 hipotezi olarak belirttiğiniz, “Verinin normal dağılımdan farkı yoktur” ifadesi ile “değişkenin dağılımı normaldir” ifadesi aslında aynı hipotezi, “değişkenin dağılımının normal dağılımdan 0.05lik hata ile kabul edilebilir derecede uzaklaşıp uzaklaşmadığını” test etmektedir. Bu hipotezde yer alan H0’ı reddetmemiz “verinin normal dağılımdan farkı olduğunu” yani verinin “normal dağılmadığını” belirtmektedir. Burada kurduğumuz hipotezler mantıksal olarak çatışmamaktadır, kurmuş olduğum hipotezdeki amaç; okuyucuların daha anlaşılır ve akılda kalıcı bir şekilde konuyu anlayabilmelerini sağlamaktır.
Sizin de belirttiğiniz üzere, varsayımsal olarak, lineer regresyon için kullanacağımız bağımlı değişkenin normal dağılmış olması gerekir. Son bölümde yazmış olduğum “Yani bu bağımlı değişken ile bir doğrusal regresyon modeli kurulabilir.” ifadesini değiştirmem gerekiyor. Değişiklikler konusunda herhangi bir sorunuz, tavsiyeniz olur ise bekliyor olacağım.
Not: Bir ekleme yapmak isterseniz, hem benim gelişimim hem de daha doğru bir içerik için kaynak gösterebilirseniz çok sevinirim.
Merhaba veriyi bana da yollamanız mümkün mü?
Merhabalar, mail adresinize gönderdim.
Merhaba ben de veriyi rica edebilir miyim ? Teşekkürler
Selamlar, mail adresinize gönderdim iyi çalışmalar.
Merhaba, veriyi gönderme imkanınız olur mu acaba?
Selamlar, mail adresinize ilettim
Merhaba Mustafa Bey,
veriyi benimle de paylaşabilir misiniz?
Şimdiden teşekkürler
Merhabalar mail adresinize ilettim
Merhabalar,
Öncelikle paylaşımınız için çok teşekkürler. Emeğinize sağlık.Normallik varsayımı gerçekleşmediği için tüm bu işlemlerden önce verimi normalize mi etmeliyim ilk olarak?
Merhabalar, normallik varsayımı doğrusal regresyon için en önemli varsayımlardan bir tanesidir. Bunun sebebi, modelin En Küçük Kareler yöntemi ile tahmin edilmesine dayanmaktadır. İki türlü de model kurmak daha yararlı olacaktır. Veriyi ham halde modelleyip, çeşitli performans metrikleri hesapladıktan sonra bir de normalize edip aynı şekilde performans metrikleri hesaplayıp bu metrikleri karşılaştırarak modelin normallik varsayımına olan duyarlılığını ölçebilirsiniz. Hesaplanan iki metrik arasında fark yüksek ise doğrusal regresyon modeli, sizin veri setiniz için normallik konusunda duyarlı davranmaktadır yorumu yapılabilir.
Ek olarak,
– Normalize etme işleminden önce 3 değişken anlamlıyken normalize ettikten sonra 10 değişken anlamlı ise
– Normalize etme işleminden önce R2 değeri %80 iken normalize ettikten sonra %45’e düşüyor ise veri setini normalize etmek gerekir. Yani daha düşük performans tahminler yapan güvenilir bir model kurmak daha yararlı olacaktır.
Merhaba Mustafa Bey,
Bu guzel yazı için teşekkürler. Elinize sağlık. Beriyi benimle de paylaşabilir misiniz?
Şimdiden teşekkürler.
Teşekkürler Cihat bey, mail adresinize ilettim.
Merhaba veriyi benimle de paylaşabilir misiniz ?
Teşekkür ederim.
Merhabalar, mail adresinize gönderdim
Merhaba, veriyi benimle de paylaşır mısınız rica etsem
teşekkürler
Mail adresinize ilettim, iyi çalışmalar.
Merhaba,
Çok güzel bir çalışma yapmışsınız. Çok teşekkür ederiz.
Kullanmış olduğunuz veriyi paylaşmanız mümkün müdür.
Merhaba Mustafa Bey
Veriyi benimle de paylaşabilir misiniz
Teşekkürler
Selamlar, veriyi benimle de paylaşabilir misiniz ?
Teşekkür ederim.
Merhaba Mustafa bey,
Veriyi paylaşmanız mümkün mü acaba?
Merhaba Mustafa Bey,
R model’in Qlik Sense ile entegre edilerek modellemede kullanımı ile ilgileniyorum. Yazınızı çok beğendim. Elinize sağlık.
Aradan fazlaca bir zaman geçmiş olmasına rağmen daha detaylı incelemek için mümkün ise veri setini rica ediyorum.
Teşekkürler
Merhaba Mustafa bey,
Veriyi paylaşmanız mümkün mü acaba?
Merhaba Mustafa Bey,
Veriyi paylaşmanız mümkün mü acaba?
Merhaba;
R programı ile 5 yıllık öngörü modeli kurulması için 16 yıllık veri yeterli olur mu?
Teşekkürler emeğinize sağlık.
Veri setinini benimle paylaşabilir misiniz?
merhaba mustafa bey
Veri setinini benimle paylaşabilir misiniz?