# Gerekli kütüphanelerin yüklenmesi
library(readxl)
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)
# Excel dosyasından veri okuma
# Shapiro-Wilk test for normality for each column
for (column in names(Ttests)) {
s <- shapiro.test(Ttests[[column]])
p_value <- s$p.value
alpha <- 0.05 # Örnek için alfa değeri
normal_message <- ifelse(p_value > alpha, "Normal dağılıma uyar", "Normal dağılıma uymaz")
print(paste("Shapiro-Wilk Test for column", column))
print(s)
cat(normal_message, "\n\n")
}
## [1] "Shapiro-Wilk Test for column TedarikciA"
##
## Shapiro-Wilk normality test
##
## data: Ttests[[column]]
## W = 0.97143, p-value = 0.6194
##
## Normal dağılıma uyar
##
## [1] "Shapiro-Wilk Test for column TedarikciB"
##
## Shapiro-Wilk normality test
##
## data: Ttests[[column]]
## W = 0.97314, p-value = 0.6668
##
## Normal dağılıma uyar
# T-test Var.equal=TRUE for specific columns
ttest_result <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "two.sided", var.equal = TRUE)
# T-test sonuçlarını yazdırma
print("Independent Samples T-test Results:")
## [1] "Independent Samples T-test Results:"
print(ttest_result)
##
## Two Sample t-test
##
## data: Ttests$TedarikciA and Ttests$TedarikciB
## t = 5.387, df = 54, p-value = 1.604e-06
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 4.858719 10.619138
## sample estimates:
## mean of x mean of y
## 76.83607 69.09714
# Test istatistiklerini çıkar
test_statistic <- ttest_result$statistic
df <- ttest_result$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(1 - alpha/2, df)
lower_critical <- -critical_value
upper_critical <- critical_value
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=c(lower_critical, upper_critical), col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Values"), col=c("red", "green"), lty=1:2, cex=0.8)
# T-test sonuçlarını al
ttest_result_less <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "less", var.equal = TRUE)
print(ttest_result_less)
##
## Two Sample t-test
##
## data: Ttests$TedarikciA and Ttests$TedarikciB
## t = 5.387, df = 54, p-value = 1
## alternative hypothesis: true difference in means is less than 0
## 95 percent confidence interval:
## -Inf 10.14317
## sample estimates:
## mean of x mean of y
## 76.83607 69.09714
# Test istatistiklerini çıkar
test_statistic <- ttest_result_less$statistic
df <- ttest_result_less$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(1 - alpha, df)
lower_critical <- -Inf
upper_critical <- critical_value
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=upper_critical, col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Value"), col=c("red", "green"), lty=1:2, cex=0.8)
# T-test sonuçlarını al
ttest_result_right <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "greater", var.equal = TRUE)
print(ttest_result_right)
##
## Two Sample t-test
##
## data: Ttests$TedarikciA and Ttests$TedarikciB
## t = 5.387, df = 54, p-value = 8.022e-07
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 5.334685 Inf
## sample estimates:
## mean of x mean of y
## 76.83607 69.09714
# Test istatistiklerini çıkar
test_statistic <- ttest_result_right$statistic
df <- ttest_result_right$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(alpha, df)
lower_critical <- -critical_value
upper_critical <- Inf
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=lower_critical, col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Value"), col=c("red", "green"), lty=1:2, cex=0.8)
# T-test sonuçlarını al (var.equal = FALSE)
ttest_result_varunequal <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "two.sided", var.equal = FALSE)
head
## function (x, ...)
## UseMethod("head")
## <bytecode: 0x0000022034426cc0>
## <environment: namespace:utils>
# T-test sonuçlarını yazdırma
print("Independent Samples T-test Results (Var.equal = FALSE):")
## [1] "Independent Samples T-test Results (Var.equal = FALSE):"
print(ttest_result_varunequal)
##
## Welch Two Sample t-test
##
## data: Ttests$TedarikciA and Ttests$TedarikciB
## t = 5.387, df = 53.876, p-value = 1.613e-06
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 4.858567 10.619290
## sample estimates:
## mean of x mean of y
## 76.83607 69.09714
# Test istatistiklerini çıkar
test_statistic <- ttest_result_varunequal$statistic
df <- ttest_result_varunequal$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(1 - alpha/2, df)
lower_critical <- -critical_value
upper_critical <- critical_value
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=c(lower_critical, upper_critical), col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Values"), col=c("red", "green"), lty=1:2, cex=0.8)
# T-test sonuçlarını al (var.equal = FALSE)
ttest_result_less_varunequal <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "less", var.equal = FALSE)
# T-test sonuçlarını yazdırma
print("Left-tailed T-test Results (Var.equal = FALSE):")
## [1] "Left-tailed T-test Results (Var.equal = FALSE):"
print(ttest_result_less_varunequal)
##
## Welch Two Sample t-test
##
## data: Ttests$TedarikciA and Ttests$TedarikciB
## t = 5.387, df = 53.876, p-value = 1
## alternative hypothesis: true difference in means is less than 0
## 95 percent confidence interval:
## -Inf 10.14327
## sample estimates:
## mean of x mean of y
## 76.83607 69.09714
# Test istatistiklerini çıkar
test_statistic <- ttest_result_less_varunequal$statistic
df <- ttest_result_less_varunequal$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(1 - alpha, df)
lower_critical <- -Inf
upper_critical <- critical_value
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=upper_critical, col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Value"), col=c("red", "green"), lty=1:2, cex=0.8)
# T-test sonuçlarını al (var.equal = FALSE)
ttest_result_right_varunequal <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "greater", var.equal = FALSE)
# T-test sonuçlarını yazdırma
print("Right-tailed T-test Results (Var.equal = FALSE):")
## [1] "Right-tailed T-test Results (Var.equal = FALSE):"
print(ttest_result_right_varunequal)
##
## Welch Two Sample t-test
##
## data: Ttests$TedarikciA and Ttests$TedarikciB
## t = 5.387, df = 53.876, p-value = 8.066e-07
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 5.334588 Inf
## sample estimates:
## mean of x mean of y
## 76.83607 69.09714
# Test istatistiklerini çıkar
test_statistic <- ttest_result_right_varunequal$statistic
df <- ttest_result_right_varunequal$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(alpha, df)
lower_critical <- -critical_value
upper_critical <- Inf
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=lower_critical, col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Value"), col=c("red", "green"), lty=1:2, cex=0.8)
# Gerekli kütüphaneleri yükleme
library(readxl)
library(stats)
# Veriyi okuma
mannveri <- as.data.frame(mannveri)
# Grupları ve değerleri kontrol etme
print(head(mannveri))
## Gruplar Degerler
## 1 TedarikciA 69.45
## 2 TedarikciA 44.43
## 3 TedarikciA 1.75
## 4 TedarikciA 16.70
## 5 TedarikciA 81.56
## 6 TedarikciA 11.87
print(table(mannveri$Gruplar))
##
## TedarikciA TedarikciB
## 28 28
# Normallik testi ve sonuçların yazdırılması
normallik_testleri <- tapply(mannveri$Degerler, mannveri$Gruplar, shapiro.test)
normallik_sonuclari <- sapply(normallik_testleri, function(x) x$p.value)
print(normallik_sonuclari)
## TedarikciA TedarikciB
## 0.005266793 0.183812773
# Hangi grupların normal dağılıma uymadığını yazdırma
for (i in seq_along(normallik_sonuclari)) {
if (normallik_sonuclari[i] > 0.05) {
cat(names(normallik_sonuclari)[i], "grubu normal dağılıma uyar.\n")
} else {
cat(names(normallik_sonuclari)[i], "grubu normal dağılıma uymaz.\n")
}
}
## TedarikciA grubu normal dağılıma uymaz.
## TedarikciB grubu normal dağılıma uyar.
# Gruplara ayırma
Grup1 <- mannveri$Degerler[mannveri$Gruplar == "TedarikciA"]
Grup2 <- mannveri$Degerler[mannveri$Gruplar == "TedarikciB"]
# Mann-Whitney U testi
mwu_testi <- wilcox.test(Grup1, Grup2)
# Test sonucunu görüntüleme
print(mwu_testi)
##
## Wilcoxon rank sum exact test
##
## data: Grup1 and Grup2
## W = 504, p-value = 0.06742
## alternative hypothesis: true location shift is not equal to 0
# Gerekli kütüphaneleri yükle
library(ggplot2)
library(dplyr)
# Excel dosyasından veri okuma
# Bağımlı iki örneklem t-testi (paired=TRUE, alternative="two.sided")
ttest_result_twosided <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "two.sided", paired=TRUE)
# Test istatistiklerini çıkar
test_statistic <- ttest_result_twosided$statistic
df <- ttest_result_twosided$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(1 - alpha/2, df)
lower_critical <- -critical_value
upper_critical <- critical_value
# Plot oluşturma
plot(seq(-5, 5, length=100), dt(seq(-5, 5, length=100), df), type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=c(lower_critical, upper_critical), col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Values"), col=c("red", "green"), lty=1:2, cex=0.8)
title(main = "Paired Samples T-test (Two-Sided)")
# Bağımlı iki örneklem t-testi (paired=TRUE, alternative="less")
ttest_result_less <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "less", paired=TRUE)
# Test istatistiklerini çıkar
test_statistic <- ttest_result_less$statistic
df <- ttest_result_less$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(alpha, df)
lower_critical <- -critical_value
upper_critical <- Inf
# Plot oluşturma
x_values <- seq(-5, 5, length=100)
y_values <- dt(x_values, df)
plot(x_values, y_values, type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=lower_critical, col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Value"), col=c("red", "green"), lty=1:2, cex=0.8)
title(main = "Paired Samples T-test (Less)")
# Bağımlı iki örneklem t-testi (paired=TRUE, alternative="greater")
ttest_result_greater <- t.test(Ttests$TedarikciA, Ttests$TedarikciB, alternative = "greater", paired=TRUE)
# Test istatistiklerini çıkar
test_statistic <- ttest_result_greater$statistic
df <- ttest_result_greater$parameter
alpha <- 0.05 # Örnek için alfa değeri
# Red ve kabul bölgelerini hesapla
critical_value <- qt(1 - alpha, df)
lower_critical <- -Inf
upper_critical <- critical_value
# Plot oluşturma
x_values <- seq(-5, 5, length=100)
y_values <- dt(x_values, df)
plot(x_values, y_values, type="l", col="blue", lwd=2, ylab="Density", xlab="t-value")
abline(v=test_statistic, col="red", lwd=2)
abline(v=upper_critical, col="green", lty=2, lwd=2)
legend("topright", legend=c("T-Value", "Critical Value"), col=c("red", "green"), lty=1:2, cex=0.8)
title(main = "Paired Samples T-test (Greater)")
# kutuphaneleri cagiralim
library(readxl)
library(dplyr)
names(veri_wilcoxon)
## [1] "TeknolojiA" "TeknolojiB"
# Oncelikle verimizin normal dagilim olup olmadigini kontrol edelim
library(dplyr)
shapiro_sonuc=apply(veri_wilcoxon,2,shapiro.test) # veriye, 2: sutunlar boyunca, shapiro.tes uygula
for (val in c(names(veri_wilcoxon))) {
p_deger=shapiro_sonuc[[val]]$p.value
if (p_deger>0.05) {
print(paste("normal dagilima uygundur:", val))
} else {
print(paste("H0 reddedilir- Normal dagilima uygun degildir:",val))
}
}
## [1] "H0 reddedilir- Normal dagilima uygun degildir: TeknolojiA"
## [1] "normal dagilima uygundur: TeknolojiB"
#### T-Test varsayimlar Tamamlanamadi. Teknoloji A normal dagilim degil
# wilcoxon test
wilcoxon_sonuc <- wilcox.test(veri_wilcoxon$TeknolojiA, veri_wilcoxon$TeknolojiB, paired = TRUE, exact=FALSE, alternative = "two.sided")
wilcoxon_sonuc
##
## Wilcoxon signed rank test with continuity correction
##
## data: veri_wilcoxon$TeknolojiA and veri_wilcoxon$TeknolojiB
## V = 315, p-value = 0.01112
## alternative hypothesis: true location shift is not equal to 0
## gorsellestirelim mi?
library(ggplot2)
library(reshape2)
veri_gorsel = melt(veri_wilcoxon)
## No id variables; using all as measure variables
names(veri_gorsel)[1]<- "Teknoloji"
names(veri_gorsel)[2]<- "musteri_memnuniyet"
# ggplot ile kutu grafigi
ggplot(veri_gorsel, aes(x=Teknoloji, y=musteri_memnuniyet,fill=Teknoloji)) +
geom_boxplot(alpha=0.8) +
theme(legend.position="none") +
scale_fill_brewer(palette="BuPu")
library(stats)
library(car)
## Zorunlu paket yükleniyor: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
tapply(X=Anova_veri$Degerler,INDEX=Anova_veri$Gruplar,FUN=shapiro.test)
## $BolgeA
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97136, p-value = 0.6175
##
##
## $BolgeB
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97318, p-value = 0.6679
##
##
## $BolgeC
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97906, p-value = 0.8274
# Normallik testi
normallik_testleri <- tapply(Anova_veri$Degerler, Anova_veri$Gruplar, shapiro.test)
normallik_sonuclari <- sapply(normallik_testleri, function(x) x$p.value)
print(normallik_sonuclari)
## BolgeA BolgeB BolgeC
## 0.6175043 0.6679435 0.8274008
# Normallik testi sonuçlarına göre
normallik_var <- all(normallik_sonuclari > 0.05)
cat("Normallik Testi:", ifelse(normallik_var, "Veriler normal dağılıyor.", "Veriler normal dağılmıyor."), "\n")
## Normallik Testi: Veriler normal dağılıyor.
# Varyans eşitliği testi (Levene's Test)
levene_testi <- leveneTest(Degerler ~ Gruplar, data = Anova_veri)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
print(levene_testi)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 2 1.0255 0.3632
## 81
# Varyans eşitliği testi sonucuna göre
varyans_esitligi_var <- levene_testi$`Pr(>F)`[1] > 0.05
cat("Varyans Eşitliği Testi:", ifelse(varyans_esitligi_var, "Varyanslar eşit.", "Varyanslar eşit değil."), "\n")
## Varyans Eşitliği Testi: Varyanslar eşit.
if (normallik_var && varyans_esitligi_var) {
# Normallik ve varyans eşitliği sağlanıyorsa klasik ANOVA
anova_sonucu <- oneway.test(Degerler ~ Gruplar, data = Anova_veri, var.equal = TRUE)
cat("Klasik ANOVA Sonuçları:\n")
} else {
# Normallik ve/veya varyans eşitliği sağlanmıyorsa Welch ANOVA
anova_sonucu <- oneway.test(Degerler ~ Gruplar, data = Anova_veri, var.equal = FALSE)
cat("Welch ANOVA Sonuçları:\n")
}
## Klasik ANOVA Sonuçları:
print(anova_sonucu)
##
## One-way analysis of means
##
## data: Degerler and Gruplar
## F = 12.861, num df = 2, denom df = 81, p-value = 1.411e-05
names(veri)
## [1] "YöntemX" "YöntemY" "YöntemZ"
names(veri)[1]="YontemX"
names(veri)[2]="YontemY"
names(veri)[3]="YontemZ"
# Oncelikle verimizin normal dagilim olup olmadigini kontrol edelim
library(dplyr)
print("Shapiro testi H0: populasyon normal dagilimdir.")
## [1] "Shapiro testi H0: populasyon normal dagilimdir."
shapiro_sonuc=apply(veri,2,shapiro.test) # veriye, 2: sutunlar boyunca, shapiro.tes uygula
for (val in c("YontemX","YontemY","YontemZ")) {
p_deger=shapiro_sonuc[[val]]$p.value
if (p_deger>0.05) {
print(paste("normal dagilima uygundur:", val))
} else {
print(paste("H0 reddedilir-Normal dagilim degildir:",val))
}
}
## [1] "H0 reddedilir-Normal dagilim degildir: YontemX"
## [1] "normal dagilima uygundur: YontemY"
## [1] "normal dagilima uygundur: YontemZ"
# YontemX normal dagilim degil.O yuzden parametrik test uygulayamam.
library(reshape2)
yeni_veri_kruskal = melt(veri)
## No id variables; using all as measure variables
names(yeni_veri_kruskal)[1]<- "Yontem"
names(yeni_veri_kruskal)[2]<- "satis_miktari"
### H0: Uretim yontemlerinin verimlilik uzerine
### etkilerinde istatistiksel olarak anlamli bir fark yoktur.
# Kruskal-Wallis bakalim
kruskal_sonuc <- kruskal.test(satis_miktari~ Yontem,data=yeni_veri_kruskal)
kruskal_sonuc
##
## Kruskal-Wallis rank sum test
##
## data: satis_miktari by Yontem
## Kruskal-Wallis chi-squared = 8.9983, df = 2, p-value = 0.01112
#install.packages('stats')
library(stats)
library(readxl)
head(veri_kikare)
## # A tibble: 6 × 2
## `Müşteri Geri Dönüşleri` Kampanya
## <chr> <chr>
## 1 nötr Kampanya 1
## 2 nötr Kampanya 1
## 3 nötr Kampanya 1
## 4 nötr Kampanya 1
## 5 olumlu Kampanya 1
## 6 nötr Kampanya 1
names(veri_kikare)
## [1] "Müşteri Geri Dönüşleri" "Kampanya"
# okumada problem yasadigi icin ozniteligin ismini degistirelim
names(veri_kikare)[1]<-"Musteri_donus"
names(veri_kikare)[2]<-"Kampanya"
View(veri_kikare)
# veri_kikare verisinin musteri_donus ve Kampanya sutununun sinifini ogrenelim
class(veri_kikare$Musteri_donus)
## [1] "character"
class(veri_kikare$Kampanya)
## [1] "character"
### Biraz gorsellikle mantikli mi, test edelim?
library(ggplot2)
ggplot(veri_kikare, aes(x = Kampanya, y = Musteri_donus)) +
geom_boxplot()
#### Veriyi kikare analizi icin hazir edecegiz. Contingency tablosunu hazirlayalim
tablo= table(veri_kikare)
tablo
## Kampanya
## Musteri_donus Kampanya 1 Kampanya 2 Kampanya 3
## nötr 12 17 9
## olumlu 9 8 10
## olumsuz 7 3 9
## barplot eklenecek/eklendi
library(ggplot2)
ggplot(veri_kikare, aes(x = Kampanya, fill = Musteri_donus)) +
geom_bar(position = "dodge")
## H0: uc farkli reklam kampanyasinin musteri geri donuleri uzerindeki etkisi
## arasinda istatistiksel olarak anlamli bir fark yoktur
# kikare-test bakalim
kikare_test_sonuc <- chisq.test(tablo)
# kikare-test sonuclarini yazdiralim
print(kikare_test_sonuc)
##
## Pearson's Chi-squared test
##
## data: tablo
## X-squared = 5.7485, df = 4, p-value = 0.2187
library(readxl)
## oncelikle hep yaptigimiz gibi sutun isimleri kontrol edecegiz
names(veri_korr) #tabiiki yine sorun oldu
## [1] "Pazarlama Bütçesi (bin dolar)" "Üretim Hacmi (bin birim)"
names(veri_korr)[1]<-"Butce"
names(veri_korr)[2]<-"Hacim"
## hangi korelasyon metodunu kullanacagiz belirlemek icin
## verinin normal dagilip dagilmadigini kontrol edelim
library(dplyr)
print("Shapiro testi H0: populasyon normal dagilimdir.")
## [1] "Shapiro testi H0: populasyon normal dagilimdir."
shapiro_sonuc=apply(veri_korr,2,shapiro.test) # veriye, 2: sutunlar boyunca, shapiro.tes uygula
for (val in c(names(veri_korr))) {
p_deger=shapiro_sonuc[[val]]$p.value
if (p_deger>0.05) {
print(paste("normal dagilima uygundur:", val))
} else {
print(paste("H0 reddedilir-Normal dagilim degildir:",val))
}
}
## [1] "normal dagilima uygundur: Butce"
## [1] "normal dagilima uygundur: Hacim"
# Korelasyonlari bulalim
round(cor(veri_korr),digits = 2)
## Butce Hacim
## Butce 1.00 0.43
## Hacim 0.43 1.00
# cor(veri_korr,method = "spearman") #parametrik olmayanlar icin
# Pearson korelasyon testi
test <- cor.test(veri_korr$Butce, veri_korr$Hacim)
test
##
## Pearson's product-moment correlation
##
## data: veri_korr$Butce and veri_korr$Hacim
## t = 4.4149, df = 88, p-value = 2.86e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.2398914 0.5816278
## sample estimates:
## cor
## 0.4258276
## Gorsellestirme yapalim:
## 1) birbirlerine gore nokta-grafigi bakalim
plot(veri_korr$Butce~veri_korr$Hacim)
abline(lm(veri_korr$Butce~veri_korr$Hacim),col = "red") #ekstra y=x cizgisi ekler
## 2) Korelasyon grafigini de alalim
# improved correlation matrix
#install.packages("corrplot")
library(corrplot)
## corrplot 0.92 loaded
corrplot(cor(veri_korr),
method = "number",
type = "upper" # sadece yukariyi goster
)
library(readxl)
library(dplyr)
library(corrplot)
head(veri_korr)
## # A tibble: 6 × 2
## Butce Hacim
## <dbl> <dbl>
## 1 67.6 319.
## 2 54 357.
## 3 59.8 328.
## 4 72.4 384.
## 5 68.7 352.
## 6 40.2 309.
# Sütun isimlerini düzeltme
names(veri_korr)[1] <- "Butce"
names(veri_korr)[2] <- "Hacim"
# Normal dağılım testi (Shapiro-Wilk)
shapiro_sonuc <- lapply(veri_korr, shapiro.test)
for (val in names(veri_korr)) {
p_deger <- shapiro_sonuc[[val]]$p.value
if (p_deger > 0.05) {
print(paste("Normal dağılıma uygundur:", val))
} else {
print(paste("H0 reddedilir - Normal dağılım değildir:", val))
}
}
## [1] "Normal dağılıma uygundur: Butce"
## [1] "Normal dağılıma uygundur: Hacim"
# Pearson Korelasyon Katsayısı
korelasyon_pearson <- cor.test(veri_korr$Butce, veri_korr$Hacim)
korelasyon_pearson
##
## Pearson's product-moment correlation
##
## data: veri_korr$Butce and veri_korr$Hacim
## t = 4.4149, df = 88, p-value = 2.86e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.2398914 0.5816278
## sample estimates:
## cor
## 0.4258276
# Korelasyon Matrisi
corr_matrix <- cor(veri_korr)
# Korelasyon Matrisi Görselleştirme
corrplot(corr_matrix,
method = "number",
type = "upper" # Sadece üst kısmı göster
)
# Spearman Korelasyon Katsayısı
korelasyon_spearman <- cor.test(veri_korr$Butce, veri_korr$Hacim, method = "spearman", exact = TRUE)
## Warning in cor.test.default(veri_korr$Butce, veri_korr$Hacim, method =
## "spearman", : Cannot compute exact p-value with ties
korelasyon_spearman
##
## Spearman's rank correlation rho
##
## data: veri_korr$Butce and veri_korr$Hacim
## S = 68732, p-value = 1.902e-05
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.4342383
library(readxl)
head(veri_regresyon)
## # A tibble: 6 × 2
## `Pazarlama Harcamaları (bin dolar)` `Satış Miktarları (bin birim)`
## <dbl> <dbl>
## 1 135. 1253.
## 2 108 1052.
## 3 120. 1142.
## 4 145. 1257.
## 5 137. 1336.
## 6 80.4 882.
### yine turkce karakterler var
### duzenleme yapalim:)
names(veri_regresyon)[1]<- "pazarlama_harcama"
names(veri_regresyon)[2]<- "satis_miktari"
# bi veriyi gorelim, neler yapabiliriz
plot(satis_miktari ~ pazarlama_harcama, data = veri_regresyon)
## direkt lineer durmuyor ama bir lineerlik iliskisine bakalim
val=cor(veri_regresyon$pazarlama_harcama, veri_regresyon$satis_miktari)
if (val>=0.7 & val<0.9){
sprintf("korelasyon degeri %f olarak iyi bir korelasyon oldugu dusunulmaktedir.",round(val,2))
} else{if (val>=0.9){
sprintf("korelasyon degeri %f olarak guclu bir korelasyon oldugu dusunulmaktedir.",round(val,2))}
}
## [1] "korelasyon degeri 0.840000 olarak iyi bir korelasyon oldugu dusunulmaktedir."
## bilinen regresyon modelleri genelde normal dagilim
## (bagimli degisken) bekler
hist(veri_regresyon$satis_miktari)
## kabaca normal diyebiliriz, emin olmak icin hadi shapiro da uygulayalim
shapiro.test(veri_regresyon$satis_miktari)
##
## Shapiro-Wilk normality test
##
## data: veri_regresyon$satis_miktari
## W = 0.95022, p-value = 0.6402
## denemelere baslayalim:
### 1) lineer regresyon modeli:
model_lineer <- lm(satis_miktari ~ pazarlama_harcama, data = veri_regresyon)
summary(model_lineer)
##
## Call:
## lm(formula = satis_miktari ~ pazarlama_harcama, data = veri_regresyon)
##
## Residuals:
## Min 1Q Median 3Q Max
## -218.15 -45.94 22.24 64.45 111.31
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 218.684 179.149 1.221 0.250210
## pazarlama_harcama 7.493 1.539 4.870 0.000652 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 98.37 on 10 degrees of freedom
## Multiple R-squared: 0.7034, Adjusted R-squared: 0.6737
## F-statistic: 23.72 on 1 and 10 DF, p-value: 0.0006518
### ust uste cizdirelim
library(ggplot2)
satis.graph<-ggplot(veri_regresyon, aes(x=pazarlama_harcama, y=satis_miktari))+
geom_point()
satis.graph
satis.graph <- satis.graph + geom_smooth(method="lm", col="red")
satis.graph
## `geom_smooth()` using formula = 'y ~ x'
satis.graph <- satis.graph +
annotate(geom="text", x=90, y=1400, label="= 218.684 + (7.493*harcama)")
satis.graph
## `geom_smooth()` using formula = 'y ~ x'
### 2) polynomial regresyon yapsak peki ne olurdu?
model_poli = lm(satis_miktari ~ poly(pazarlama_harcama,3, raw=T), data=veri_regresyon)
# polinom regresyon_sonuc
summary(model_poli)
##
## Call:
## lm(formula = satis_miktari ~ poly(pazarlama_harcama, 3, raw = T),
## data = veri_regresyon)
##
## Residuals:
## Min 1Q Median 3Q Max
## -193.867 -11.211 6.118 44.452 130.317
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.887e+03 6.450e+03 0.758 0.470
## poly(pazarlama_harcama, 3, raw = T)1 -1.224e+02 1.784e+02 -0.687 0.512
## poly(pazarlama_harcama, 3, raw = T)2 1.182e+00 1.618e+00 0.730 0.486
## poly(pazarlama_harcama, 3, raw = T)3 -3.513e-03 4.814e-03 -0.730 0.486
##
## Residual standard error: 106.5 on 8 degrees of freedom
## Multiple R-squared: 0.7219, Adjusted R-squared: 0.6177
## F-statistic: 6.924 on 3 and 8 DF, p-value: 0.01297
library(readxl)
head(veri_lojistik)
## # A tibble: 6 × 3
## Yaş `Gelir Düzeyi` `Ürün Kabulü`
## <dbl> <dbl> <chr>
## 1 52.6 78247. Evet
## 2 39 29784. Evet
## 3 44.8 30943. Evet
## 4 57.4 64541. Hayır
## 5 53.7 32403. Evet
## 6 25.2 79154. Evet
# Gerekli Kütüphanelerin Yüklenmesi
library(readxl)
library(dplyr)
library(caTools)
library(ggplot2)
library(corrplot)
library(pROC)
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
# Kolon İsimlerini Değiştirme
names(veri_lojistik)[1] <- "yas"
names(veri_lojistik)[2] <- "gelir"
names(veri_lojistik)[3] <- "urun_kabul"
# İkili Lojistik Regresyon için Bağımlı Değişkeni Dönüştürme
veri_lojistik_new <- veri_lojistik %>%
mutate(urun_kabul = ifelse(urun_kabul == "Evet", 1, 0))
View(veri_lojistik_new)
# Korelasyon Matrisi
cor_matrix <- cor(veri_lojistik_new[, c("yas", "gelir", "urun_kabul")])
corrplot(cor_matrix, method = "circle", type = "lower", tl.col = "black", tl.srt = 45)
# Lojistik Regresyon Modeli Oluşturma
model_logistik <- glm(urun_kabul ~ yas + gelir, family = binomial, data = veri_lojistik_new)
# Model Özeti
summary(model_logistik)
##
## Call:
## glm(formula = urun_kabul ~ yas + gelir, family = binomial, data = veri_lojistik_new)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 4.425e-01 9.252e-01 0.478 0.632
## yas 2.469e-02 2.087e-02 1.183 0.237
## gelir -1.973e-05 1.309e-05 -1.508 0.132
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 136.66 on 99 degrees of freedom
## Residual deviance: 133.47 on 97 degrees of freedom
## AIC: 139.47
##
## Number of Fisher Scoring iterations: 4
# Tahmin edilen olasılıkların hesaplanması
predicted_probabilities <- predict(model_logistik, type = "response")
# ROC Eğrisi ve AUC Hesaplama
roc_curve <- roc(veri_lojistik_new$urun_kabul, predicted_probabilities)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
auc_value <- auc(roc_curve)
# ROC Eğrisinin Çizdirilmesi
plot(roc_curve, main = paste("ROC Eğrisi (AUC =", round(auc_value, 2), ")"))
# Yaşa göre tahmin edilen olasılıklar
plot_data <- data.frame(
yas = veri_lojistik_new$yas,
gelir = veri_lojistik_new$gelir,
urun_kabul = veri_lojistik_new$urun_kabul,
predicted_probabilities = predicted_probabilities
)
ggplot(plot_data, aes(x = yas, y = predicted_probabilities)) +
geom_point(aes(color = as.factor(urun_kabul))) +
geom_smooth(method = "glm", method.args = list(family = binomial), se = FALSE) +
labs(title = "Yaşa Göre Tahmin Edilen Olasılıklar", x = "Yaş", y = "Tahmin Edilen Olasılıklar") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
## Warning in eval(family$initialize): non-integer #successes in a binomial glm!
# Gelire göre tahmin edilen olasılıklar
ggplot(plot_data, aes(x = gelir, y = predicted_probabilities)) +
geom_point(aes(color = as.factor(urun_kabul))) +
geom_smooth(method = "glm", method.args = list(family = binomial), se = FALSE) +
labs(title = "Gelire Göre Tahmin Edilen Olasılıklar", x = "Gelir", y = "Tahmin Edilen Olasılıklar") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
## Warning in eval(family$initialize): non-integer #successes in a binomial glm!