Bu çalışma, Türkiye’nin 81 ilinde sosyo-ekonomik faktörlerin suç oranları üzerindeki etkisini incelemektedir. Kişi başına düşen GSYH, eğitim düzeyi, kamu harcamaları ve dini yapı değişkenleri kullanılarak ekonometrik bir analiz gerçekleştirilmiştir.
Analiz, 2023 yılına ait 81 il düzeyinde kesit veri kullanılarak gerçekleştirilmiştir. Bağımlı değişken olarak kişi başına düşen suç oranı (TER) kullanılmıştır.
Logaritmik-doğrusal form kullanılarak dört farklı model tahmin edilmiştir.
VIF değerleri tüm değişkenler için kritik eşik olan 10’un altında bulunmuştur, bu da modelde ciddi bir çoklu doğrusal bağlantı sorunu olmadığını göstermektedir.
Shapiro-Wilk testi sonuçlarına göre (p > 0.05), artık değerlerin normal dağılıma uyduğu görülmüştür.
Breusch-Pagan testi sonuçları, sabit varyans varsayımının sağlandığını göstermektedir.
Gerekli Kütüphaneler
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.2
##
## 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)
## Warning: package 'ggplot2' was built under R version 4.4.2
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(car)
## Warning: package 'car' was built under R version 4.4.2
## Zorunlu paket yükleniyor: carData
## Warning: package 'carData' was built under R version 4.4.1
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.2
## Zorunlu paket yükleniyor: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
Veri Yükleme ve Ön İşleme
# Veri setini okuma
data <- read_excel("Murat Eren Analiz.xlsx", sheet = "sarı", .name_repair = "minimal")
# Değişkenlere log dönüşümü uygulama
data <- data %>%
mutate(
log_gsyhd = log(gsyhd),
log_lise = log(lise),
log_kamh = log(kamh)
)
Model Tahminleri
# Ana model tahmini
model1 <- lm(ter ~ log_gsyhd + log_lise + log_kamh + din, data = data)
# Alternatif modeller
model2 <- lm(ter ~ log_gsyhd + log(fak) + log_kamh + din, data = data)
model3 <- lm(ter ~ log(gsyh) + log_lise + log_kamh + din, data = data)
model4 <- lm(ter ~ log(gsyh) + log(fak) + log_kamh + din, data = data)
Model Sonuçları
# Model sonuçlarını görüntüleme
stargazer(model1, model2, model3, model4,
title = "Regresyon Sonuçları",
type = "text",
digits = 3)
##
## Regresyon Sonuçları
## =====================================================================
## Dependent variable:
## ---------------------------------------
## ter
## (1) (2) (3) (4)
## ---------------------------------------------------------------------
## log_gsyhd -4.562*** -4.276***
## (1.521) (1.521)
##
## log(gsyh) -4.562*** -4.276***
## (1.521) (1.521)
##
## log_lise -0.915 -0.915
## (0.660) (0.660)
##
## log(fak) -1.134* -1.134*
## (0.612) (0.612)
##
## log_kamh 7.888*** 7.791*** 7.888*** 7.791***
## (1.330) (1.314) (1.330) (1.314)
##
## din 0.003*** 0.003*** 0.003*** 0.003***
## (0.001) (0.001) (0.001) (0.001)
##
## Constant 25.737 25.265 40.139* 38.764**
## (16.103) (15.174) (20.210) (19.347)
##
## ---------------------------------------------------------------------
## Observations 81 81 81 81
## R2 0.420 0.431 0.420 0.431
## Adjusted R2 0.390 0.401 0.390 0.401
## Residual Std. Error (df = 76) 3.754 3.718 3.754 3.718
## F Statistic (df = 4; 76) 13.760*** 14.397*** 13.760*** 14.397***
## =====================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Diagnostik Testler
VIF Testi
# Çoklu doğrusal bağlantı testi
vif(model1)
## log_gsyhd log_lise log_kamh din
## 1.462294 2.202207 1.167660 2.442489
Breusch-Pagan Testi
# Heteroskedastisite testi
bptest(model1)
##
## studentized Breusch-Pagan test
##
## data: model1
## BP = 16.78, df = 4, p-value = 0.002133
Shapiro-Wilk Testi
# Normallik testi
shapiro.test(residuals(model1))
##
## Shapiro-Wilk normality test
##
## data: residuals(model1)
## W = 0.71558, p-value = 3.119e-11
Görsel Analizler
Artık Değerlerin Dağılımı
ggplot(data.frame(residuals = residuals(model1)), aes(x = residuals)) +
geom_histogram(bins = 30, fill = "blue", alpha = 0.7) +
theme_minimal() +
labs(title = "Artık Değerlerin Dağılımı",
x = "Artık Değerler",
y = "Frekans")
Q-Q Plot
qqnorm(residuals(model1))
qqline(residuals(model1))
Artık Değerler vs. Tahmin Edilen Değerler
plot(fitted(model1), residuals(model1),
xlab = "Tahmin Edilen Değerler",
ylab = "Artık Değerler",
main = "Artık Değerler vs. Tahmin Edilen Değerler")
abline(h = 0, col = "red")
İl Bazlı Analizler
# İl Bazlı Analizler
# Tüm iller için marjinal etki hesaplama
il_bazli_analiz <- data %>%
group_by(İl) %>%
summarise(
# GSYHD için elastikiyet
elasticity_gsyhd = coef(model1)["log_gsyhd"] * mean(gsyhd) / mean(ter),
# Lise için elastikiyet
elasticity_lise = coef(model1)["log_lise"] * mean(lise) / mean(ter),
# Kamu harcamaları için elastikiyet
elasticity_kamh = coef(model1)["log_kamh"] * mean(kamh) / mean(ter),
# Din değişkeni için marjinal etki (log dönüşümü olmadığı için doğrudan katsayı)
marginal_effect_din = coef(model1)["din"]
)
# Görselleştirme: İllere göre GSYHD elastikiyeti
ggplot(il_bazli_analiz, aes(x = reorder(İl, elasticity_gsyhd), y = elasticity_gsyhd)) +
geom_bar(stat = "identity") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(title = "İllere Göre GSYHD Elastikiyeti",
x = "İl",
y = "GSYHD Elastikiyeti")
## Warning: Removed 9 rows containing missing values or values outside the scale range
## (`geom_bar()`).
# En yüksek ve en düşük elastikiyete sahip 5 il
print("\nGSYHD Elastikiyeti En Yüksek 5 İl:")
## [1] "\nGSYHD Elastikiyeti En Yüksek 5 İl:"
print(il_bazli_analiz %>%
arrange(desc(elasticity_gsyhd)) %>%
head(5))
## # A tibble: 5 × 5
## İl elasticity_gsyhd elasticity_lise elasticity_kamh marginal_effect_din
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Hakkari -928. -2094. 16.1 0.00318
## 2 Tunceli -1998. -910. 31.8 0.00318
## 3 Muş -3315. -7622. 26.8 0.00318
## 4 Şırnak -3577. -10174. 32.2 0.00318
## 5 Ağrı -3659. -11132. 35.1 0.00318
print("\nGSYHD Elastikiyeti En Düşük 5 İl:")
## [1] "\nGSYHD Elastikiyeti En Düşük 5 İl:"
print(il_bazli_analiz %>%
arrange(elasticity_gsyhd) %>%
head(5))
## # A tibble: 5 × 5
## İl elasticity_gsyhd elasticity_lise elasticity_kamh marginal_effect_din
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Bilecik -Inf -Inf Inf 0.00318
## 2 Düzce -Inf -Inf Inf 0.00318
## 3 Karabük -Inf -Inf Inf 0.00318
## 4 Karaman -Inf -Inf Inf 0.00318
## 5 Kırklare… -Inf -Inf Inf 0.00318
Model Özeti ve Elastikiyet Sonuçları
# Model Özeti ve Elastikiyet Sonuçları
# Model özeti
summary(model1)
##
## Call:
## lm(formula = ter ~ log_gsyhd + log_lise + log_kamh + din, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.6799 -1.4048 -0.6904 1.4761 23.3731
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 25.737453 16.102628 1.598 0.11412
## log_gsyhd -4.562062 1.521185 -2.999 0.00366 **
## log_lise -0.915190 0.660377 -1.386 0.16984
## log_kamh 7.888099 1.329990 5.931 8.34e-08 ***
## din 0.003177 0.001075 2.955 0.00416 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.754 on 76 degrees of freedom
## Multiple R-squared: 0.42, Adjusted R-squared: 0.3895
## F-statistic: 13.76 on 4 and 76 DF, p-value: 1.733e-08
# Ortalama elastikiyet değerleri
mean_elasticities <- il_bazli_analiz %>%
summarise(
mean_elasticity_gsyhd = mean(elasticity_gsyhd),
mean_elasticity_lise = mean(elasticity_lise),
mean_elasticity_kamh = mean(elasticity_kamh),
mean_marginal_effect_din = mean(marginal_effect_din)
)
# Sonuçları yazdırma
print("Ortalama Elastikiyet Değerleri:")
## [1] "Ortalama Elastikiyet Değerleri:"
print(mean_elasticities)
## # A tibble: 1 × 4
## mean_elasticity_gsyhd mean_elasticity_lise mean_elasticity_kamh
## <dbl> <dbl> <dbl>
## 1 -Inf -Inf Inf
## # ℹ 1 more variable: mean_marginal_effect_din <dbl>
İl Bazlı Görselleştirmeler
Gerçek vs. Tahmin Edilen Değerler
# Tahmin değerlerini ekleme
data$predicted <- fitted(model1)
data$residuals <- residuals(model1)
ggplot(data, aes(x = ter, y = predicted)) +
geom_point() +
geom_abline(intercept = 0, slope = 1, color = "red") +
theme_minimal() +
labs(title = "Gerçek vs. Tahmin Edilen Değerler",
x = "Gerçek Değerler",
y = "Tahmin Edilen Değerler")
İllere Göre Artık Değerler
ggplot(data, aes(x = reorder(İl, residuals), y = residuals)) +
geom_bar(stat = "identity") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(title = "İllere Göre Artık Değerler",
x = "İl",
y = "Artık Değerler")
Korelasyon ve Özet İstatistikler
# Korelasyon matrisi
cor_matrix <- cor(data %>%
select(ter, log_gsyhd, log_lise, log_kamh, din))
print("Korelasyon Matrisi:")
## [1] "Korelasyon Matrisi:"
print(cor_matrix)
## ter log_gsyhd log_lise log_kamh din
## ter 1.00000000 -0.2928196 -0.2385951 0.5662314 -0.08084216
## log_gsyhd -0.29281958 1.0000000 0.4498808 -0.2145122 0.55750718
## log_lise -0.23859514 0.4498808 1.0000000 -0.3708809 0.72190593
## log_kamh 0.56623138 -0.2145122 -0.3708809 1.0000000 -0.31783069
## din -0.08084216 0.5575072 0.7219059 -0.3178307 1.00000000
# Özet istatistikler
summary_stats <- data %>%
summarise(across(c(ter, gsyhd, lise, kamh, din),
list(mean = mean, sd = sd, min = min, max = max)))
print("\nÖzet İstatistikler:")
## [1] "\nÖzet İstatistikler:"
print(summary_stats)
## # A tibble: 1 × 20
## ter_mean ter_sd ter_min ter_max gsyhd_mean gsyhd_sd gsyhd_min gsyhd_max
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2.17 4.81 0 33.7 9822. 3513. 4598 21985
## # ℹ 12 more variables: lise_mean <dbl>, lise_sd <dbl>, lise_min <dbl>,
## # lise_max <dbl>, kamh_mean <dbl>, kamh_sd <dbl>, kamh_min <dbl>,
## # kamh_max <dbl>, din_mean <dbl>, din_sd <dbl>, din_min <dbl>, din_max <dbl>