02.03.2026_3.Ders

❔Soru 1: Basit Regresyon

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

❔Soru 2: Çoklu Regresyon

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ı)

❔Soru 3: Çoklu Regresyon

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.

💫 Yol Analizi

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.

🙂 Deneme

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).