Özet

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.

Metodoloji

Veri Seti

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.

Bağımsız Değişkenler

  • GSYH: Kişi başına düşen gayri safi yurtiçi hasıla (TL ve USD cinsinden)
  • Eğitim: Lise ve fakülte mezunu sayıları
  • KAMH: Kişi başına kamu harcaması
  • DIN: Cami başına düşen kişi sayısı

Ekonometrik Model

Logaritmik-doğrusal form kullanılarak dört farklı model tahmin edilmiştir.

Bulgular

1. Model Performansı ve Tanısal Testler

Çoklu Doğrusal Bağlantı (VIF) Analizi

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.

Normallik Testi

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.

Heteroskedastisite

Breusch-Pagan testi sonuçları, sabit varyans varsayımının sağlandığını göstermektedir.

Kısıtlar ve İleri Araştırma Önerileri

  1. Zaman boyutunun eklenmesi ile panel veri analizi yapılabilir.
  2. Suç türlerine göre ayrıştırılmış bir analiz daha detaylı bulgular sağlayabilir.
  3. Sosyo-kültürel faktörlerin daha kapsamlı ölçümleri modele dahil edilebilir.

Ekler

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>