6 Heterojenlik Nedir?

Teorik Açıdan Heterojenlik(Sedat hoca)

Meta-analiz çalışmalarında etki büyüklükleri arasındaki farklılıkların değerlendirilmesi, sonuçların güvenilirliğini ve genellenebilirliğini belirlemede kritik bir adımdır. Heterojenlik, dâhil edilen çalışmaların etki büyüklüklerinin yalnızca örnekleme hatasından değil, aynı zamanda yöntemsel ya da kavramsal farklılıklardan da kaynaklanabileceğini ifade eder (Borenstein, Hedges, Higgins ve Rothstein, 2021). Homojen bir meta-analizde tüm çalışmaların benzer koşullarda yürütüldüğü varsayılırken, heterojenlik durumunda farklı örneklemler, ölçüm araçları, ya da araştırma tasarımları sonuçlar üzerinde anlamlı etkiler yaratabilir (Higgins vd., 2022). Heterojenliğin istatistiksel olarak incelenmesi genellikle Cochran’ın Q testi ve I² istatistiği ile gerçekleştirilir. Q testi, gözlenen varyansın beklenen varyanstan anlamlı biçimde büyük olup olmadığını değerlendirirken, I² değeri toplam varyansın yüzde kaçının gerçek heterojenlikten kaynaklandığını gösterir (Huedo-Medina, Sánchez-Meca, Marín-Martínez ve Botella, 2006). I² değerinin %25, %50 ve %75 sınırları sırasıyla düşük, orta ve yüksek düzeyde heterojenliği temsil eder (Higgins ve Thompson, 2002). Heterojenliğin belirlenmesi, hangi modelin (sabit ya da rastgele etkiler) kullanılacağını da doğrudan etkiler. Sabit etkiler modeli, tüm çalışmaların aynı gerçek etki büyüklüğünü paylaştığı varsayımına dayanırken; rastgele etkiler modeli, çalışmalar arası varyasyonun gerçek etki büyüklüklerindeki farklılıklardan kaynaklandığını öngörür (Cheung, 2015). Bu nedenle heterojenlik düzeyinin doğru biçimde değerlendirilmesi, meta-analiz sonuçlarının anlamlı ve geçerli bir biçimde yorumlanabilmesi için temel bir ön koşuldur.

6.1 Hetorojenliğin İncelenmesi

(Tuğba)

6.1.1 Hetorojenliğin incelenmesi örnek uygulama

(Tuğba)

Heterojenlik testi

library(readxl)
library(metafor)

# Excel dosyasını oku
data <- read_excel("s176.xlsx")
mean_exp <- data$mean_exp  # Deney grubunun aritmetik ortalaması
mean_control <- data$mean_control  # Kontrol grubunun aritmetik ortalaması
sd_exp <- data$sd_exp  # Deney grubunun standart sapması
sd_control <- data$sd_control  # Kontrol grubunun standart sapması
n_exp <- data$n_exp  # Deney grubunun örneklem büyüklüğü
n_control <- data$n_control  # Kontrol grubunun örneklem büyüklüğü
pooled_sd <- sqrt(((n_exp - 1) * sd_exp^2 + (n_control - 1) * sd_control^2) / (n_exp + n_control - 2))
pooled_sd
##  [1] 17.819449 78.884420 22.492004  2.529160  2.545830  2.792380 13.073750
##  [8] 14.021769  1.988328  1.542222  3.723882 10.499155 25.790450 43.294961
## [15] 11.353389 19.847399 10.073266
# 2. Hedges's g hesaplama
g <- (mean_exp - mean_control) / pooled_sd * (1 - (3 / (4 * (n_exp + n_control - 2) - 1)))
g
##  [1]  0.804133004  0.221965382  0.312761326  0.241900890  0.814165649
##  [6] -0.007016178  1.437180115  1.627394878  0.905283031  1.230235840
## [11]  0.747501202 -1.916011848  0.144756424 -0.008735008  0.469242550
## [16]  0.573185422 -0.052374997
# 3. Hedges's g için Standart Hata (SE_g)
SE_g <- sqrt((n_exp + n_control) / (n_exp * n_control) + (g^2 / (2 * (n_exp + n_control)))) * (1 - (3 / (4 * (n_exp + n_control) - 9)))
SE_g
##  [1] 0.2305295 0.2949492 0.2356715 0.2579115 0.2651936 0.3146537 0.2469052
##  [8] 0.2666053 0.3730337 0.3874314 0.2936914 0.4432254 0.1526744 0.4727295
## [15] 0.2042260 0.2094871 0.1543107
# 4. Varyans (Variance of g)
var_g <- SE_g^2
var_g
##  [1] 0.05314383 0.08699506 0.05554104 0.06651832 0.07032764 0.09900697
##  [7] 0.06096218 0.07107838 0.13915413 0.15010312 0.08625462 0.19644879
## [13] 0.02330948 0.22347321 0.04170828 0.04388486 0.02381179
# 5. Güven Aralığı (95% CI)
z_critical <- 1.96  # 95% güven aralığı için
lower_ci <- g - z_critical * SE_g
upper_ci <- g + z_critical * SE_g
lower_ci
##  [1]  0.35229528 -0.35613513 -0.14915477 -0.26360556  0.29438620 -0.62373750
##  [7]  0.95324593  1.10484852  0.17413700  0.47087022  0.17186613 -2.78473372
## [13] -0.15448542 -0.93528488  0.06895951  0.16259063 -0.35482395
upper_ci
##  [1]  1.2559707  0.8000659  0.7746774  0.7474073  1.3339451  0.6097051
##  [7]  1.9211143  2.1499412  1.6364291  1.9896015  1.3231363 -1.0472900
## [13]  0.4439983  0.9178149  0.8695256  0.9837802  0.2500740
# 6. Z-değeri (Z-value)
z_value <- g / SE_g
z_value
##  [1]  3.48820075  0.75255451  1.32710725  0.93792224  3.07008034 -0.02229809
##  [7]  5.82077712  6.10413590  2.42681307  3.17536398  2.54519301 -4.32288326
## [13]  0.94813810 -0.01847781  2.29766265  2.73613659 -0.33941263
# 7. P-değeri (P-value)
p_value <- 2 * (1 - pnorm(abs(z_value)))
p_value
##  [1] 4.862828e-04 4.517177e-01 1.844732e-01 3.482844e-01 2.140012e-03
##  [6] 9.822102e-01 5.857464e-09 1.033583e-09 1.523210e-02 1.496487e-03
## [11] 1.092174e-02 1.540032e-05 3.430592e-01 9.852577e-01 2.158100e-02
## [16] 6.216522e-03 7.342989e-01
fixed_model <- rma(yi = g, vi = SE_g^2, data = data, method = "FE")
library(metafor)
random_model <- rma(yi = g, vi = SE_g^2, data = data, method = "REML")
# Sabit model ve rasgele model heterojenlik test sonuçları
cat("\n--- Sabit Model Sonuçları ---\n")
## 
## --- Sabit Model Sonuçları ---
cat("Q İstatistiği: ", fixed_model$QE, "\n")
## Q İstatistiği:  94.3856
cat("I^2: ", fixed_model$I2, "\n")
## I^2:  83.04826
cat("Tau Kare: ", fixed_model$tau2, "\n")
## Tau Kare:  0
cat("\n--- Rasgele Model Sonuçları ---\n")
## 
## --- Rasgele Model Sonuçları ---
cat("Q İstatistiği: ", random_model$QE, "\n")
## Q İstatistiği:  94.3856
cat("I^2: ", random_model$I2, "\n")
## I^2:  87.44238
cat("Tau Kare: ", random_model$tau2, "\n")
## Tau Kare:  0.4268754
# Sabit model için Cochran's Q hesaplama
Q_fixed <- sum((fixed_model$yi - fixed_model$beta)^2 / fixed_model$vi)
## Warning in fixed_model$yi - fixed_model$beta: Recycling array of length 1 in vector-array arithmetic is deprecated.
##   Use c() or as.vector() instead.
# Rasgele model için Cochran's Q hesaplama
Q_random <- sum((random_model$yi - random_model$beta)^2 / random_model$vi)
## Warning in random_model$yi - random_model$beta: Recycling array of length 1 in vector-array arithmetic is deprecated.
##   Use c() or as.vector() instead.
Q_fixed
## [1] 94.3856
Q_random
## [1] 94.52604
results <- data.frame(
  study = 1:nrow(data),
  mean_exp = mean_exp,
  mean_control = mean_control,
  pooled_sd = pooled_sd,
  g = g,
  SE_g = SE_g,
  var_g = var_g,
  lower_ci = lower_ci,
  upper_ci = upper_ci,
  z_value = z_value,
  p_value = p_value
)

# Sonuçları görüntüle
print(results)
##    study mean_exp mean_control pooled_sd            g      SE_g      var_g
## 1      1    70.71        56.27 17.819449  0.804133004 0.2305295 0.05314383
## 2      2    59.40        41.66 78.884420  0.221965382 0.2949492 0.08699506
## 3      3    33.71        26.60 22.492004  0.312761326 0.2356715 0.05554104
## 4      4     3.69         3.07  2.529160  0.241900890 0.2579115 0.06651832
## 5      5     5.17         3.07  2.545830  0.814165649 0.2651936 0.07032764
## 6      6     6.04         6.06  2.792380 -0.007016178 0.3146537 0.09900697
## 7      7    94.58        75.61 13.073750  1.437180115 0.2469052 0.06096218
## 8      8    98.67        75.61 14.021769  1.627394878 0.2666053 0.07107838
## 9      9     7.45         5.60  1.988328  0.905283031 0.3730337 0.13915413
## 10    10     4.40         2.45  1.542222  1.230235840 0.3874314 0.15010312
## 11    11    19.12        16.29  3.723882  0.747501202 0.2936914 0.08625462
## 12    12    45.71        66.43 10.499155 -1.916011848 0.4432254 0.19644879
## 13    13    50.50        46.75 25.790450  0.144756424 0.1526744 0.02330948
## 14    14    52.88        53.28 43.294961 -0.008735008 0.4727295 0.22347321
## 15    15    73.43        68.06 11.353389  0.469242550 0.2042260 0.04170828
## 16    16    55.91        44.44 19.847399  0.573185422 0.2094871 0.04388486
## 17    17    20.94        21.47 10.073266 -0.052374997 0.1543107 0.02381179
##       lower_ci   upper_ci     z_value      p_value
## 1   0.35229528  1.2559707  3.48820075 4.862828e-04
## 2  -0.35613513  0.8000659  0.75255451 4.517177e-01
## 3  -0.14915477  0.7746774  1.32710725 1.844732e-01
## 4  -0.26360556  0.7474073  0.93792224 3.482844e-01
## 5   0.29438620  1.3339451  3.07008034 2.140012e-03
## 6  -0.62373750  0.6097051 -0.02229809 9.822102e-01
## 7   0.95324593  1.9211143  5.82077712 5.857464e-09
## 8   1.10484852  2.1499412  6.10413590 1.033583e-09
## 9   0.17413700  1.6364291  2.42681307 1.523210e-02
## 10  0.47087022  1.9896015  3.17536398 1.496487e-03
## 11  0.17186613  1.3231363  2.54519301 1.092174e-02
## 12 -2.78473372 -1.0472900 -4.32288326 1.540032e-05
## 13 -0.15448542  0.4439983  0.94813810 3.430592e-01
## 14 -0.93528488  0.9178149 -0.01847781 9.852577e-01
## 15  0.06895951  0.8695256  2.29766265 2.158100e-02
## 16  0.16259063  0.9837802  2.73613659 6.216522e-03
## 17 -0.35482395  0.2500740 -0.33941263 7.342989e-01

Veriler heterojenlik testine göre Q(sd=16) değeri 94,3856 (p<0,05) olarak bulunmuştur. Elde edilen Q değerinin ki-kare tablo değerinin (sd=16, p<0,05) 26,33’ün üzerinde olması verilerin heterojen olduğunu göstermektedir. Hesaplanan I-kare değeri %83,04826’ tür. Bu değer yüksek düzeyde heterojenlik olduğunu göstermektedir.

6.2 Hetorojenliğin Açıklanması

(Burak)

6.2.1 Analog ANOVA Uygulama

(Burak)

6.2.2 Meta-Regresyon Uygulama

(Burak)