Araştırma Problemi: Teksas Üniversitesi’nde (UT Austin) yapılan bir araştırmada, eğitmenlerin öğretim değerlendirme puanları (score) ile güzellik puanları (bty_avg) arasındaki ilişki incelenmiştir. Veriler moderndive paketindeki evals veri setinde yer almaktadır.
Öğretim puanını (score) bağımlı değişken (y) ve güzellik puanını (bty_avg) bağımsız değişken (x) olarak kullanarak bir basit doğrusal regresyon modeli oluşturun.
lm() ve get_regression_table() fonksiyonlarını kullanarak regresyon tablosunu elde edin.
Regresyon denklemini yazın ve güzellik puanının eğim katsayısını (slope) yorumlayın.
library(moderndive)
library(ggplot2)
m1<-lm(data=evals, score ~ bty_avg)
summary(m1)
##
## Call:
## lm(formula = score ~ bty_avg, data = evals)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.9246 -0.3690 0.1420 0.3977 0.9309
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.88034 0.07614 50.96 < 2e-16 ***
## bty_avg 0.06664 0.01629 4.09 5.08e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5348 on 461 degrees of freedom
## Multiple R-squared: 0.03502, Adjusted R-squared: 0.03293
## F-statistic: 16.73 on 1 and 461 DF, p-value: 5.083e-05
Güzellik puanı 0 olanın değerlendirme puanı 3.88034. Güzellik puanlarındaki değişim değerlendirmenin %3’ü ile açıklanabilir.
Adjusted R-square, değişken ekledikçe R2 olduğundan daha fazla görünebilir, değişken sayısına göre düzeltimiş hali.
ggplot(evals, aes(x= bty_avg, y=score)) +
geom_point(alpha=0.3) +
geom_smooth(method="lm", se=FALSE) +
labs(title="Güzellik ve Ders Puanı İlişkisi")
## `geom_smooth()` using formula = 'y ~ x'
#Regresyon denklemi:
#score =3.88+0.067.bty_avg
#Yorum: Güzellik puanındaki (bty_avg) her 1 birimlik artış için, öğretim değelerndirme puanında (score) ortalama 0.067 birimlik ilişkili bir artış beklenmektedir
get_regression_table(m1)
## # A tibble: 2 × 7
## term estimate std_error statistic p_value lower_ci upper_ci
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 intercept 3.88 0.076 51.0 0 3.73 4.03
## 2 bty_avg 0.067 0.016 4.09 0 0.035 0.099
Araştırma Problemi: Eğitmenlerin öğretim puanlarını tahmin ederken sadece güzellik puanlarının değil, cinsiyetlerinin de (kategorik değişken) etkili olabileceğini düşünüyoruz. Bu durumu hem etkileşim (çarpım) modeli hem de paralel eğimler modeli ile analiz edeceğiz.
evals veri setini kullanarak, bağımlı değişkeni score, bağımsız değişkenleri ise bty_avg (güzellik puanı) ve gender (cinsiyet) olan iki farklı çoklu regresyon modeli kurun:
Etkileşim (Interaction) Modeli: Güzellik puanının öğretim puanı üzerindeki etkisinin cinsiyete göre değişebileceğini varsayan etkileşim modelini kurun. R kodunu yazın.
Paralel Eğimler (Parallel Slopes) Modeli: Her iki cinsiyet için güzellik puanının öğretim puanına etkisinin (eğimin) aynı olduğunu varsayan paralel eğimler modelini kurun.
Bu iki modelin temel varsayım farkını kısaca açıklayın.
library(moderndive)
m3 <- lm(data=evals, score~bty_avg*gender)
m3
##
## Call:
## lm(formula = score ~ bty_avg * gender, data = evals)
##
## Coefficients:
## (Intercept) bty_avg gendermale bty_avg:gendermale
## 3.95006 0.03064 -0.18351 0.07962
get_regression_table(m3)
## # A tibble: 4 × 7
## term estimate std_error statistic p_value lower_ci upper_ci
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 intercept 3.95 0.118 33.5 0 3.72 4.18
## 2 bty_avg 0.031 0.024 1.28 0.202 -0.017 0.078
## 3 gender: male -0.184 0.153 -1.20 0.232 -0.485 0.118
## 4 bty_avg:gendermale 0.08 0.032 2.45 0.015 0.016 0.143
Kadınlar ve erkeklerde etkisi farklılaşmaktadır. Etkileşim olarak baktığımızda.
m2<-lm(data=evals, score ~ bty_avg+gender)
m2
##
## Call:
## lm(formula = score ~ bty_avg + gender, data = evals)
##
## Coefficients:
## (Intercept) bty_avg gendermale
## 3.74734 0.07416 0.17239
get_regression_table(m2)
## # A tibble: 3 × 7
## term estimate std_error statistic p_value lower_ci upper_ci
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 intercept 3.75 0.085 44.3 0 3.58 3.91
## 2 bty_avg 0.074 0.016 4.56 0 0.042 0.106
## 3 gender: male 0.172 0.05 3.43 0.001 0.074 0.271
Paralel olarak eklenilene baktığımızda; kategorik değişkende ortalamaya dayalı yorum yaparız. Erkeklerdeki bir birimlik artış ortalamayı 0.172 artar.
Kadınların düşük puanı güzellik değerlendirmeyi daha çok etkiliyor.
Paralel olarak eklediğimiz ve diğeri arasında kıyaslama yaptı. Kadınlardaki güzellik puanının değerlendirme puanlarına etkisi daha fazla olacak.
ggplot(evals, aes(x=bty_avg, y=score, color=gender))+
geom_point(alpha=0.3)+
geom_parallel_slopes(se=FALSE)+
labs(title= "Cinsiyet Kontrol Edildiginde Guzellik Etkisi")
Paralel olarak baktığımızda, Kadınlar güzellik puanından daha fazla olarak etkileniyor.
0.17 puan daha yüksek değerlendirme puanı alması gerekiyor.
Basit modelin R2’si; 0.03 Paralel olarak baktığımızın R2’si 0.05 Etkileşim olarak baktığımızda R2’si 0.07 (çarpım olarak eklemem hocaların güzellik puanı ile değerlendirme puanları arasında cinsiyet bir moderatör etkisi var çünkü çarpım olarak eklediğimizde açıklanan varyans arttı)
ISLR paketinden türetilen ve kredi kartı kullanıcılarının finansal bilgilerini içeren bir veri seti (örneğin credit_ch6) kullanılarak, kredi kartı borcu (debt) incelenmektedir.
Kredi kartı borcunu (debt) bağımlı değişken, kredi limitini (credit_limit) ve geliri (income) bağımsız değişkenler olarak kullanarak bir çoklu regresyon modeli oluşturun.
Modelin regresyon tablosunu oluşturacak R kodunu yazın.
Çıktıdaki income (gelir) değişkeninin katsayısını, diğer değişkenleri sabit tuttuğumuzu belirterek yorumlayın.
debt bağımlı kredi limiti ve gelir bağımsız
data("Credit")
## Warning in data("Credit"): data set 'Credit' not found
library(ISLR)
data("Credit")
m4<-lm(data=Credit, Balance ~ Limit)
m4
##
## Call:
## lm(formula = Balance ~ Limit, data = Credit)
##
## Coefficients:
## (Intercept) Limit
## -292.7905 0.1716
summary(m4)
##
## Call:
## lm(formula = Balance ~ Limit, data = Credit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -676.95 -141.87 -11.55 134.11 776.44
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.928e+02 2.668e+01 -10.97 <2e-16 ***
## Limit 1.716e-01 5.066e-03 33.88 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 233.6 on 398 degrees of freedom
## Multiple R-squared: 0.7425, Adjusted R-squared: 0.7419
## F-statistic: 1148 on 1 and 398 DF, p-value: < 2.2e-16
get_regression_table(m4)
## # A tibble: 2 × 7
## term estimate std_error statistic p_value lower_ci upper_ci
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 intercept -293. 26.7 -11.0 0 -345. -240.
## 2 Limit 0.172 0.005 33.9 0 0.162 0.182
m5<-lm(data=Credit, Balance ~ Income)
m5
##
## Call:
## lm(formula = Balance ~ Income, data = Credit)
##
## Coefficients:
## (Intercept) Income
## 246.515 6.048
summary(5)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5 5 5 5 5 5
get_regression_table(m5)
## # A tibble: 2 × 7
## term estimate std_error statistic p_value lower_ci upper_ci
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 intercept 247. 33.2 7.42 0 181. 312.
## 2 Income 6.05 0.579 10.4 0 4.91 7.19
m6<-lm(data=Credit, Balance ~ Limit+Income)
m6
##
## Call:
## lm(formula = Balance ~ Limit + Income, data = Credit)
##
## Coefficients:
## (Intercept) Limit Income
## -385.1793 0.2643 -7.6633
summary(m6)
##
## Call:
## lm(formula = Balance ~ Limit + Income, data = Credit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -232.79 -115.45 -48.20 53.36 549.77
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -385.17926 19.46480 -19.79 <2e-16 ***
## Limit 0.26432 0.00588 44.95 <2e-16 ***
## Income -7.66332 0.38507 -19.90 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 165.5 on 397 degrees of freedom
## Multiple R-squared: 0.8711, Adjusted R-squared: 0.8705
## F-statistic: 1342 on 2 and 397 DF, p-value: < 2.2e-16
get_regression_table(m6)
## # A tibble: 3 × 7
## term estimate std_error statistic p_value lower_ci upper_ci
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 intercept -385. 19.5 -19.8 0 -423. -347.
## 2 Limit 0.264 0.006 45.0 0 0.253 0.276
## 3 Income -7.66 0.385 -19.9 0 -8.42 -6.91
Limit 0.17 birimlik artışa neden oluyor Income 6 birimlik artışa neden oluyor Her ikisi birlikte ele alındığında Income
cor(Credit$Income, Credit$Limit)
## [1] 0.7920883
Eğer yüksek korelasyon varsa çoklu bağlantısallık var demektir.
Modelde kategorik değişken varsa modere edip etmediğine bakmamız gerekiyor.
Cook d istatistiği ile etkili gözlemlere bakmamız gerekiyor. Etkili değerler yönü vs değiştiriyor.
Simpson Paradoksu
Kadınlar zor kabul alınan bölümlere başvurdukları için sonuç onların aleyhine gibi duruyor.
Sadece gözlenen değişkenlerin kullanıldığı çok sayıda çoklu regresyon modelinin birleşmiş halidir. Değişkenler arası ilişkileri modellemek ve bunun test edilmesine imkan vermek. Kovaryans örüntüsünü anlayarak değişkenler arasındaki ilişkiyi ortaya çıkarmak.
Egzersiz, Hastalıklarını etkiler. Dayanıklılık, Hastalıklarını etkiler. Form, Hastalıklarını etkiler. Stres, Hastalıklarını etkiler.
yol_model <- 'stres ~ egzersiz + dayaniklilik
hastalik ~ egzersiz + dayaniklilik + form + stres
form ~ egzersiz + dayaniklilik'
library(readr)
veri <- read_table("import/illness.dat", col_names = FALSE)
##
## ── Column specification ────────────────────────────────────────────────────────
## cols(
## X1 = col_double(),
## X2 = col_double(),
## X3 = col_double(),
## X4 = col_double(),
## X5 = col_double()
## )
colnames(veri) <- c("form", "stres", "hastalik", "egzersiz", "dayaniklilik")
*col.names false çünkü veri setinde başlık yok.
library(lavaan)
## This is lavaan 0.6-21
## lavaan is FREE software! Please report any bugs.
yol_model <- 'stres ~ egzersiz + dayaniklilik
hastalik ~ egzersiz + dayaniklilik + form + stres
form ~ egzersiz + dayaniklilik
egzersiz ~~ dayaniklilik'
yol_fit <- sem(yol_model, veri)
yol_fit
## lavaan 0.6-21 ended normally after 8 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 14
##
## Number of observations 400
##
## Model Test User Model:
##
## Test statistic 12.307
## Degrees of freedom 1
## P-value (Chi-square) 0.000
*egzersiz ~~ dayaniklilik dışsal değişkenler arasında ilişki tanımla
Dışsal değişkenler değişkenlik göstermekte serbesttir. İçsel değişkenlerin de sebeplerini araştırıyoruz. Her içsel değişkenlerin bir bozukluğu var, içsel değişkende gözlenen varyansın açıklanamayan kısmıdır.
Formun dayanıklılık ve egzersizden açıklanamayan kısmı da bozukluk/hatadır. Bileşik bir değişkendir bozukluklar. Bozukluklara gizil değişken denilebilir. Bozuklukları da doğrudan ölçemediğimiz için daire ile gösterilir. Çift yönlü ok kovaryansı, ilişkiyi gösterir. İki dışsal değişken arasına kovaryans ekleyerek modelimizi oluşturmuş olduk. Bozukluklar gizil olduğu için varyansı 1’e eşitlenerek program tarafından yapılmakta. Yol analizinde dışsal değişkenlerin hata varyansını 1 e ekleyerek kestiriyoruz.
Doğrudan etki “->” bu şekilde olan oklardır.
Dayanıklılık hastalığı doğrudan ve form üzerinden olmak üzere bir de dolaylı etkimiz mevcut, arabulucu etki (mediatior değişken olarak form burada görev yapmaktadır) Egzersiz doğrudan hastalığı etkiliyor ve egzersiz stres üzerinden dolaylı olarak hastalığı etkiliyor.
4 tane üçgen var o şekilde düşün 4 tane doğrudan ve dolaylı etki meselesi var.
Yeniden üretilmiş varyans kovaryans matrisi Artık değer ne kadar küçük ise o kadar iyi bir model uyumu var demektir.
Hipotez testi sonucu bir ki-kare değeri veriyor, p değerinin yüksek olması H0 hipotezini doğrulamak istiyorum. Sadece p değerine bakarak karar vermiyoruz.
library(lavaan)
yol_model <- 'stres ~ egzersiz + dayaniklilik
hastalik ~ egzersiz + dayaniklilik + form + stres
form ~ egzersiz + dayaniklilik
egzersiz ~~ dayaniklilik'
yol_fit <- sem(yol_model, veri)
library(semPlot)
## Registered S3 method overwritten by 'openxlsx':
## method from
## as.character.formula formula.tools
semPaths(yol_fit,rotation=2, curvePivot = TRUE,
sizeMan = 12, sizeInt = 1,
sizeLat = 4,
edge.label.cex = 1.8,
pastel=TRUE,
nCharNodes = 0, nCharEdges = 0)
rotation=2; şeklin dönüşü sizeMan= boyutu
Gözlenen varyans kovaryans matrisinin
modelde kaç tane parametre kestiriliyor 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şkenlerden içsel değişkenlere olan doğrudan etkilerin sayısı toplamıdır.
Dışsal değişkenlerin varyansları: 2 Dışsal değişkenlerin kovaryansı: 1 Bozuklukların varyansları: 3 Doğrudan etkiler: 8 Toplamda 14 tane yapıyor.
Serbestlik derecesi 0 olursa istemediğimiz bir durum. Serbestlik derecemizin 0’dan büyük olmasını sağlıyoruz.
Model tanımlarken iki koşul: Birincisi gizil değişkenlere ölçek atamak Unic loading Varyansı bire eşitleyerek gidiyoruz.
Y1 ve Y2 içsel değişken
X1: dışsal değişken
(3*4)/2
dışsal değişkenin varyansını da ekliyoruz.
Model-Veri Uyumunun Değerlendirilmesi sd 0’dan büyük olmalı Uyum indeksleri değerleri İyilik uyum indeksleri Kötülük uyum indekslerinden bir grup almamız yeterli. Kötülük uyum indeksleri 0’a yakınsa o kadar iyi. Ki-kare derecesinin anlamsız olması gerekiyor.
RMSEA kötülük uyum indeksi CFI iyilik uyum indeksi SRMR ne kadar düşük o kadar iyi
Ki kare istatistiği örneklem büyüklüğünden etkilenir. Örneklem büyüdükçe ki kare testini reddetmek durumunda kalırız.
Örneklem küçükse testin gücü düşük olur.
Norm ki kare kullanılabilir diyenler var.
Ki kare değerinizi örneklem büyüklüğünü bölün, kimisi de bu tamamen düzeltmez der.
RMSEA değeri ki kare değerinin bir fonksiyonudur.
Delta parametresi kullanıyoruz. Modelin hatalı bir şekilde tanımlanmasını gösterir.
Örneklem büyüklüğü etkisini düzelten bir indeks RMSEA’dır.
RMSEA standart hata ile %90 güven aralığında raporlayın diyorlar.
0.168 çok kötü çünkü 0.08’den büyük
SRMR (Standardized Root Mean Square Residiual) fitMeasures(yol_fit, “srmr”)
RMR (standartlaştırılmamış, cut-of, sınır değerleri yok)
Comparative Fit İndeks (CFI) mümkün olduğunda 1’e yakın olmasını isteriz.
NNFI, CFI, TLI birbirlerine çok benzer.
CFI ve GFI
fitmeasures()
Uyum indekslerini yorumlarken
fitMeasures(yol_fit,
fit.measures = c("chisq","df","pvalue",
"cfi","tli",
"rmsea","srmr"))
## chisq df pvalue cfi tli rmsea srmr
## 12.307 1.000 0.000 0.948 0.485 0.168 0.043
her bir yol katsayısının t istatistiğine bakıyor.
Model sonucundaki artıklar mümkün olduğunca küçük olsun isteriz.
Artıkları incelememiz gerekiyor.
Artıkları standartlaştırılmış değerlerden inceleyelim.
resid(yol_fit, type=‘normalized’)
Z puanı gibi karşılaştırabilirsin. 1.96’dan küçük ise istendik deriz. Hata küçük deriz. Form ile stres arasındaki ilişkide bu modelce açıklanamayan şeyler var deriz.
Modifikasyon indeksleri
modindices(yol_fit, sort=TRUE)
ki kare 12.300 bu 4 yol denklemlerinden birini eklesek düşecek. Hangi yolu ekleyeceğimize karar vereceğiz.
Stres ve form arasındaki artık değer yüksek olduğu için, ki kare derecesi ve serbestlik derecesi de düşer. Modeldeki işlevsiz bir şeyi çıkarmak iyi olur.
Stres ile form arasında bir yol ekleyebilirsin diyor sistem. Ben bu yolu eklersem serbestlik derecesi 0 olur. Ve bu anlamlı değil.
İyi uyum mu önemli, daha az parametre ile kestirim mi önemli? Bununla ilişkili bir konu.
Modeli Yeniden Tanımlayalım.
Anlamlı olmayan yol katsayılarını çıkarmayı düşünebiliriz.
Yol analizi modeli
p_pa <- semPaths(yol_fit,
whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",
layout = "spring",
nCharNodes = 0,
nCharEdges = 0)
p_pa_2 <- semptools::mark_sig(p_pa, yol_fit)
plot(p_pa_2)
yol_model_v1 <-
'stres ~ egzersiz + dayaniklilik
hastalik ~ egzersiz + dayaniklilik + form + stres
form ~ egzersiz + dayaniklilik
stres ~ form
egzersiz ~~ dayaniklilik'
yol_model_v2 <-
'stres ~ dayaniklilik
hastalik ~ form + stres
form ~ egzersiz + dayaniklilik
stres ~ form
egzersiz ~~ dayaniklilik'
yol_fit_v2 <- sem(yol_model_v2, veri)
fitMeasures(yol_fit_v2,c("rmsea","cfi","srmr"))
## rmsea cfi srmr
## 0.000 1.000 0.011
m <- matrix(c(NA, NA, "form", NA, NA,
"egzersiz", NA, NA, NA, NA,
NA, NA, NA, NA, "hastalik",
"dayaniklilik", NA, NA, NA, NA,
NA, NA, "stres", NA, NA
), byrow = TRUE, 5, 5)
m
## [,1] [,2] [,3] [,4] [,5]
## [1,] NA NA "form" NA NA
## [2,] "egzersiz" NA NA NA NA
## [3,] NA NA NA NA "hastalik"
## [4,] "dayaniklilik" NA NA NA NA
## [5,] NA NA "stres" NA NA
p_pa <- semPaths(yol_fit_v2, whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",
nCharNodes = 0, nCharEdges = 0,
layout=m)
Egzersiz yapanların formu iyi, formu iyi olan bireyler daha az hasta oluyor. Dayanıklılık stres üzerinden de hastalığı yorduyor.
Dışsal değişkenler arası kovaryansı kestirdi, içsel değişkenlerin hatasını kestirdi.
Her iki model de uyum sağlasaydı ki-kare fark testi yapılabilirdi. Hangi modelin daha iyi uyum sağladığını anlayabilmek için. Modellerin ki karelerin farkı ile serbestlik dereceleri arasındaki farkından anlamlı ise o model daha iyidir. Yani birinci model daha iyidir.
AIC ve BIC
***Modeli tanımlama kısmından devam edeceğiz.
Çoklu regresyondaki eksiklerini kapat.
Haftaya standartlaştırılmış bir modeldeki yol katsayılarını nasıl yorumlayacağız, dolaylı etkileri nasıl kestireceğiz, düzenleyicilik ve aracılık bu konuları konuşacağız.
Dersteki analiz ettiğimiz veri “Life events, fitness” verisi.
Eski çalıştığımız verilerden olan student-mat veri seti ile çalıştım.
Önce veri setini ortama aktarıyorum.
library(readxl)
r1 <-read_excel("student-mat.xlsx")
Sonrasında lavaan fonksiyonu ile modeli kuruyorum.
library(lavaan)
y1 <- 'G1 ~ G2 + studytime
traveltime ~ G2 + studytime + goout + G1
goout ~ G2 + studytime
G2 ~~ studytime'
y1_fit <- sem(y1, r1)
y1_fit
## lavaan 0.6-21 ended normally after 17 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 14
##
## Number of observations 395
##
## Model Test User Model:
##
## Test statistic 0.119
## Degrees of freedom 1
## P-value (Chi-square) 0.730
Modelin özetini summary fonksiyonu ile alıyorum.
summary(y1_fit, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-21 ended normally after 17 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 14
##
## Number of observations 395
##
## Model Test User Model:
##
## Test statistic 0.119
## Degrees of freedom 1
## P-value (Chi-square) 0.730
##
## Model Test Baseline Model:
##
## Test statistic 547.817
## Degrees of freedom 10
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 1.000
## Tucker-Lewis Index (TLI) 1.016
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3354.109
## Loglikelihood unrestricted model (H1) -3354.049
##
## Akaike (AIC) 6736.217
## Bayesian (BIC) 6791.922
## Sample-size adjusted Bayesian (SABIC) 6747.499
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.000
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.094
## P-value H_0: RMSEA <= 0.050 0.832
## P-value H_0: RMSEA >= 0.080 0.080
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.002
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## G1 ~
## G2 0.746 0.023 31.946 0.000 0.746 0.846
## studytime 0.181 0.105 1.725 0.085 0.181 0.046
## traveltime ~
## G2 -0.050 0.018 -2.851 0.004 -0.050 -0.270
## studytime -0.074 0.042 -1.766 0.077 -0.074 -0.088
## goout 0.001 0.031 0.033 0.973 0.001 0.002
## G1 0.032 0.020 1.599 0.110 0.032 0.151
## goout ~
## G2 -0.046 0.015 -3.125 0.002 -0.046 -0.156
## studytime -0.057 0.066 -0.852 0.394 -0.057 -0.043
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## G2 ~~
## studytime 0.428 0.160 2.676 0.007 0.428 0.136
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .G1 2.987 0.213 14.053 0.000 2.987 0.272
## .traveltime 0.468 0.033 14.053 0.000 0.468 0.964
## .goout 1.201 0.085 14.053 0.000 1.201 0.972
## G2 14.113 1.004 14.053 0.000 14.113 1.000
## studytime 0.703 0.050 14.053 0.000 0.703 1.000
Sonrasında yolları gösterirken “semPlot” ile şekilleri oluşturuyorum.
library(semPlot)
r123<- semPaths(
y1_fit, whatLabels = "est",
sizeMan = 10,
edge.label.cex = 1.15,
style = "ram",layout = "spring" ,
nCharNodes = 0, nCharEdges = 0)
r1234<- semptools::mark_sig(r123, y1_fit)
plot(r1234)
Son olarak diğer değerleri de inceleyelim.
library(lavaan)
fitMeasures(y1_fit,
fit.measures = c("chisq","df","pvalue",
"cfi","tli",
"rmsea","srmr"))
## chisq df pvalue cfi tli rmsea srmr
## 0.119 1.000 0.730 1.000 1.016 0.000 0.002
summary(y1_fit, fit.measures = TRUE)
## lavaan 0.6-21 ended normally after 17 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 14
##
## Number of observations 395
##
## Model Test User Model:
##
## Test statistic 0.119
## Degrees of freedom 1
## P-value (Chi-square) 0.730
##
## Model Test Baseline Model:
##
## Test statistic 547.817
## Degrees of freedom 10
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 1.000
## Tucker-Lewis Index (TLI) 1.016
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3354.109
## Loglikelihood unrestricted model (H1) -3354.049
##
## Akaike (AIC) 6736.217
## Bayesian (BIC) 6791.922
## Sample-size adjusted Bayesian (SABIC) 6747.499
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.000
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.094
## P-value H_0: RMSEA <= 0.050 0.832
## P-value H_0: RMSEA >= 0.080 0.080
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.002
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Regressions:
## Estimate Std.Err z-value P(>|z|)
## G1 ~
## G2 0.746 0.023 31.946 0.000
## studytime 0.181 0.105 1.725 0.085
## traveltime ~
## G2 -0.050 0.018 -2.851 0.004
## studytime -0.074 0.042 -1.766 0.077
## goout 0.001 0.031 0.033 0.973
## G1 0.032 0.020 1.599 0.110
## goout ~
## G2 -0.046 0.015 -3.125 0.002
## studytime -0.057 0.066 -0.852 0.394
##
## Covariances:
## Estimate Std.Err z-value P(>|z|)
## G2 ~~
## studytime 0.428 0.160 2.676 0.007
##
## Variances:
## Estimate Std.Err z-value P(>|z|)
## .G1 2.987 0.213 14.053 0.000
## .traveltime 0.468 0.033 14.053 0.000
## .goout 1.201 0.085 14.053 0.000
## G2 14.113 1.004 14.053 0.000
## studytime 0.703 0.050 14.053 0.000
Yorum:
İlk olarak regresyonları yorumlayalım.
G2 değişkeni G1 değişkenini istatistiksel açıdan anlamlı ve pozitif yönde güçlü bir biçimde yordamaktadır (ß=0.746, p<0.001).
G2 değişkeni traveltime değişkeni üzerinde istatistiksel açıdan anlamlı negatif yönde küçük bir etkiye sahiptir (ß=-0.050, p<0.05).
G2 değişkeni goout değişkeni üzerinde istatistiksel açıdan anlamlı negatif yönde küçük bir etkiye sahiptir (ß=-0.046, p<0.05).
G2 değişkeni ile studytime değişkeni arasında istatistiksel açıdan anlamlı pozitif bir ilişki bulunmaktadır (ß=-0.046, p<0.05).
Kovaryansa baktığımızda; G2 ile studytime arasında anlamlı pozitif ilişki bulunmaktadır (ß=0.428, p<0.05).
Buradan seyahat etme, dışarı çıkma, ders çalış anlamı çıkabilir :)
Model uyum indekslerine bakalım.
Yapısal eşitlik modeli analizine göre modelin veri ile iyi uyum gösterdiği belirlenmiştir (χ²(1)=0.119, p>0.05; CFI=1.00; TLI=1.016; RMSEA=0.00; SRMR=0.002).