/* Genel yazı tipi ve sayfa ayarları */
body {
font-family: 'Merriweather', 'Georgia', serif; /* Serif yazı tipi */
font-size: 18px;
background-color: #f1fcfd; /* Daha açık mavi arka plan */
color: #1b5e20; /* Koyu yeşil metin */
}
/* Başlıklar */
h1, h2, h3 {
color: #00796b; /* Mavi-yeşil (teal) başlıklar */
font-weight: bold;
text-transform: uppercase;
font-family: 'Open Sans', sans-serif;
}
/* İçindekiler tablosu */
.tocify {
background-color: #b2dfdb; /* Açık deniz yeşili */
border-radius: 5px;
padding: 10px;
font-family: 'Open Sans', sans-serif;
}
/* Kod bloklarının (chunk) arka planı */
pre {
background-color: #d0f0c0 !important; /* Açık yeşil arka plan */
color: #004d40 !important; /* Koyu mavi-yeşil kod yazısı */
padding: 12px;
border-radius: 8px;
font-family: 'Fira Code', 'Courier New', Courier, monospace;
}
/* Inline kodlar */
code {
background-color: #b2ebf2; /* Açık mavi arka plan */
color: #00796b; /* Teal metin */
padding: 3px 6px;
border-radius: 4px;
}
/* Grafik ve görseller */
img, .figure {
border: 2px solid #00796b; /* Teal çerçeve */
border-radius: 10px;
padding: 5px;
}library(dplyr)
library(psych)
library(ggplot2)
library(tidyr)
library(tidyverse)
library(QuantPsyc)
library(EFAtools)
library(EFA.MRFA)
library(EFA.dimensions)
library(knitr)
library(data.table)
library(lavaan)
library(lavaanPlot)
library(devtools)
library(DT)
library(tibble)
library(EFAfactors)
library(outliers)
library(foreign)
library(haven)
library(highr)
library(corrplot)
library(semptools)
library(semTools)
library(sur)
library(gtools)
library(irtoys)
library(kableExtra)
library(lattice)
library(ggfortify)
library(latticeExtra)
library(plotly)
library(semptools)
library(semTools)
library(flextable)
library(purrr)
library(rgl)
library(olsrr)
library(scatterplot3d)
library(broom)
library(GGally)
library(lavaan)
library(stargazer)
library(effectsize)
library(rockchalk)
library(quartets)
library(broom)
library(flextable)
library(apaTables)
library(officer)PISA <- as.data.frame(lapply(USA, function(x) {
if (is.numeric(x)) {
x[is.na(x)] <- mean(x, na.rm = TRUE)}
return(x)}))pv_vars <- paste0("PV", 1:10, "MATH")
PISA$PVMATH_MEAN <- rowMeans(PISA[, pv_vars], na.rm = TRUE)
pv_vars_2 <- paste0("PV", 1:10, "READ")
PISA$PVREAD_MEAN <- rowMeans(PISA[, pv_vars_2], na.rm = TRUE)
pv_vars_3 <- paste0("PV", 1:10, "SCIE")
PISA$PVSCIE_MEAN <- rowMeans(PISA[, pv_vars_3], na.rm = TRUE)
variable_names <- data.frame(Index = seq_along(names(PISA)), Variable_Name = names(PISA))
datatable(variable_names, caption = "PISA Veri Setindeki Degiskenler")describe_df[] <- lapply(describe_df, function(x) {
if (is.numeric(x)) round(x, 3) else x})
DT::datatable(describe_df, caption = "PISA Veri Seti Icin Tanimlayici Istatistikler")Herbir yapını n sadece tek bir gözlenen ölçümünün (göstergesinin) oldugu durumlar bulunabilir ve bu durumlarda da tek gösterge tekniği olan → yol analizi kullanılabilir.
Yol analizinde → sadece gözlenen değişkenler modellenir.
Bu model → gözlenen değişkenler için → bir yapısal eşitlik modelidir.
Yol analizinde amaç → ölçülen değişkenler arasındaki ilişkileri açıklamaktır.
Yol analizi → gözlenen değişkenler arasındaki → doğrudan ve doğrudan olmayan etkileri gösteren yapısal modellerin tanımlanmasına ve test edilmesine izin verir.
GÖZLENEN DEĞİŞKEN:
Dışsal (Exogenous) Değişken: Nedenleri bilinmeyen ve modelde gösterilmeyen değişkendir. Dışsal değişken → değişkenlik göstermekte serbesttir.
İçsel (Endogenous) Değişken: Varsayılan nedenleri modelde açıkça gösterilen değişkendir. İçsel değişken → değişkenlik göstermekte serbest DEĞİLdir.
Her içsel değişkenin bozukluğu (disturbance) vardır ve bozukluk (disturbance) modelde → “D” sembolü ile gösterilir.
Bozukluk model için hata (artık) terimidir ve içsel değişkende gözlenen varyansın açıklanmayan kısmını temsil eder.
Bozukluk ilgili içsel değişkenin ölçülemeyen bütün nedenlerini temsil eden bileşik bir değişkendir.
Model ele alındığında bu nedenlerin doğası ve sayısı bilinmediğinden bozukluklar gizil değişkenler olarak düşünülebilir ve çember sembolü ile temsil edilirler.
Gizil Değişkenler
doğrudan ölçülmezler.
bir değer alamayabilirler.
daha doğrudan ölçülebilen değişkenleri etkilediklerine inanılır.
Yapısal eşitlik modelinde iki tür gizil değişken vardır:
faktör veya yapı
artık veya bozukluk
Bir değişkenin diğer bir değişken üzerindeki doğrudan etkisi → (direct effect) olup → okun kuyruğundaki değişkenin → okun başındaki değişkeni etkilediği varsayılır.!!
Doğrudan etkilerin istatistiksel kestirimi yol katsayıları (path coefficients) olup → çoklu regresyondaki regresyon katsayıları gibi yorumlanır.
D → Y yolunda gözüken “1” sayısı ölçekleme sabitidir (scaling constant), → standartlaştırılmamış artık yol katsayısı (unstandardized residual path coefficient) olarak da adlandırılır ve bozukluğa bir ölçek atandığını gösterir.
Bozukluklar → gizil olduğu ve gizil değişkenler de → program onlarla ilgili herhangi bir kestirimde bulunmadan önce → ölçeğe ihtiyaç duyduklarından böyle bir sabit atanır.
Bazı içsel değişkenlerin → yol modelinde → hem bağımsız hem de bağımlı değişken olarak → ikili rolü vardır.
Arabulucu değişkenler kendilerinden önceki değişkenlerin → nedensel etkilerinin bir kısmını → kendilerinden sonraki değişkenlere iletirler, böyle etkilere → DOLAYLI ETKİLER adı verilir.
Veri modellemedeki düşünce gözlenen kovaryans matrisinin bir grup değişken arasındaki → varsayılan ilişki tarafından üretilip üretilemeyeceğini → test etmektir.
Varsayılan model → belli bir varyans ve kovaryans deseni gerektirir ki bu varyans ve kovaryans deseni → üretilmiş varyans ve kovaryans matrisi (reproduced variance and covariance matrix) olarak adlandırılır.
Gözlenen kovaryans matrisi ve üretilmiş kovaryans matrisi arasındaki fark → artık kovaryans matrisini (residual covariance matrix) oluşturur.
Eğer artık kovaryans matrisinin bütün elemanları SIFIR ise → varsayılan model veriyle TAMAMEN EŞLEŞMİŞ demektir → (mükemmel model veri uyumu)
Eğer artık kovaryans matrisinin bütün elemanları SIFIR DEĞİL İSE → varsayılan model ve veri arasında bir takım UYUŞMAZLIKLAR vardır.
Yol analizi modelinde SIFIR HİPOTEZİ → model tarafından üretilen kovaryans matrisinin gerçek veriyle (örneğin, gözlenen kovaryans matrisiyle) TAMAMEN eşleştiğidir.
\(\sum = \widehat{\sum}\)
Yol analizi modelinde → sıfır hipotezinin RED EDİLMESİ İSTENMEZ!!
Bu nedenle, genel model uyumunu test etmek için kullanılan → olabilirlik oranı (ki-kare) testinin → p-değerinin YÜKSEK olması istenir.
Artık kovaryans matrisi → model tarafından açıklanmayan varyans ve kovaryansları içeren matristir. Aşağıdaki eşitlikle hesaplanır:
\(\mathcal{S} - \widehat{\sum}\)
S → örneklemden elde edilen gözlenen kovaryans matrisidir.
Gözlenen değişkenler arasındaki bütün varyans ve kovaryanslar model tarafından açıklandığı zaman → artık kovaryans matrisinin BÜTÜN öğeleri → sıfır olacaktır.
Aksi halde, artık kovaryans matrisinin sıfırdan FARKLI olacaktır.
Model gözlemleri:
bir yol modelindeki → gözlenen değişkenler arasındaki → varyans ve kovaryanslardır.
Model gözlemlerinin sayısı v → gözlenen değişkenlerin sayısı olmak üzere → \(v(v + 1)/2\)’ye eşittir.
Modelden kestirilen parametre sayısı
ya gözlenen ya da gözlenmeyen dışsal değişkenlerin varyanslarının ve kovaryanslarının sayısı ve
gözlenen değişkenlerin içsel değişkenlere olan doğrudan etkilerin sayısı
TOPLAMIdır.
Not 1: İçsel değişkenlerin varyansları ve kovaryansları model parametreleri olarak ele alınmaz.
Not 2: Bozukluk, modelde nedeni bilinmediğinden, gözlenmeyen dışsal değişken olarak ele alınır.
Model parametresi araştırmacının tanımlamasına bağlı olarak → SERBEST (free), SABİT (fixed) veya SINIRLANDIRILMIŞ (constrained) olabilir.
Serbest parametre (free parameter) → örneklem verisinden bilgisayar yazılımı tarafından kestirilen parametredir.
Sabit parametre (fixed parameter)→ bir sabite eşit olarak belirlenen parametredir; yazılım bu sabiti veriye bağlı olmaksızın parametrenin kestirimi olarak kabul eder.
Sınırlandırılmış parametre (constrained parameter) → yazılım tarafından belli sınırlılıklar içerisinde kestirilir ancak bir sabite eşit olmak üzere sabitlenmez.
Model serbestlik derecesi (sd) → model gözlemlerinin sayısı ve modelden kestirilecek parametre sayısı arasındaki FARKA EŞİTtir.
Bir yol modelinin değerlendirilmesi sırasında karşılaşılacak olası problemlerden biri → modelin tanımlanmasıdır.
Modeldeki her bir parametre için → kuramsal olarak tek bir kestirim üretilebiliyor ise → model tanımlanır denir. Aksi halde, model TANIMLANAMAZ.
“Kuramsal olarak” ifadesi tanımlanmanın verinin değil, → modelin bir özelliği olduğunu vurgulamak için kullanılmıştır.
Örneğin, eğer bir model tanımlanmazsa, örneklem büyüklüğüne (100, 1000, vb.) bağlı olmaksızın TANIMLANAMAZ olarak kalır.
Bu nedenle, tanımlanmayan modellerin yeniden tanımlanması gerekir. Aksi halde, analizler çözüm ÜRETMEZ
Herhangi bir yapısal eşitlik modeli için tanımlanmanın gerektirdiği iki koşul vardır:
Her gözlenmeyen (gizil) değişken bir ölçeğe atanmalıdır, bozukluk yol analizindeki tek gizil değişkendir.
En az serbest model parametreleri kadar gözlem olmalıdır (sd ≥ 0)
Gizil değişkenler → YAPAY bir ölçektedirler.
Yazılımın gizil değişkenleri içeren etkilerin kestirimlerini hesaplayabilmesi için → bu değişkenlere bir ölçek atanması gerekir.
Unit Loading Identification (ULI) constraint: Artık yol katsayısı (bozukluğun doğrudan etkisini ifade eden yol katsayısı) 1.0’e sabitlenir → böylece bozukluk ilgili içsel değişkenin açıklanmayan varyansıyla ilişkili bir ölçeğe → atanmış olur.
Unit Variance Identification (UVI) constraint: Gizil içsel değişkenlerin (yol modelinde bozuklukların) varyansı 1.0’e eşitlenir → böylece → gizil değişkenin varyansı standartlaştırılmış ölçekte olur.
Yetersiz tanımlanan bir modelde serbest model parametrelerinin sayısı gözlem sayısından büyüktür → diğer bir ifadeyle modelin serbestlik derecesi sıfırdan KÜÇÜKtür (sd < 0).
Yetersiz tanımlanan bir model → test EDİLEMEZ ve YENİDEN tanımlanması gerekir.
Gözlem eksikliğinin tanımlanmamaya nasıl yol açtığının bir örneği aşağıda verilmiştir:
\(a + b = 6\)
Verilen eşitlik bir model olarak ele alınırsa, “6” gözlem, a ve b de parametrelerdir.
Eşitlikte parametre sayısı (2), gözlem sayısından (1) daha fazla olduğundan,her bir parametre için tek bir çözüm bulmak imkansızdır.
a ve b parametreleri için eşitliği sağlayacak sonsuz sayıda çözüm vardır:
Yetersiz tanımlanan bir yol modeli için program her bir parametreye ait tek bir kestirim üretmeye çalışırken de benzer bir durum söz konusudur.
Ancak tanımlanan bir modelde parametre sayısı ve gözlem sayısı birbirine eşittir → diğer bir ifadeyle modelin serbestlik derecesi SIFIR EŞİTtir (sd = 0) ve model tanımlanır; → kuramsal olarak her parametrenin → TEK bir çözümü vardır.
Ancak tanımlanmanın bir örneği aşağıda verilmiştir:
\(a + b = 6\)
\(2a + b = 10\)
Verilen eşitlikler bir model olarak ele alınırsa, “6” ve “10” gözlemler, a ve b de parametrelerdir.
Eşitlikte parametre sayısı (2), gözlem sayısına (2) eşit olduğundan, her bir parametre için tek bir çözümü bulunmaktadır.
(a = 4, b = 2)
Parametre kestirimleri verildiğinde gözlemler mükemmel bir şekilde üretilir.
Ancak tanımlanan bir yol modeli için program her bir parametreye ait tek bir kestirim üretmekle kalmayıp model veriye mükemmel uyum sağlayacaktır.
Aşırı tanımlanan bir modelde parametre sayısı, → gözlem sayısından küçüktür, → diğer bir ifadeyle modelin serbestlik derecesi sıfırdan büyüktür (sd > 0), kuramsal olarak → her parametrenin olası bir çok çözümü vardır.
Aşırı tanımlanan bir model için, üretilen kovaryans matrisi örneklem kovaryans matrisini mükemmel bir şekilde üretMEyecektir.
Aşırı tanımlanmanın bir örneği aşağıda verilmiştir:
\(a + b = 6\)
\(2a + b = 10\)
\(3a + b = 12\)
Verilen eşitlikler bir model olarak ele alınırsa, “6”, “10” ve “12” gözlemler, a ve b de parametrelerdir.
Üç eşitliği sağlayacak a ve b değerleri bulunmayabilir.
Bu durumda, her bir parametre için tekbir çözüm aşağıdaki şekilde üretilir:
Gözlemler ve üretilen gözlemler arasındaki farkın karesinin toplamının mümkün olduğunca küçük olacağı pozitif parametre değerleri bulunur.
YEM uygulamalarına ve simülasyon çalışmalarına göre YEM analizinin sonuçlarını rapor ederken sunulacak ve yorumlanacak uyum indeksleri aşağıdaki gibidir:
Model Ki Kare Değeri
Steiger Lind Root Mean Square Error of Approximation (RMSEA) (Steiger, 1990) (%90 güven aralığı ile
Bentler Comparative Fit Index (CFI) (Bentler, 1990)
Standardized Root Mean Square Residual (SRMR)
Uyum indekslerinin değerleri bir modelin sadece ortalama veya genel uyumunu belirtir. Bu nedenle belli bir indeksin değeri uygun bile görünse, modelin belli kısımları veriye zayıf uyum sağlayabilir.
Uyum indeksleri sonuçların kuramsal olarak anlamlı olup olmadığını belirtmezler.
Yeterli uyumu öneren uyum indekslerinin değerleri yordayıcıların yordama güçlerinin de yüksek olduğunu belirtmezler.
Tek bir indeks modelin sadece belli bir yönünü yansıttığından,modelin iyi uyum sağladığını belirtmek için tek başına yeterli olmaz. Bu nedenle, model uyumu birden fazla indeksin değerine dayanarak değerlendirilir.
Uyum hem modelin belli kısımlarında bölgesel olarak hem de genel model ve veri uyuşmasının ne kadar iyi olduğu yönünde global olarak değerlendirilmelidir.
Genel olarak YEM analizinde model uyumu değerlendirilirken, odak tek bir istatistiksel anlamlılık testinde değildir. Çeşitli indeksleri incelerken bütüncül bir yaklaşım kullanılmalıdır.
Çoklu indekslerin kullanılması bir modelin uyumu ile ilgili en doğru yaklaşımı verecektir.
\[ H_0 : \sum = \widehat{\sum} \]
\[ H_A : \sum \neq \widehat{\sum} \]
\[ \begin{align*} H_0 &: \sum_{\text{RES}} = 0 \\ H_A &: \sum_{\text{RES}} \neq 0 \end{align*} \]
\[ T = (n - 1) F_{ML} \]
Burada n → örneklem büyüklüğüdür.
Ancak tanımlanan (just identified) bir model için ki kare değeri genellikle sıfıra eşittir ve serbestlik derecesi yoktur (sd = 0).
Model ki kare değeri arttıkça, aşırı tanımlanan (overidentified) bir modelin uyumu giderek kötüleşir.
Model ki kare değeri arttıkça,modelin veriye uyumu kötüleştiği için model ki kare aslında bir “kötülük uyum” indeksidir.
Geleneksel hipotez testinin aksine, ki kare testinin sıfır hipotezinin reddedilmemesi tercih edilir. Sıfır hipotezinin reddedilmemesi modelin veriye uyduğunu önerir.
Model için ki kare değeri → output dosyasında → “MODEL FIT INFORMATION” bölümünün → başlangıç kısmında yer alır.
Ki kare testi örneklem büyüklüğünden doğrudan etkilenir. Eğer n büyükse ki bu durum YEM için genellikle istenen bir durumdur, → ki kare testine dayanarak modeli zayıf uyumlu gerekçesiyle reddetmek daha olasıdır (gözlenen ve kestirilen kovaryans değerleri arasındaki fark çok minimal düzeyde olsa bile).
Eğer ki kare testine dayalı sıfır hipotezi reddedilirse, → modelin yeterliğini incelemek için diğer indeksler düşünülmelidir.
Eğer n küçükse ve güç eksikliğinden dolayı sıfır hipotezi reddedilmediyse, → diğer uyum indeksleri modelin desteklenip desteklenmemesinde yardımcı olacaktır.
\[ \text{RMSEA} = \sqrt{\frac{\hat{\delta}}{df (n - 1)}} \]
RMSEA indeksi de “kötülük uyum” indeksidir. RMSEA indeksinin → daha yüksek değerleri → daha kötü uyumu belirtir.
RMSEA = 0 değeri → EN İYİ UYUMU belirtir. Ancak → RMSEA = 0 değeri → mükemmel bir uyumu ifade ETMEZ!!
RMSEA uyumu doğrudan serbestlik derecesinin bir fonksiyonu olarak ele alır; modelin tutumunu hesaba katar (ölçülen değişkenlerin sayısına karşılık kestirilen model parametrelerinin sayısı).
RMSEA için önerilen kesme noktaları (Hu & Bentler, 1999):
RMSEA ≤ 0,05 iyi uyumu belirtir.
0,05 < RMSEA < 0,08 kabul edilebilir uyumu belirtir.
RMSEA ≥ 0,08 zayıf uyumu belirtir.
RMSEA tarafından kestirilen evren parametresi (ε) için %90 güven aralığı genellikle YEM yazılımlarının outputunda verilir.
ε için güven aralığı kestirilen merkezi olmayan δ parametresine dayanır ve RMSEA örneklem değeri etrafında simetrik olmayabilir.
Bu güven aralığı nokta kestirimi olarak RMSEA değeri ile ilişkili belirsizlik derecesini yansıtır.
Eğer ε için %90 güven aralığının alt sınırının değeri 0,05’ten küçükse, modelinin evrende tahmini yaklaşık uyuma sahip olduğu hipotezi (H0 : ε0 ≤ 0,05) reddedilmeyecektir.
Root Mean Square Residual (RMR): Bu indeksi hesaplamak için her bir artık öğenin karesi alınır, karelerin toplanmasıyla elde edilen toplam artık sayısına bölünür ve bu ortalama kare artıkların kare kökü alınır.
Standardized Root Mean Square Residual (SRMR): Bu indeks RMR indeksinin hesaplandığı şekilde hesaplanır ancak standartlaştırılmış artıklar kullanılır.
Mplus yazılımının çıktısında RMR indeksinin değeri değil ancak SRMR indeksinin değeri verilir.
Kestirilen SRMR değeri 0,038’dir. 0,038 değeri 0,08 değerinden küçük olduğundan SRMR indeksi model için kabul edilebilir uyum belirtir.
Bir çok indeks araştırmacının modelinin veriye nasıl uyduğunu, modelin uyumunu daha sınırlandırılmış bir modelle karşılaştırarak değerlendirir.
Mplus yazılımında sıfır yol modeli gözlenen değişkenler arasındaki evren kovaryanslarının (dışsal gözlenen değişkenler arasındaki kovaryanslar ve bütün gözlenen değişkenlerin varyansları hariç) sıfır olduğunu varsayar.
Sıfır yol modelinin tanımı diğer YEM yazılımlarında farklı olabilir.
Sıfır modeli değişkenlerin ilişkili olmadığını varsaydığından genellikle araştırmacının modelinden daha yüksek ki kare değerine sahiptir.
Karşılaştırmalı uyum indekslerinden YEM analizlerinde sık kullanılan iki tanesi CFI ve NNFI (TLI) indeksleridir. Ancak iki indeks de örneklem dayanaklı indekslerdir.
\[ \text{CFI} = \frac{\hat{\delta}_{\text{null}} - \hat{\delta}_{\text{researcher}}}{\hat{\delta}_{\text{null}}} = 1 - \frac{\hat{\delta}_{\text{researcher}}}{\hat{\delta}_{\text{null}}} \]
Araştırmacının modeli sıfır modelinden daha iyi uyum sağlarsa, araştırmacının modelinin ki kare değeri sıfır modelinin ki kare değerinden daha küçük olacaktır.
İki model arasındaki fark arttıkça, CFI değeri 1’e daha çok yaklaşacaktır.
CFI = 0 değeri araştırmacının modelinin sıfır modeline göre gelişmediğini belirtir.
CFI değerinin 0,90 veya 0,95’ten daha büyük olması kabul edilebilir uyum için önerilir (Hu & Bentler, 1999).
CFI = 1 değeri mükemmel uyumu belirtmez.
\[ \text{NNFI} = \frac{\frac{T_{\text{null}}}{df_{\text{null}}} - \frac{T_{\text{researcher}}}{df_{\text{researcher}}}}{\frac{T_{\text{null}}}{df_{\text{null}}} - 1} \]
NNFI değerleri 0 ile 1 aralığında değer alır ancak bu aralığın dışında bir değer de alabilir.
NNFI örneklemlerin aynı evrenden alındığı küçük ve orta büyüklükteki verilerin kullanıldığı çalışmalarda kararlı değildir.
Bireysel istatistiksel test belli parametre kestirimlerine dayalı hesaplanır. Hatalı tanımlamanın değerlendirilmesinde kullanışlıdır.
t değeri = parametre kestirimi / standart hata
Normal olarak dağılır.
z istatistiği gibi kullanılır.
Parametrelerin beklenen yönde olup olmadığını ve istatistiksel olarak sıfırdan farklı olup olmadığını değerlendirir.
Anlamlı olmayan parametreler 0’a sabitlenebilir ancak test n ile ilişkilidir.
İdeal olarak artık değerleri küçük ve tek biçimli olmalıdır.
Artık kovaryans matrisini yorumlamak standartlaştırılmış artık kovaryans matrisinden daha zordur.
Standartlaştırılmış artık:
z puanları gibidir.
Hangi değerin büyük olduğunu belirlemek kolaydır (0,05 alfa düzeyinde 1,96 istatistiksel anlamlılık)
Köşegen dışındaki standartlaştırılmış artıkların mutlak değerlerinin ortalaması tipik bir artığı temsil eden bir indeks sağlar.
Hem revised model 1 hem de revised model 2 veriye iyi uyum sağlamaktadır.
Bu durumda hangi model seçilmelidir?
Mükemmel uyum sağlayan ancak daha karmaşık model mi?
İyi uyum sağlayan ancak daha basit model mi?
Ki kare fark testi hiyerarşik olarak kümelenmiş iki modelin karşılaştırılmasında oldukça kullanışlıdır.
Eğer modellerden birisi diğerinin alt kümesiyse iki model kümelenmiştir (daha basit model daha karmaşık modelin içinde kümelenmiştir).
Ki kare fark testi modellerin bağıl uyumlarını değerlendirmek için kullanılabilir.
İki model de veriye iyi uyum sağladığında, ki kare değerleri arasındaki fark serbestlik derecesi iki model arasındaki parametre sayısındaki farka eşit olan ki kare dağılımı gösterir:
\[ \chi^2_{\text{dif}} = \chi^2_{\text{simple}} - \chi^2_{\text{complex}} \]
\[ df_{\text{dif}} = df_{\text{simple}} - df_{\text{complex}} \]
Anlamlı olmayan ki kare farkı daha basit modelin daha karmaşık modelden istatistiksel olarak veriye daha kötü uymadığını önerir.
Akaike Information Criterion (AIC) ve Bayesian Information Criterion (BIC) evren dayanaklı yordayıcı uyum indeksleri olarak bilinir.
Farklı YEM yazılımları AIC ve BIC değerlerini farklı şekilde hesaplayabilir.
AIC ve BIC değerleri çoğunlukla aynı veriden kestirilen hiyerarşik olmayan modellerin arasından seçim yapmak için kullanılır.
data <- PISA %>%
mutate(PVREAD_MEAN = rowMeans(select(., PV1READ:PV10READ), na.rm = TRUE)) %>%
select(JOYREAD, BELONG, ESCS, GFOFAIL, PVREAD_MEAN)
head(data)ESCS: Sosyoekonomik durum endeksi (z-puanı, sürekli) → Bağımsız değişken (exogenous) → Öğrencinin ailesel ve sosyal koşullarını yansıtır. Başarı, motivasyon ve aidiyet üzerinde etkili olabilir.
GFOFAIL: Başarısızlık korkusu (Likert tipi sürekli) → Bağımsız değişken → Başarısızlık korkusu hem ESCS hem aidiyet ve okuma sevgisinden etkilenebilir. Başarıyı da etkileyebilir.
JOYREAD: Okuma sevgisi endeksi (Likert tipi sürekli değişken) → Ara değişken (mediator) → Okuma sevgisi, hem sosyoekonomik durumdan etkilenebilir hem de okuma başarısını etkileyebilir.
BELONG: Okula aidiyet hissi skoru → Ara değişken (mediator) → Psikososyal bir değişken olarak aidiyet, hem sosyal kökenlerden hem de akademik sonuçlardan etkilenebilir.
PVREAD_MEAN: Okuma başarısının 10 olası değerden (PV) ortalaması → Bağımlı değişken (outcome) → Nihai sonuç değişkeni olarak değerlendirilir. Tüm yapısal yollar buraya bağlanabilir.
library(lavaan)
yol_model <- 'JOYREAD ~ ESCS + GFOFAIL
BELONG ~ ESCS + GFOFAIL + PVREAD_MEAN + JOYREAD
PVREAD_MEAN ~ ESCS + GFOFAIL
ESCS ~~ GFOFAIL'
yol_fit <- sem(yol_model, data)
yol_fit## lavaan 0.6-19 ended normally after 14 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 14
##
## Number of observations 4838
##
## Model Test User Model:
##
## Test statistic 363.533
## Degrees of freedom 1
## P-value (Chi-square) 0.000
library(semPlot)
semPaths(yol_fit, rotation = 2, curvePivot = TRUE, sizeMan = 12, sizeInt = 1, sizeLat = 4, edge.label.cex = 1.8, pastel = TRUE, nCharNodes = 0, nCharEdges = 0)semPaths(
object = yol_fit, layout = "tree", what = "std", whatLabels = "std", edge.label.cex = 1.0, edge.label.position = 0.5, edge.color = "black", color = list(
lat = "white", man = "#ADD8E6"),
sizeMan = 9, sizeLat = 5, sizeInt = 0.8, pastel = TRUE, mar = c(5, 5, 5, 5), rotation = 2, curvePivot = TRUE, nCharNodes = 0, nCharEdges = 0, title = FALSE)node_order <- c("ESCS", "GFOFAIL", "JOYREAD", "BELONG", "PVREAD_MEAN")
node_positions <- matrix(c(
-3, 0.5, # ESCS (solda üstte)
-3, -0.5, # GFOFAIL (solda altta)
0, 0.5, # JOYREAD (ortada üstte)
0, -0.5, # BELONG (ortada altta)
3, 0 # PVREAD_MEAN (sağda ortada)
), byrow = TRUE, ncol = 2)library(semPlot)
semPaths(
object = yol_fit,
what = "std", whatLabels = "std", layout = node_positions, nodeLabels = c("ESCS", "GFOFAIL", "JOYREAD", "BELONG", "PVREAD_MEAN"),
edge.label.cex = 1.2, edge.label.position = 0.5, edge.color = "gray30", edge.width = 0.5, edge.label.bg = "white", color = list(lat = "white", man = "#ADD8E6"), sizeMan = 10, sizeLat = 5, sizeInt = 1, pastel = TRUE, mar = c(5, 5, 5, 5), rotation = 1, curvePivot = TRUE, nCharNodes = 0, nCharEdges = 0, title = FALSE)Dışsal (Exogenous) Değişken: Nedenleri bilinmeyen ve modelde gösterilmeyen değişkendir. Dışsal değişken değişkenlik göstermekte serbesttir.
İçsel (Endogenous) Değişken: Varsayılan nedenleri modelde açıkça gösterilen değişkendir. İçsel değişken değişkenlik göstermekte serbest değildir.
Her içsel değişkenin bozukluğu (disturbance) vardır ve bozukluk (disturbance) modelde D sembolü ile gösterilir.
Bozukluk model için → hata (artık) terimidir ve içsel değişkende → gözlenen varyansın açıklanmayan kısmını temsil eder.
Bozukluk ilgili içsel değişkenin ölçülemeyen bütün nedenlerini temsil eden bileşik bir değişkendir.
Model ele alındığında bu nedenlerin doğası ve sayısı bilinmediğinden bozukluklar gizil değişkenler olarak düşünülebilir ve çember sembolü ile temsil edilirler.
Gizil Değişkenler:
doğrudan ölçülmezler.
bir değer alamayabilirler.
daha doğrudan ölçülebilen değişkenleri etkilediklerine inanılır.
Yapısal eşitlik modelinde iki tür gizil değişken vardır:
faktör veya yapı
artık veya bozukluk
library(png)
library(grid)
img <- readPNG("C:/Users/User/Desktop/Yol_gosterge.png")
grid::grid.raster(img)Bir değişkenin diğer bir değişken üzerindeki doğrudan etkisi (direct effect) olup okun kuyruğundaki değişkenin okun başındaki değişkeni etkilediği varsayılır. Doğrudan etki yol olarak da adlandırılır.
Örneğin, ESCS’nin PVREAD_MEAN üzerindeki doğrudan etkisi
Örneğin, GFOFAIL’nin PVREAD_MEAN üzerindeki doğrudan etkisi (ölçülmeyen bütün nedenlerin PVREAD_MEAN üzerindeki doğrudan etkisi)
Doğrudan etkilerin istatistiksel kestirimi → yol katsayıları (path coefficients) olup çoklu regresyondaki regresyon katsayıları gibi yorumlanır.
Bozukluk ve y1 yolunda gözüken 1 sayısı ölçekleme sabitidir (scaling constant), standartlaştırılmamış artık yol katsayısı (unstandardized residual path coefficient) olarak da adlandırılır ve bozukluğa bir ölçek atandığını gösterir.
Bozukluklar gizil olduğu ve gizil değişkenler de program onlarla ilgili herhangi bir kestirimde bulunmadan önce ölçeğe ihtiyaç duyduklarından böyle bir sabit atanır.
İki dışsal değişken arasındaki analiz edilmeyen ilişki
Bir dışsal değişkenin varyansı
Bir bozuklugun varyansı
Bir dışsal veya içsel bir değişken diğer bir içsel değişkenin doğrudan nedeni olabilir.
ESCS → BELONG
GFOFAIL → BELONG
ESCS → JOYREAD
GFOFAIL → JOYREAD
BELONG → PVREAD_MEAN
JOYREAD → PVREAD_MEAN
ESCS → PVREAD_MEAN
GFOFAIL → PVREAD_MEAN
Bazı içsel değişkenlerin yol modelinde hem bağımsız hem de bağımlı değişken olarak → ikili rolü vardır. Bu değişkenlere arabulucu değişkenler adı verilir.
JOYREAD
BELONG
Arabulucu değişkenler kendilerinden önceki değişkenlerin nedensel etkilerinin bir kısmını kendilerinden sonraki değişkenlere iletirler, böyle etkilere dolaylı etkiler adı verilir.
ESCS → JOYREAD → PVREAD_MEAN
GFOFAIL→ JOYREAD → PVREAD_MEAN
ESCS → BELONG → PVREAD_MEAN
GFOFAIL → BELONG → PVREAD_MEAN
chisq_values <- fitMeasures(yol_fit, fit.measures = c("chisq", "df", "pvalue"))
chisq_table <- data.frame(
"Gostergeler" = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri"),
"Deger" = round(as.numeric(chisq_values), 3))
chisq_table %>%
kable("html", caption = "Tablo 1. Ki-Kare Uyum Testi Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) | Gostergeler | Deger |
|---|---|
| Ki-kare (χ²) | 363.533 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
sd = 1 için ki-karenin 0.05 alfa düzeyindeki kritik değeri 3.84’tür. 363.533 değeri 3.84 değerinden büyük olduğundan gözlenen kikare değeri (363.533)
0.05 alfa düzeyinde istatistiksel olarak anlamlıdır.
363.533 değerini elde etme olasılığını da verir. Örnekte bu olasılık 0.0005’tir. Bu değer 0.05 alfa düzeyinden küçüktür.
Ki-kare testi örneklem büyüklüğünden doğrudan etkilenir. Eğer n büyükse ki bu durum YEM için genellikle istenen bir durumdur, ki-kare testine dayanarak modeli zayıf uyumlu gerekçesiyle reddetmek daha olasıdır (gözlenen ve kestirilen kovaryans değerleri arasındaki fark çok minimal düzeyde olsa bile).
Eğer ki-kare testine dayalı sıfır hipotezi reddedilirse, modelin yeterliğini incelemek için diğer indeksler düşünülmelidir.
Eğer n küçükse ve güç eksikliğinden dolayı sıfır hipotezi reddedilmediyse, diğer uyum indeksleri modelin desteklenip desteklenmemesinde yardımcı olacaktır.
Ki-kare testi örneklem büyüklüğüne bağlılığından dolayı iyilik uyumunun değerlendirilmesi için çok ideal DEĞİLdir.
Model ki-kare değerinin örneklem büyüklüğüne hassasiyetini azaltmak için bazı araştırmacılar bu değeri ilgili serbestlik derecesine bölerler.
Ancak bu değerin yorumlanması için → minimum kabul edilebilirlik düzeyini temsil edecek net bir kesim değeri YOKtur.
Root Mean Square Error of Approximation (RMSEA) → serbestlik derecesinin bir fonksiyonu olarak → uyumu değerlendiren bir indekstir.
RMSEA için önerilen kesme noktaları (Hu & Bentler, 1999):
RMSEA ≤ 0.05 → İYİ uyumu belirtir.
0.05 < RMSEA < 0.08 → KABUL EDİLEBİLİR uyumu belirtir.
RMSEA ≥ 0.08 → ZAYIF uyumu belirtir.
RMSEA tarafından kestirilen evren parametresi ϵ için → %90 güven aralığı genellikle YEM yazılımlarının çıktısında verilir.
ϵ için güven aralığı kestirilen merkezi olmayan → δ parametresine dayanır ve RMSEA örneklem değeri etrafında simetrik OLMAYABİLİR.
Bu güven aralığı → nokta kestirimi olarak RMSEA değeri ile ilişkili → belirsizlik derecesini yansıtır.
Eğer ϵ için %90 güven aralığının alt sınırının değeri 0,05’ten KÜÇÜK ise, → modelinin evrende tahmini yaklaşık uyuma sahip olduğu hipotezi H0 : ϵ0 ≤ 0.05 reddedilmeyecektir.
Çıktıda kestirilen RMSEA değeri ve ilgili → %90 güven aralığı (90% C.I.) verilir.
rmsea_values <- fitMeasures(yol_fit, c("rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "rmsea.pvalue"))
rmsea_table <- data.frame(
"Gostergeler" = c(
"RMSEA",
"RMSEA Alt Guven Siniri (90%)",
"RMSEA Ust Guven Siniri (90%)",
"RMSEA p-degeri (H0: RMSEA <= 0.05)"),
"Deger" = round(as.numeric(rmsea_values), 3))
rmsea_table %>%
kable("html", caption = "Tablo 2. RMSEA Uyum Iyiligi Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) | Gostergeler | Deger |
|---|---|
| RMSEA | 0.274 |
| RMSEA Alt Guven Siniri (90%) | 0.250 |
| RMSEA Ust Guven Siniri (90%) | 0.298 |
| RMSEA p-degeri (H0: RMSEA <= 0.05) | 0.000 |
Modelin RMSEA değeri → 0.274 olarak bulunmuştur ve bu değer → 0.08’lik kabul edilebilir sınırın oldukça üzerindedir.
RMSEA’nın %90 güven aralığı [0.250, 0.298] olup → TAMAMI KÖTÜ uyum aralığında yer almaktadır.
Ayrıca, RMSEA için hesaplanan p-değeri 0.000’dır (H0: RMSEA ≤ 0.05) → bu da modelin veriyle iyi uyum GÖSTERMEDİĞİNİ istatistiksel olarak ortaya koymaktadır.
Standardized Root Mean Square Residual (SRMR): Bu indeks RMR indeksinin hesaplandığı şekilde hesaplanır ancak standartlaştırılmış artıklar kullanılır.
srmr_value <- fitMeasures(yol_fit, "srmr")
srmr_table <- data.frame(
"Gostergeler" = "SRMR (Standartlastirilmis Ortalama Karekok Artik)",
"Deger" = round(as.numeric(srmr_value), 3))
srmr_table %>%
kable("html", caption = "Tablo 3. SRMR Uyum Iyiliği Gostergesi", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Gostergeler | Deger |
|---|---|
| SRMR (Standartlastirilmis Ortalama Karekok Artik) | 0.064 |
Modelin SRMR değeri → 0.064’tür.
Bu değer 0.08’in ALTINDA kalarak → modelin KABUL EDİLEBİLİR düzeyde uyum sağladığını göstermektedir.
SRMR → gözlemlenen ve model tarafından tahmin edilen kovaryanslar arasındaki farkların küçük olduğunu ve modelin veriye genel olarak uygun olduğunu işaret eder.
SRMR açısından model uygun → KABUL EDİLEBİLİR sınırlar içerisindedir.
Ancak daha önce belirttiğin RMSEA değeri oldukça yüksek olduğu için bu çelişki → modelde bazı yapısal sorunlar olabileceğini düşündürür.
Birden fazla uyum ölçütü birlikte değerlendirilmelidir.
Bir çok indeks araştırmacının modelinin veriye nasıl uyduğunu, modelin uyumunu daha sınırlandırılmış bir modelle karşılaştırarak değerlendirir.
Sıfır yol modeli → gözlenen değişkenler arasındaki evren kovaryanslarının (dışsal gözlenen değişkenler arasındaki kovaryanslar ve bütün gözlenen değişkenlerin varyansları hariç) SIFIR olduğunu varsayar.
Sıfır modeli → değişkenlerin ilişkili olmadığını varsaydığından genellikle araştırmacının modelinden → daha yüksek ki-kare değerine sahiptir.
Karşılaştırmalı uyum indekslerinden YEM analizlerinde sık kullanılan iki → tanesi CFI ve NNFI (TLI) indeksleridir.
cfi_values <- fitMeasures(yol_fit, fit.measures = c("cfi", "tli", "nnfi"))
cfi_table <- data.frame(
"Gostergeler" = c(
"CFI (Karsilastirmali Uyum Indeksi)",
"TLI (Tucker-Lewis Indeksi)",
"NNFI (Non-Normed Fit Index)"),
"Deger" = round(as.numeric(cfi_values), 3))
cfi_table %>%
kable("html", caption = "Tablo 4. CFI, TLI ve NNFI Uyum Iyiliği Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Gostergeler | Deger |
|---|---|
| CFI (Karsilastirmali Uyum Indeksi) | 0.780 |
| TLI (Tucker-Lewis Indeksi) | -1.201 |
| NNFI (Non-Normed Fit Index) | -1.201 |
CFI (Karşılaştırmalı Uyum İndeksi): 0.780 → Zayıf uyum – Kabul edilebilir eşik olan 0.90’ın oldukça altında
TLI (Tucker-Lewis İndeksi): -1.201 → Geçersiz ve ÇOK KÖTÜ uyum – Negatif değer modelin kötü yapılandırıldığını gösterir
NNFI (Non-Normed Fit Index = TLI): -1.201 → TLI ile aynıdır – Negatif olması modelin KÖTÜ uyumunu işaret eder
Modelin CFI değeri 0.780 olarak bulunmuştur → bu değer 0.90 sınırının altında kalarak modelin ZAYIF uyum sağladığını göstermektedir.
TLI ve NNFI değerleri ise → -1.201 gibi NEGATİF ve istatistiksel olarak GEÇERSİZ sonuçlar vermiştir.
Bu durum, modelin veriyle ÇOK KÖTÜ uyum sağladığını → hatta bazı yapısal hataların bulunduğunu göstermektedir.
Modelin istatistiksel olarak manidar düzeyde UYUMSUZ olduğunu ve yeniden yapılandırılması gerektiğini gösterir. :( :(
Tek bir indeks model uyumunun sadece belli bir yönünü yansıtır.
Model ki-kare değeri: anlamlı olmayan sonuç
full_fit <- fitMeasures(yol_fit, fit.measures = c(
"chisq", "df", "pvalue",
"cfi", "tli",
"rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
"srmr"))
fit_table <- data.frame(
"Gostergeler" = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri",
"CFI (Karsilastirmali Uyum Indeksi)",
"TLI (Tucker-Lewis Indeksi)",
"RMSEA",
"RMSEA Alt Guven Siniri (90%)",
"RMSEA Ust Guven Siniri (90%)",
"SRMR (Standartlastirilmis Ortalama Karekok Artik)"),
"Deger" = round(as.numeric(full_fit), 3))
fit_table %>%
kable("html", caption = "Tablo 5. Modelin Uyum Iyiliği Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Gostergeler | Deger |
|---|---|
| Ki-kare (χ²) | 363.533 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
| CFI (Karsilastirmali Uyum Indeksi) | 0.780 |
| TLI (Tucker-Lewis Indeksi) | -1.201 |
| RMSEA | 0.274 |
| RMSEA Alt Guven Siniri (90%) | 0.250 |
| RMSEA Ust Guven Siniri (90%) | 0.298 |
| SRMR (Standartlastirilmis Ortalama Karekok Artik) | 0.064 |
Modelin uyum istatistikleri incelendiğinde → χ²(1) = 363.533, p < 0.001 sonucu → modelin veriye mükemmel uyum SAĞLAMADIĞIBI göstermektedir.
CFI (0.780) ve TLI (-1.201) değerleri → kabul edilebilir eşiklerin oldukça ALTINDAdır.
Özellikle negatif TLI değeri → modelin ciddi biçimde HATALI tanımlandığını göstermektedir.
RMSEA = 0.274 olup güven aralığı [0.250, 0.298] arasında yer almaktadır → bu değerler modelin ÇOK KÖTÜ uyum sağladığını göstermektedir.
Sadece SRMR = 0.064 ile → KABUL edilebilir düzeyde kalmıştır.
Ancak genel olarak model → uyum açısından → YETERSİZ ve YENİDEN yapılandırılmalıdır.
Bireysel istatistiksel test belli parametre kestirimlerine dayalı hesaplanır. Hatalı tanımlamanın değerlendirilmesinde kullanışlıdır.
t-değeri = parametre kestirimi / standart hata
Normal dağılır.
z-istatistiği gibi kullanılır.
Parametrelerin beklenen yönde olup olmadığını ve istatistiksel olarak sıfırdan farklı olup olmadığını değerlendirir.
Anlamlı OLMAYAN parametreler 0’a SABİTlenir ancak test n ile ilişkilidir.
Ancak bir parametrenin sabitlenmesi → diğer bütün kestirimleri değiştirecektir. Bu da hatalı tanımlamadan dolayı hatalara sebep olabilir.
İdeal olarak artık değerleri → KÜÇÜK ve TEK biçimli olmalıdır.
Artık kovaryans matrisini → yorumlamak → standartlaştırılmış artık kovaryans matrisinden daha zordur.
Standartlaştırılmış artık:
z-puanları gibidir.
Hangi değerin büyük olduğunu belirlemek kolaydır (0.05 alfa düzeyinde 1.96 istatistiksel anlamlılık)
Köşegen dışındaki standartlaştırılmış artıkların mutlak değerlerinin ortalaması → tipik bir artığı temsil eden bir indeks sağlar.
## $type
## [1] "normalized"
##
## $cov
## JOYREA BELONG PVREAD ESCS GFOFAI
## JOYREAD 0.000
## BELONG 0.453 -0.053
## PVREAD_MEAN 16.360 -1.404 0.000
## ESCS 0.000 0.000 0.000 0.000
## GFOFAIL 0.000 0.000 0.000 0.000 0.000
resid_matrix <- resid(yol_fit, type = "normalized")$cov
resid_df <- as.data.frame(resid_matrix)
resid_df <- round(resid_df, 3)
resid_df <- cbind(Variable = rownames(resid_df), resid_df)
kable(resid_df, format = "html",
caption = "Table 6. Normalized Residual Covariance Matrix", align = "c") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Variable | JOYREAD | BELONG | PVREAD_MEAN | ESCS | GFOFAIL | |
|---|---|---|---|---|---|---|
| JOYREAD | JOYREAD | 0.000 | 0.453 | 16.360 | 0 | 0 |
| BELONG | BELONG | 0.453 | -0.053 | -1.404 | 0 | 0 |
| PVREAD_MEAN | PVREAD_MEAN | 16.360 | -1.404 | 0.000 | 0 | 0 |
| ESCS | ESCS | 0.000 | 0.000 | 0.000 | 0 | 0 |
| GFOFAIL | GFOFAIL | 0.000 | 0.000 | 0.000 | 0 | 0 |
JOYREAD ↔︎ PVREAD_MEAN: 16.360 → Çok büyük! Model bu ilişkiyi HİÇ açıklayamamış. Modelde bu iki değişken arasında DOĞRUDAN BİR YOL EKLENMESİ gerekebilir.
BELONG ↔︎ PVREAD_MEAN: –1.404 → Orta düzey negatif sapma. Henüz 1.96 sınırını geçmemiş ama DİKKAT!
JOYREAD ↔︎ BELONG: 0.453 → Düşük düzeyde artık → açıklanabilmiş ilişkidir.
Diğer tüm hücreler: 0.000 → Model bu ilişkileri tamamen açıklamış, artık YOK.
Normalize edilmiş artık kovaryans matrisi incelendiğinde → JOYREAD ile PVREAD_MEAN değişkenleri arasındaki artık değeri 16.360’tır.
Bu değer oldukça yüksek olup → modelin bu iki değişken arasındaki ilişkiyi yetersiz biçimde açıkladığını göstermektedir.
Diğer değişken çiftleri arasında → anlamlı artık gözlenMEmiştir.
Bu bulgular, modelin yapısında JOYREAD → PVREAD_MEAN yönünde → doğrudan bir yolun eksik olabileceğini işaret etmektedir.
modindices fonksiyonu ile modifikasyon indeksleri istenebilir.
mi sütunu yapılacak modifikasyon sonucunda → ki-karedeki DÜŞÜŞÜ göstermektedir.
mod_index <- modindices(yol_fit, sort = TRUE)
mod_index_filtered <- mod_index %>%
filter(mi > 3.84) %>%
arrange(desc(mi)) %>%
select(lhs, op, rhs, mi, epc) %>%
mutate(
mi = round(mi, 4),
epc = round(epc, 4))
colnames(mod_index_filtered) <- c(
"Sol Degisken", "Islem", "Sag Degisken",
"Modifikasyon Indeksi (MI)",
"Tahmini Parametre Degeri (EPC)")
kable(mod_index_filtered,
format = "html",
caption = "Tablo 7. Model Icin Modifikasyon Indeksleri (MI > 3.84)",
align = "c") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1:3, bold = TRUE)| Sol Degisken | Islem | Sag Degisken | Modifikasyon Indeksi (MI) | Tahmini Parametre Degeri (EPC) |
|---|---|---|---|---|
| PVREAD_MEAN | ~ | JOYREAD | 350.2104 | 24.9629 |
| JOYREAD | ~~ | PVREAD_MEAN | 350.2104 | 27.4680 |
| JOYREAD | ~ | PVREAD_MEAN | 350.2104 | 0.0029 |
| JOYREAD | ~ | BELONG | 350.2104 | 12.0554 |
PVREAD_MEAN → JOYREAD: Regresyon (~) → 350.2104 → 24.9629 → Çok yüksek etki – mutlaka eklenmeli!!
JOYREAD ~~ PVREAD_MEAN: Kovaryans (~~) → 350.2104 → 27.4680 → Aralarında güçlü ilişki var – eklenmeli veya doğrudan yol düşünülmeli!!
JOYREAD → PVREAD_MEAN: Regresyon (~) → 350.2104 → 0.0029 → MI yüksek ama EPC çok düşük → istatistiksel MANİDARlık var ama etkisi İHMAL EDİLEBİLİR düzeyde
JOYREAD ~~ BELONG: Kovaryans (~~) → 350.2104 → 12.0554 → Orta-yüksek düzeyde ilişki – eklenebilir.
Modelin modifikasyon indeksleri incelendiğinde, özellikle JOYREAD ile PVREAD_MEAN arasında hem kovaryans hem de yönlü etkiler açısından çok yüksek MI değerleri (0.350) ve EPC’ler (~25) gözlenmiştir.
Bu, modelin bu iki değişken arasındaki ilişkiyi yeterince temsil etmediğini ve bu yolların eklenmesinin modeli ciddi şekilde iyileştireceğini göstermektedir.
Ayrıca JOYREAD ile BELONG arasında da MI değeri oldukça yüksektir (MI = 350.21, EPC = 12.06), bu da bu değişkenler arasındaki kovaryansın modele dahil edilmesinin uygun olacağını göstermektedir.
yol_model_v1 <- 'JOYREAD ~ ESCS + GFOFAIL
BELONG ~ ESCS + GFOFAIL + PVREAD_MEAN + JOYREAD
PVREAD_MEAN ~ ESCS + GFOFAIL
ESCS ~~ GFOFAIL
JOYREAD ~~ PVREAD_MEAN'
yol_fit_v1 <- sem(yol_model_v1, data)
yol_fit_v1## lavaan 0.6-19 ended normally after 29 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 15
##
## Number of observations 4838
##
## Model Test User Model:
##
## Test statistic 0.000
## Degrees of freedom 0
semPaths(yol_fit_v1, rotation = 2, curvePivot = TRUE,
sizeMan = 12, sizeInt = 1, sizeLat = 4, edge.label.cex = 1.8, pastel = TRUE, nCharNodes = 0, nCharEdges = 0)semPaths(
object = yol_fit_v1,
what = "std", whatLabels = "std", layout = "tree", edge.label.cex = 1.1, edge.label.bg = "white", edge.label.position = 0.5, edge.color = "black", edge.width = 0.4, curvePivot = TRUE, color = list(
lat = "white",
man = "#ADD8E6"),
sizeMan = 7, sizeLat = 4, sizeInt = 1, pastel = TRUE, mar = c(5, 5, 5, 5), rotation = 1, nCharNodes = 0, nCharEdges = 0, title = FALSE)Yeni tanımlanan model için verilen uyum indeksleri beklendiği gibidir.
Kikare = 0 ve sd = 0 olduğunda → p değerini 0.0000 olarak yazdırır. Ancak bu değer ki kare testinin reddedildiği anlamına GELMEZ!
## chisq df
## 0 0
chisq_table_v1 <- data.frame(
"Gostergeler" = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri"),
"Deger" = round(as.numeric(chisq_values), 3))
chisq_table_v1 %>%
kable("html", caption = "Tablo A. v1 Ki-Kare Uyum Testi Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) | Gostergeler | Deger |
|---|---|
| Ki-kare (χ²) | 363.533 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
p_pa <-
semPaths(yol_fit_v1, whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",layout = "spring" ,
nCharNodes = 0, nCharEdges = 0)p_pa <- semPaths(
object = yol_fit_v1,
what = "std", whatLabels = "std", style = "ram", layout = "spring", edge.label.cex = 1.2, edge.label.position = 0.5, edge.label.bg = "white", edge.color = "gray30", edge.width = 0.5,
color = list(
lat = "white",
man = "#D6EAF8"),
sizeMan = 10, sizeLat = 6, sizeInt = 1, pastel = TRUE,
mar = c(5, 5, 5, 5),
rotation = 1, curvePivot = TRUE, nCharNodes = 0, nCharEdges = 0, title = FALSE)Anlamlı olmayan yol katsayıları kaldırıldır.
HEPSİ ANLAMLI!!
yol_model_v3 <- '
JOYREAD ~ ESCS + GFOFAIL
PVREAD_MEAN ~ ESCS + GFOFAIL + JOYREAD
BELONG ~ ESCS + GFOFAIL + JOYREAD + PVREAD_MEAN
ESCS ~~ GFOFAIL
'
yol_fit_v3 <- sem(yol_model_v3, data)
yol_fit_v3## lavaan 0.6-19 ended normally after 13 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 15
##
## Number of observations 4838
##
## Model Test User Model:
##
## Test statistic 0.000
## Degrees of freedom 0
semPaths(yol_fit_v3, rotation = 2, curvePivot = TRUE,
sizeMan = 12, sizeInt = 1, sizeLat = 4, edge.label.cex = 1.8, pastel = TRUE, nCharNodes = 0, nCharEdges = 0)semPaths(
object = yol_fit_v3,
what = "std", whatLabels = "std", layout = "tree", edge.label.cex = 1.1, edge.label.bg = "white", edge.label.position = 0.5, edge.color = "black", edge.width = 0.4, curvePivot = TRUE, color = list(
lat = "white",
man = "#ADD8E6"),
sizeMan = 7, sizeLat = 4, sizeInt = 1, pastel = TRUE, mar = c(5, 5, 5, 5), rotation = 1, nCharNodes = 0, nCharEdges = 0, title = FALSE)## chisq df
## 0 0
chisq_table_v3 <- data.frame(
"Gostergeler" = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri"),
"Deger" = round(as.numeric(chisq_values), 3))
chisq_table_v3 %>%
kable("html", caption = "Tablo A. v1 Ki-Kare Uyum Testi Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) | Gostergeler | Deger |
|---|---|
| Ki-kare (χ²) | 363.533 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
p_pa_3 <-
semPaths(yol_fit_v3, whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",layout = "spring" ,
nCharNodes = 0, nCharEdges = 0)p_pa_3 <- semPaths(
object = yol_fit_v3,
what = "std", whatLabels = "std", style = "ram", layout = "spring", edge.label.cex = 1.2, edge.label.position = 0.5, edge.label.bg = "white", edge.color = "gray30", edge.width = 0.5,
color = list(
lat = "white",
man = "#D6EAF8"),
sizeMan = 10, sizeLat = 6, sizeInt = 1, pastel = TRUE,
mar = c(5, 5, 5, 5),
rotation = 1, curvePivot = TRUE, nCharNodes = 0, nCharEdges = 0, title = FALSE)lavaan::fitMeasures(yol_fit_v3, fit.measures = c(
"chisq", "df", "pvalue",
"cfi", "tli",
"rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
"srmr"))## chisq df pvalue cfi tli
## 0 0 NA 1 1
## rmsea rmsea.ci.lower rmsea.ci.upper srmr
## 0 0 0 0
yol_model_v4 <- '
JOYREAD ~ ICTHOME + ESCS
BELONG ~ ICTHOME + JOYREAD
PVREAD_MEAN ~ JOYREAD + BELONG + ESCS
ESCS ~~ ICTHOME
'
yol_fit_v4 <- sem(yol_model_v4, PISA)
yol_fit_v4## lavaan 0.6-19 ended normally after 14 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 13
##
## Number of observations 4838
##
## Model Test User Model:
##
## Test statistic 50.910
## Degrees of freedom 2
## P-value (Chi-square) 0.000
semPaths(yol_fit_v4, rotation = 2, curvePivot = TRUE,
sizeMan = 12, sizeInt = 1, sizeLat = 4, edge.label.cex = 1.8, pastel = TRUE, nCharNodes = 0, nCharEdges = 0)semPaths(
object = yol_fit_v4,
what = "std", whatLabels = "std", layout = "tree", edge.label.cex = 1.1, edge.label.bg = "white", edge.label.position = 0.5, edge.color = "black", edge.width = 0.4, curvePivot = TRUE, color = list(
lat = "white",
man = "#ADD8E6"),
sizeMan = 7, sizeLat = 4, sizeInt = 1, pastel = TRUE, mar = c(5, 5, 5, 5), rotation = 1, nCharNodes = 0, nCharEdges = 0, title = FALSE)## chisq df
## 50.91 2.00
chisq_table_v4 <- data.frame(
"Gostergeler" = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri"),
"Deger" = round(as.numeric(chisq_values), 3))
chisq_table_v4 %>%
kable("html", caption = "Tablo E. v4 Ki-Kare Uyum Testi Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) | Gostergeler | Deger |
|---|---|
| Ki-kare (χ²) | 363.533 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
p_pa_4 <-
semPaths(yol_fit_v4, whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",layout = "spring" ,
nCharNodes = 0, nCharEdges = 0)p_pa_4 <- semPaths(
object = yol_fit_v4,
what = "std", whatLabels = "std", style = "ram", layout = "spring", edge.label.cex = 1.2, edge.label.position = 0.5, edge.label.bg = "white", edge.color = "gray30", edge.width = 0.5,
color = list(
lat = "white",
man = "#D6EAF8"),
sizeMan = 10, sizeLat = 6, sizeInt = 1, pastel = TRUE,
mar = c(5, 5, 5, 5),
rotation = 1, curvePivot = TRUE, nCharNodes = 0, nCharEdges = 0, title = FALSE)fit_stats_4 <- fitMeasures(yol_fit_v4, fit.measures = c(
"chisq", "df", "pvalue",
"cfi", "tli",
"rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
"srmr"))
fit_stats_4## chisq df pvalue cfi tli
## 50.910 2.000 0.000 0.978 0.891
## rmsea rmsea.ci.lower rmsea.ci.upper srmr
## 0.071 0.055 0.089 0.023
yol_fit_v4_rev <- sem(yol_model_final, data = PISA)
summary(yol_fit_v4_rev, fit.measures = TRUE, standardized = TRUE)## lavaan 0.6-19 ended normally after 15 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 9
##
## Number of observations 4838
##
## Model Test User Model:
##
## Test statistic 18.818
## Degrees of freedom 1
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 2142.955
## Degrees of freedom 6
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.992
## Tucker-Lewis Index (TLI) 0.950
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -52850.261
## Loglikelihood unrestricted model (H1) -52840.852
##
## Akaike (AIC) 105718.521
## Bayesian (BIC) 105776.879
## Sample-size adjusted Bayesian (SABIC) 105748.281
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.061
## 90 Percent confidence interval - lower 0.039
## 90 Percent confidence interval - upper 0.086
## P-value H_0: RMSEA <= 0.050 0.195
## P-value H_0: RMSEA >= 0.080 0.110
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.016
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## JOYREAD ~
## ICTHOME -0.043 0.008 -5.382 0.000 -0.043 -0.085
## ESCS 0.181 0.017 10.820 0.000 0.181 0.171
## PVREAD_MEAN ~
## JOYREAD 26.192 1.291 20.291 0.000 26.192 0.265
## ESCS 32.159 1.367 23.525 0.000 32.159 0.308
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ICTHOME ~~
## ESCS 0.920 0.033 27.657 0.000 0.920 0.433
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .JOYREAD 1.105 0.022 49.183 0.000 1.105 0.976
## .PVREAD_MEAN 8957.266 182.120 49.183 0.000 8957.266 0.813
## ICTHOME 4.464 0.091 49.183 0.000 4.464 1.000
## ESCS 1.009 0.021 49.183 0.000 1.009 1.000
semPaths(yol_fit_v4_rev, rotation = 2, curvePivot = TRUE,
sizeMan = 12, sizeInt = 1, sizeLat = 4, edge.label.cex = 1.8, pastel = TRUE, nCharNodes = 0, nCharEdges = 0)semPaths(
object = yol_fit_v4_rev,
what = "std", whatLabels = "std", layout = "tree", edge.label.cex = 1.1, edge.label.bg = "white", edge.label.position = 0.5, edge.color = "black", edge.width = 0.4, curvePivot = TRUE, color = list(
lat = "white",
man = "#ADD8E6"),
sizeMan = 7, sizeLat = 4, sizeInt = 1, pastel = TRUE, mar = c(5, 5, 5, 5), rotation = 1, nCharNodes = 0, nCharEdges = 0, title = FALSE)## chisq df
## 18.818 1.000
chisq_table_v4_rev <- data.frame(
"Gostergeler" = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri"),
"Deger" = round(as.numeric(chisq_values), 3))
chisq_table_v4_rev %>%
kable("html", caption = "Tablo E. v4_rev Ki-Kare Uyum Testi Gostergeleri", align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 16) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE) | Gostergeler | Deger |
|---|---|
| Ki-kare (χ²) | 363.533 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
p_pa_4_rev <-
semPaths(yol_fit_v4_rev, whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",layout = "spring" ,
nCharNodes = 0, nCharEdges = 0)p_pa_4_rev <- semPaths(
object = yol_fit_v4_rev,
what = "std", whatLabels = "std", style = "ram", layout = "spring", edge.label.cex = 1.2, edge.label.position = 0.5, edge.label.bg = "white", edge.color = "gray30", edge.width = 0.5,
color = list(
lat = "white",
man = "#D6EAF8"),
sizeMan = 10, sizeLat = 6, sizeInt = 1, pastel = TRUE,
mar = c(5, 5, 5, 5),
rotation = 1, curvePivot = TRUE, nCharNodes = 0, nCharEdges = 0, title = FALSE)fit_stats_4_rev <- fitMeasures(yol_fit_v4_rev, fit.measures = c(
"chisq", "df", "pvalue",
"cfi", "tli",
"rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
"srmr"))
fit_stats_4_rev## chisq df pvalue cfi tli
## 18.818 1.000 0.000 0.992 0.950
## rmsea rmsea.ci.lower rmsea.ci.upper srmr
## 0.061 0.039 0.086 0.016
library(knitr)
library(kableExtra)
fit_stats_table_v4_rev <- data.frame(
Göstergeler = c(
"Ki-kare (χ²)",
"Serbestlik Derecesi (df)",
"p-degeri",
"CFI (Karsilastirmali Uyum Indeksi)",
"TLI (Tucker-Lewis Indeksi)",
"RMSEA",
"RMSEA Alt Guven Siniri (90%)",
"RMSEA Ust Guven Siniri (90%)",
"SRMR (Standartlastirilmis Ortalama Karekok Artik)"
),
Deger = round(as.numeric(fit_stats_4_rev), 3)
)
kable(fit_stats_table_v4_rev,
format = "html",
caption = "Tablo. Modelin Uyum Iyiligi Gostergeleri (Revize Edilmis Model)",
align = "lc") %>%
kable_styling(full_width = FALSE,
bootstrap_options = c("striped", "hover", "condensed"),
font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Göstergeler | Deger |
|---|---|
| Ki-kare (χ²) | 18.818 |
| Serbestlik Derecesi (df) | 1.000 |
| p-degeri | 0.000 |
| CFI (Karsilastirmali Uyum Indeksi) | 0.992 |
| TLI (Tucker-Lewis Indeksi) | 0.950 |
| RMSEA | 0.061 |
| RMSEA Alt Guven Siniri (90%) | 0.039 |
| RMSEA Ust Guven Siniri (90%) | 0.086 |
| SRMR (Standartlastirilmis Ortalama Karekok Artik) | 0.016 |
Ki-kare (χ²): 18.818 → Anlamlı çıkmış (p = 0.000). Bu, model ile veri arasında fark olduğunu gösterir. Ancak, Ki-kare testi df = 1 olduğunda çok hassastır; büyük örneklemlerde anlamlı çıkması yaygındır. Bu yüzden diğer uyum ölçütleriyle birlikte değerlendirilmelidir.
Serbestlik Derecesi (df): 1.000 → Model test edilebilir. Uyum ölçütleri geçerli şekilde hesaplanabilir.
p-değeri (χ² testi): 0.000 → Ki-kare istatistiğine karşılık gelen anlamlı fark → modelin veriye tam uymadığı gösterilir. Ancak bu tek başına modelin kötü olduğunu göstermez.
CFI (Karşılaştırmalı Uyum İndeksi): 0.992 → Mükemmel uyum (> 0.95 kabul edilir). Model, boş modele göre oldukça iyidir.
TLI (Tucker-Lewis İndeksi): 0.950 → Sınırda mükemmel uyum. 0.95 ve üzeri genellikle ideal kabul edilir. Bu değer kabul edilebilir-mükemmel aralığındadır.
RMSEA: 0.061 → Kabul edilebilir uyum. RMSEA < 0.08 genelde kabul edilebilir; < 0.05 ise mükemmel kabul edilir.
RMSEA %90 Alt Güven Sınırı: 0.039 → Mükemmel uyum sınırına giriyor.
RMSEA %90 Üst Güven Sınırı: 0.086 → 0.08’in hemen üst sınırında. Bu, RMSEA’nın sınırda olduğunu gösterir. Yani model biraz daha sadeleştirilirse uyum daha iyi olabilir.
SRMR (Standartlaştırılmış Ortalama Karekök Artık): 0.016 → Mükemmel uyum. SRMR < 0.05 değerleri güçlü model uyumuna işaret eder.
Modelin uyum iyiliği istatistikleri χ²(1) = 18.818, p < 0.001; CFI = 0.992, TLI = 0.950, RMSEA = 0.061 (90% CI [0.039, 0.086]) ve SRMR = 0.016 olarak elde edilmiştir.
Bu bulgular → modelin genel olarak iyi düzeyde uyum sağladığını, özellikle CFI ve SRMR açısından mükemmel uyum gösterdiğini ortaya koymaktadır.
RMSEA’nın üst güven sınırı sınırda olsa da model → istatistiksel olarak KABUL edilebilir ve raporlanabilir niteliktedir.
Hem revised model 1 hem de revised model 2 veriye iyi uyum sağladığında:
Bu durumda hangi model seçilmelidir?
Mükemmel uyum sağlayan ancak daha karmaşık model mi?
İyi uyum sağlayan ancak daha BASİT model mi?
Ki-kare fark testi hiyerarşik olarak kümelenmiş iki modelin karşılaştırılmasında oldukça kullanışlıdır.
Eğer modellerden birisi diğerinin alt kümesiyse iki model kümelenmiştir (daha basit model daha karmaşık modelin içinde kümelenmiştir).
Bu durumda revised model 2 (daha basit model) revised model 1 (daha karmaşık model) içinde kümelenmiştir.
İki model de veriye iyi uyum sağladığında → ki-kare değerleri arasındaki fark serbestlik derecesi iki model arasındaki parametre sayısındaki farka eşit olan ki-kare dağılımı gösterir:
\[ \chi^2_{dif} = \chi^2_{\text{simple}} - \chi^2_{\text{complex}} \]
\[ df_{dif} = df_{\text{simple}} - df_{\text{complex}} \]
Anlamlı olmayan ki-kare farkı daha basit modelin daha karmaşık modelden istatistiksel olarak veriye daha kötü uymadığını önerir.
Akaike Information Criterion (AIC) ve Bayesian Information Criterion (BIC) evren dayanaklı yordayıcı uyum indeksleri olarak bilinir.
Farklı YEM yazılımları AIC ve BIC değerlerini farklı şekilde hesaplayabilir.
\(AIC = -2LogL + 2r\) → r → modeldeki parametre sayısı
\(BIC = -2LogL + rlnn\) → n → örneklem büyüklüğü
\(adjustedBIC = -2LogL + rlnn*\) → \(n* = (n + 2) / 24\)
AIC ve BIC değerleri çoğunlukla → aynı veriden kestirilen hiyerarşik olmayan modellerin arasından seçim yapmak için kullanılır.
MODEL 1 için:
## aic bic
## 112747.3 112844.5
info_criteria <- data.frame(
"Bilgi Kriteri" = c("AIC (Akaike Information Criterion)",
"BIC (Bayesian Information Criterion)"),
"Deger" = c(112747.3, 112844.5))
kable(info_criteria,
format = "html",
caption = "Tablo. Model 1 Icin Modelin Bilgi Kriterleri (yol_fit_v1)",
align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Bilgi.Kriteri | Deger |
|---|---|
| AIC (Akaike Information Criterion) | 112747.3 |
| BIC (Bayesian Information Criterion) | 112844.5 |
AIC ve BIC → modeller arası KARŞILAŞTIRMA için kullanılır.
Daha DÜŞÜK değer → daha İYİ model uyumu ve PASRIMONY (SADELİK) demektir.
Bu değerleri diğer modellerin AIC/BIC’leriyle karşılaştırarak → hangisinin daha iyi uyum sağladığını belirleyebilirsin.
Revize edilmiş model için:
## aic bic
## 105718.5 105776.9
info_criteria_v4_rev <- data.frame(
"Bilgi Kriteri" = c("AIC (Akaike Information Criterion)",
"BIC (Bayesian Information Criterion)"),
"Deger" = c(105718.5, 105776.9))
kable(info_criteria_v4_rev,
format = "html",
caption = "Tablo X. Revize Edilmis Modelin Bilgi Kriterleri (yol_fit_v4_rev)",
align = "lc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Bilgi.Kriteri | Deger |
|---|---|
| AIC (Akaike Information Criterion) | 105718.5 |
| BIC (Bayesian Information Criterion) | 105776.9 |
YORUM: Bu değerler, önceki modele (AIC = 112747.3, BIC = 112844.5) göre DAHA DÜŞÜK çıkmıştır.
İki model kümelenmiş modeller olduğundan, iki model arasında AIC ve BIC değerlerinin karşılaştırılmasına gerek yoktur.
Eğer model-veri uyumu zayıf İSE → ilk olarak varsayılan model veriye uymaz.
Eğer model-veri uyumu iyi İSE → model veri tarafından desteklenir.
Mükemmel veya iyi bir model-veri uyumu mutlaka modelin iyi olduğunu önermez.
İyi Uyuma karşı Model Tutumluluğu
MODEL bölümü modelin belirlenmesi
Yol analizinde → her bir içsel (endogenous) değişkenin → bir veya daha fazla değişken tarafından yordanması ifadesi ile belirtilir.
Ham veri kullanıldığı zaman → default modeli değişkenler için ortalamaların/kesişimlerin kestirildiği ortalama yapıları içerecektir.
Yol analizi modeli için → kovaryans yapısına odaklanılır. “Means” ve “Intercepts” bölümü altındaki değerler göz ardı edilir.
Ortalamalar/kesişimler çıkarılınca → kestirilen parametre sayısı 14 olmalıdır.
## lavaan 0.6-19 ended normally after 14 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 14
##
## Number of observations 4838
##
## Model Test User Model:
##
## Test statistic 363.533
## Degrees of freedom 1
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Regressions:
## Estimate Std.Err z-value P(>|z|)
## JOYREAD ~
## ESCS 0.129 0.015 8.537 0.000
## GFOFAIL 0.099 0.014 6.899 0.000
## BELONG ~
## ESCS 0.125 0.014 8.863 0.000
## GFOFAIL -0.208 0.013 -16.299 0.000
## PVREAD_MEAN 0.000 0.000 1.778 0.075
## JOYREAD -0.073 0.013 -5.840 0.000
## PVREAD_MEAN ~
## ESCS 33.972 1.403 24.208 0.000
## GFOFAIL 14.959 1.331 11.237 0.000
##
## Covariances:
## Estimate Std.Err z-value P(>|z|)
## ESCS ~~
## GFOFAIL 0.128 0.015 8.314 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|)
## .JOYREAD 1.100 0.022 49.183 0.000
## .BELONG 0.839 0.017 49.183 0.000
## .PVREAD_MEAN 9472.346 192.593 49.183 0.000
## ESCS 1.009 0.021 49.183 0.000
## GFOFAIL 1.121 0.023 49.183 0.000
Regressions (Yol Katsayıları) Yorumları:
JOYREAD ~ ESCS + GFOFAIL
ESCS → JOYREAD: β = 0.129, p < 0.001 → Pozitif ve anlamlı etki → Sosyoekonomik düzey arttıkça okuma zevki artar.
GFOFAIL → JOYREAD: β = 0.099, p < 0.001 → Pozitif ve anlamlı etki → Sınav kaygısı azaldıkça okuma sevgisi artar (tutarlı).
BELONG ~ ESCS + GFOFAIL + PVREAD_MEAN + JOYREAD
ESCS → BELONG: β = 0.125, p < 0.001 → Sosyoekonomik düzey arttıkça aidiyet hissi artar.
GFOFAIL → BELONG: β = −0.208, p < 0.001 → Negatif etki → Sınav başarısızlığı korkusu aidiyeti düşürür.
PVREAD_MEAN → BELONG: β = 0.006, p = 0.075 → Anlamlı DEĞİL → başarı düzeyi aidiyeti açıklamada yetersiz.
JOYREAD → BELONG: β = −0.073, p < 0.001 → Negatif ilişki ilginç: okuma zevki arttıkça aidiyet azalıyor olabilir; bu kurgu kuramsal olarak tekrar düşünülmeli.
PVREAD_MEAN ~ ESCS + GFOFAIL
ESCS → PVREAD_MEAN: β = 33.972, p < 0.001 → Çok güçlü ve anlamlı → ESCS başarıyı büyük ölçüde açıklar.
GFOFAIL → PVREAD_MEAN: β = 14.959, p < 0.001 → Başarısızlık korkusu azaldıkça başarı artıyor → Beklenen yönde ve anlamlı.
Kovaryanslar:
ESCS ~~ GFOFAIL: r = 0.128, p < 0.001
Sosyoekonomik durum ile sınav başarısızlığı korkusu pozitif ilişkilidir. ESCS düşük oldukça GFOFAIL artar.
Varyanslar (Kontrol için):
Modelde ESCS’nin JOYREAD (β = 0.129, p < 0.001) ve PVREAD_MEAN (β = 33.97, p < 0.001) üzerindeki etkisi anlamlı ve pozitif bulunmuştur.
Benzer şekilde, GFOFAIL değişkeni JOYREAD (β = 0.099, p < 0.001) ve PVREAD_MEAN (β = 14.96, p < 0.001) üzerinde anlamlı pozitif etkilere sahiptir.
BELONG değişkeni için PVREAD_MEAN’in etkisi istatistiksel olarak anlamlı bulunmamıştır (p = 0.075), JOYREAD’in etkisi ise beklenmedik şekilde negatif (β = −0.073, p < 0.001) olarak ortaya çıkmıştır.
ESCS ile GFOFAIL arasında pozitif ve anlamlı bir kovaryans bulunmaktadır (r = 0.128, p < 0.001).
REGRESYON KATSAYILARI (YOL KATSAYILARI)
library(knitr)
library(kableExtra)
regression_table <- data.frame(
Değişken = c("JOYREAD ~ ESCS", "JOYREAD ~ GFOFAIL",
"BELONG ~ ESCS", "BELONG ~ GFOFAIL", "BELONG ~ PVREAD_MEAN", "BELONG ~ JOYREAD",
"PVREAD_MEAN ~ ESCS", "PVREAD_MEAN ~ GFOFAIL"),
Katsayı = c(0.129, 0.099, 0.125, -0.208, 0.006, -0.073, 33.972, 14.959),
StdErr = c(0.015, 0.014, 0.014, 0.013, 0.004, 0.013, 1.403, 1.331),
z = c(8.537, 6.899, 8.863, -16.299, 1.778, -5.840, 24.208, 11.237),
p = c(0.000, 0.000, 0.000, 0.000, 0.075, 0.000, 0.000, 0.000))
kable(regression_table,
caption = "Tablo. Yol Katsayıları (Regresyonlar)",
format = "html",
align = "lcccc") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE, font_size = 14) %>%
row_spec(0, bold = TRUE)| Değişken | Katsayı | StdErr | z | p |
|---|---|---|---|---|
| JOYREAD ~ ESCS | 0.129 | 0.015 | 8.537 | 0.000 |
| JOYREAD ~ GFOFAIL | 0.099 | 0.014 | 6.899 | 0.000 |
| BELONG ~ ESCS | 0.125 | 0.014 | 8.863 | 0.000 |
| BELONG ~ GFOFAIL | -0.208 | 0.013 | -16.299 | 0.000 |
| BELONG ~ PVREAD_MEAN | 0.006 | 0.004 | 1.778 | 0.075 |
| BELONG ~ JOYREAD | -0.073 | 0.013 | -5.840 | 0.000 |
| PVREAD_MEAN ~ ESCS | 33.972 | 1.403 | 24.208 | 0.000 |
| PVREAD_MEAN ~ GFOFAIL | 14.959 | 1.331 | 11.237 | 0.000 |
cov_table <- data.frame(
Kovaryans = c("ESCS ~~ GFOFAIL"),
Katsayı = c(0.128),
StdErr = c(0.015),
z = c(8.314),
p = c(0.000))
kable(cov_table,
caption = "Tablo. Kovaryanslar",
format = "html",
align = "lccc") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE, font_size = 14) %>%
row_spec(0, bold = TRUE)| Kovaryans | Katsayı | StdErr | z | p |
|---|---|---|---|---|
| ESCS ~~ GFOFAIL | 0.128 | 0.015 | 8.314 | 0 |
var_table <- data.frame(
Değişken = c("JOYREAD", "BELONG", "PVREAD_MEAN", "ESCS", "GFOFAIL"),
Varyans = c(1.100, 0.839, 9472.346, 1.009, 1.121),
StdErr = c(0.022, 0.017, 192.593, 0.021, 0.023),
z = c(49.183, 49.183, 49.183, 49.183, 49.183),
p = c(0.000, 0.000, 0.000, 0.000, 0.000))
kable(var_table,
caption = "Tablo. Gözlenen Değişkenlerin Varyansları",
format = "html",
align = "lcccc") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE, font_size = 14) %>%
row_spec(0, bold = TRUE)| Değişken | Varyans | StdErr | z | p |
|---|---|---|---|---|
| JOYREAD | 1.100 | 0.022 | 49.183 | 0 |
| BELONG | 0.839 | 0.017 | 49.183 | 0 |
| PVREAD_MEAN | 9472.346 | 192.593 | 49.183 | 0 |
| ESCS | 1.009 | 0.021 | 49.183 | 0 |
| GFOFAIL | 1.121 | 0.023 | 49.183 | 0 |
library(knitr)
library(kableExtra)
std_solution_full <- data.frame(
Yol = c(
"JOYREAD ~ ESCS", "JOYREAD ~ GFOFAIL",
"BELONG ~ ESCS", "BELONG ~ GFOFAIL", "BELONG ~ PVREAD_MEAN", "BELONG ~ JOYREAD",
"PVREAD_MEAN ~ ESCS", "PVREAD_MEAN ~ GFOFAIL",
"ESCS ~~ GFOFAIL", "JOYREAD ~~ JOYREAD", "BELONG ~~ BELONG",
"PVREAD_MEAN ~~ PVREAD_MEAN", "ESCS ~~ ESCS", "GFOFAIL ~~ GFOFAIL"
),
Std_Katsayı = c(
0.122, 0.099,
0.132, -0.231, 0.027, -0.082,
0.325, 0.151,
0.120, 0.973, 0.928,
0.860, 1.000, 1.000),
Std_Hata = c(
0.014, 0.014,
0.015, 0.014, 0.015, 0.014,
0.013, 0.013,
0.014, 0.005, 0.007,
0.009, 0.000, 0.000),
z = c(
8.599, 6.932,
8.926, -16.719, 1.779, -5.858,
25.537, 11.349,
8.497, 209.848, 129.419,
92.865, NA, NA),
p = c(
0.000, 0.000,
0.000, 0.000, 0.075, 0.000,
0.000, 0.000,
0.000, 0.000, 0.000,
0.000, NA, NA),
CI_Lower = c(
0.094, 0.071,
0.103, -0.259, -0.003, -0.109,
0.300, 0.125,
0.093, 0.963, 0.914,
0.842, 1.000, 1.000),
CI_Upper = c(
0.150, 0.126,
0.161, -0.204, 0.056, -0.055,
0.350, 0.177,
0.148, 0.982, 0.942,
0.878, 1.000, 1.000))
kable(std_solution_full,
caption = "Tablo. Standartlaştırılmış Yol, Kovaryans ve Varyans Tahminleri",
format = "html",
align = "lcccccc") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"), font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Yol | Std_Katsayı | Std_Hata | z | p | CI_Lower | CI_Upper |
|---|---|---|---|---|---|---|
| JOYREAD ~ ESCS | 0.122 | 0.014 | 8.599 | 0.000 | 0.094 | 0.150 |
| JOYREAD ~ GFOFAIL | 0.099 | 0.014 | 6.932 | 0.000 | 0.071 | 0.126 |
| BELONG ~ ESCS | 0.132 | 0.015 | 8.926 | 0.000 | 0.103 | 0.161 |
| BELONG ~ GFOFAIL | -0.231 | 0.014 | -16.719 | 0.000 | -0.259 | -0.204 |
| BELONG ~ PVREAD_MEAN | 0.027 | 0.015 | 1.779 | 0.075 | -0.003 | 0.056 |
| BELONG ~ JOYREAD | -0.082 | 0.014 | -5.858 | 0.000 | -0.109 | -0.055 |
| PVREAD_MEAN ~ ESCS | 0.325 | 0.013 | 25.537 | 0.000 | 0.300 | 0.350 |
| PVREAD_MEAN ~ GFOFAIL | 0.151 | 0.013 | 11.349 | 0.000 | 0.125 | 0.177 |
| ESCS ~~ GFOFAIL | 0.120 | 0.014 | 8.497 | 0.000 | 0.093 | 0.148 |
| JOYREAD ~~ JOYREAD | 0.973 | 0.005 | 209.848 | 0.000 | 0.963 | 0.982 |
| BELONG ~~ BELONG | 0.928 | 0.007 | 129.419 | 0.000 | 0.914 | 0.942 |
| PVREAD_MEAN ~~ PVREAD_MEAN | 0.860 | 0.009 | 92.865 | 0.000 | 0.842 | 0.878 |
| ESCS ~~ ESCS | 1.000 | 0.000 | NA | NA | 1.000 | 1.000 |
| GFOFAIL ~~ GFOFAIL | 1.000 | 0.000 | NA | NA | 1.000 | 1.000 |
library(knitr)
library(kableExtra)
param_table <- data.frame(
Yol = c(
"JOYREAD ~ ESCS", "JOYREAD ~ GFOFAIL",
"BELONG ~ ESCS", "BELONG ~ GFOFAIL", "BELONG ~ PVREAD_MEAN", "BELONG ~ JOYREAD",
"PVREAD_MEAN ~ ESCS", "PVREAD_MEAN ~ GFOFAIL",
"ESCS ~~ GFOFAIL", "JOYREAD ~~ JOYREAD",
"BELONG ~~ BELONG", "PVREAD_MEAN ~~ PVREAD_MEAN", "ESCS ~~ ESCS", "GFOFAIL ~~ GFOFAIL"),
Katsayı = c(0.129, 0.099,
0.125, -0.208, 0.000, -0.073,
33.972, 14.959,
0.128, 1.100,
0.839, 9472.346, 1.009, 1.121),
Std_Hata = c(0.015, 0.014,
0.014, 0.013, 0.000, 0.013,
1.403, 1.331,
0.015, 0.022,
0.017, 192.593, 0.021, 0.023),
z = c(8.537, 6.899,
8.863, -16.299, 1.778, -5.840,
24.208, 11.237,
8.314, 49.183,
49.183, 49.183, 49.183, 49.183),
p = c(0.000, 0.000,
0.000, 0.000, 0.075, 0.000,
0.000, 0.000,
0.000, 0.000,
0.000, 0.000, 0.000, 0.000),
CI_Lower = c(0.099, 0.071,
0.097, -0.233, 0.000, -0.098,
31.221, 12.350,
0.098, 1.057,
0.805, 9094.871, 0.969, 1.076),
CI_Upper = c(0.159, 0.127,
0.152, -0.183, 0.001, -0.049,
36.722, 17.569,
0.158, 1.144,
0.872, 9849.820, 1.049, 1.166))
kable(param_table,
caption = "Tablo. Parametre Tahminleri (Standartlaştırılmamış Katsayılar)",
format = "html",
align = "lcccccc") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE, font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Yol | Katsayı | Std_Hata | z | p | CI_Lower | CI_Upper |
|---|---|---|---|---|---|---|
| JOYREAD ~ ESCS | 0.129 | 0.015 | 8.537 | 0.000 | 0.099 | 0.159 |
| JOYREAD ~ GFOFAIL | 0.099 | 0.014 | 6.899 | 0.000 | 0.071 | 0.127 |
| BELONG ~ ESCS | 0.125 | 0.014 | 8.863 | 0.000 | 0.097 | 0.152 |
| BELONG ~ GFOFAIL | -0.208 | 0.013 | -16.299 | 0.000 | -0.233 | -0.183 |
| BELONG ~ PVREAD_MEAN | 0.000 | 0.000 | 1.778 | 0.075 | 0.000 | 0.001 |
| BELONG ~ JOYREAD | -0.073 | 0.013 | -5.840 | 0.000 | -0.098 | -0.049 |
| PVREAD_MEAN ~ ESCS | 33.972 | 1.403 | 24.208 | 0.000 | 31.221 | 36.722 |
| PVREAD_MEAN ~ GFOFAIL | 14.959 | 1.331 | 11.237 | 0.000 | 12.350 | 17.569 |
| ESCS ~~ GFOFAIL | 0.128 | 0.015 | 8.314 | 0.000 | 0.098 | 0.158 |
| JOYREAD ~~ JOYREAD | 1.100 | 0.022 | 49.183 | 0.000 | 1.057 | 1.144 |
| BELONG ~~ BELONG | 0.839 | 0.017 | 49.183 | 0.000 | 0.805 | 0.872 |
| PVREAD_MEAN ~~ PVREAD_MEAN | 9472.346 | 192.593 | 49.183 | 0.000 | 9094.871 | 9849.820 |
| ESCS ~~ ESCS | 1.009 | 0.021 | 49.183 | 0.000 | 0.969 | 1.049 |
| GFOFAIL ~~ GFOFAIL | 1.121 | 0.023 | 49.183 | 0.000 | 1.076 | 1.166 |
library(knitr)
standardizedsolution(yol_fit) %>%
filter(op == "~") %>%
select('Bağımlı Değişkenler'=lhs, Gosterge=rhs,
B=est.std, SE=se, Z=z, 'p-value'=pvalue) %>%
knitr::kable(digits = 3, booktabs=TRUE, format="markdown",
caption="Factor Loadings")| Bağımlı Değişkenler | Gosterge | B | SE | Z | p-value |
|---|---|---|---|---|---|
| JOYREAD | ESCS | 0.122 | 0.014 | 8.599 | 0.000 |
| JOYREAD | GFOFAIL | 0.099 | 0.014 | 6.932 | 0.000 |
| BELONG | ESCS | 0.132 | 0.015 | 8.926 | 0.000 |
| BELONG | GFOFAIL | -0.231 | 0.014 | -16.719 | 0.000 |
| BELONG | PVREAD_MEAN | 0.027 | 0.015 | 1.779 | 0.075 |
| BELONG | JOYREAD | -0.082 | 0.014 | -5.858 | 0.000 |
| PVREAD_MEAN | ESCS | 0.325 | 0.013 | 25.537 | 0.000 |
| PVREAD_MEAN | GFOFAIL | 0.151 | 0.013 | 11.349 | 0.000 |
library(dplyr)
library(knitr)
library(kableExtra)
std_regression <- standardizedsolution(yol_fit) %>%
filter(op == "~") %>%
select(`Bağımlı Değişken` = lhs,
Gösterge = rhs,
`B (est.std)` = est.std,
`SE` = se,
`Z` = z,
`p-değeri` = pvalue)
kable(std_regression,
format = "html",
caption = "Tablo X. Standartlaştırılmış Regresyon Katsayıları",
align = "lcccc") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE, font_size = 14) %>%
row_spec(0, bold = TRUE) %>%
column_spec(1, bold = TRUE)| Bağımlı Değişken | Gösterge | B (est.std) | SE | Z | p-değeri |
|---|---|---|---|---|---|
| JOYREAD | ESCS | 0.1219200 | 0.0141781 | 8.599197 | 0.0000000 |
| JOYREAD | GFOFAIL | 0.0985347 | 0.0142146 | 6.931955 | 0.0000000 |
| BELONG | ESCS | 0.1317914 | 0.0147642 | 8.926391 | 0.0000000 |
| BELONG | GFOFAIL | -0.2314132 | 0.0138412 | -16.719188 | 0.0000000 |
| BELONG | PVREAD_MEAN | 0.0265569 | 0.0149308 | 1.778669 | 0.0752941 |
| BELONG | JOYREAD | -0.0820061 | 0.0139995 | -5.857788 | 0.0000000 |
| PVREAD_MEAN | ESCS | 0.3250706 | 0.0127292 | 25.537354 | 0.0000000 |
| PVREAD_MEAN | GFOFAIL | 0.1508888 | 0.0132953 | 11.349012 | 0.0000000 |
| term | df | AIC | BIC | statistic | Chisq.diff | RMSEA | Df.diff | p.value |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 105718.5 | 105776.9 | 18.818 | 18.818 | 0.061 | 1 | 0 |
| 2 | 0 | 112747.3 | 112844.5 | 0.000 | NA | NA | NA | NA |
| Model Comparison | |||||||||
| Model | df | AIC | BIC | BF | P(Model|Data) | χ2 | Δχ2 | Δdf | p |
|---|---|---|---|---|---|---|---|---|---|
| yol_fit_v4_rev | 1 | 105718.521 | 105776.879 | Inf | 18.818 | ||||
| yol_fit_v1 | 0 | 112747.285 | 112844.548 | 0.000 | 0.000 | 0.000 | 18.818 | 1.000 | <0.001 |
Toplam etki, bir değişken bir birim değiştiğinde diğer bir değişkenin ne kadar değişeceğini belirtir.
Toplam etkinin iki bileşeni olabilir: doğrudan etki ve bazı araya giren değişkenler üzerinden dolaylı etkiler
Bir değişkenin diğer bir değişken üzerindeki doğrudan etkisi yol modelindeki ağırlığıyla belirtilir.
*Dolaylı etkiler doğrudan etkilerin çarpımları olarak istatistiksel olarak kestirilir.
Doğrudan ve dolaylı etkiler ya standartlaştırılmamış ya da standartlaştırılmış çözümlerin sonuçlarına dayanarak hesaplanabilir.
Ancak, eğer değişkenlerin birbirlerine göre etkileri karşılaştırılacaksa standartlaştırılmış çözümler kullanılmalıdır.