Fina Nihayatul Husna (24031554022)
Juli Yawati Manalu (24031554050)
Alya Nabila Tamam (24031554099)
Sumber Dataset: https://www.kaggle.com/datasets/nikitamanaenkov/students-performance-dataset-in-physics-education
library(readr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(psych)
library(MVN)
## Warning: package 'MVN' was built under R version 4.5.3
##
## Attaching package: 'MVN'
## The following object is masked from 'package:psych':
##
## mardia
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:psych':
##
## logit
## The following object is masked from 'package:dplyr':
##
## recode
library(lavaan)
## Warning: package 'lavaan' was built under R version 4.5.3
## This is lavaan 0.6-21
## lavaan is FREE software! Please report any bugs.
##
## Attaching package: 'lavaan'
## The following object is masked from 'package:psych':
##
## cor2cov
library(semPlot)
## Warning: package 'semPlot' was built under R version 4.5.3
library(semTools)
## Warning: package 'semTools' was built under R version 4.5.3
##
## ###############################################################################
## This is semTools 0.5-8
## All users of R (or SEM) are invited to submit functions or ideas for functions.
## ###############################################################################
##
## Attaching package: 'semTools'
## The following objects are masked from 'package:psych':
##
## reliability, skew
## The following object is masked from 'package:readr':
##
## clipboard
# Import data
Data <- read_csv("C:/Users/LENOVO/Downloads/data.csv")
## Rows: 497 Columns: 331
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (252): STUDID, FCI1, FCI2, FCI3, FCI4, FCI5, FCI6, FCI7, FCI8, FCI9, FCI...
## dbl (79): NO, SCH, COH, GDR, AGE, FATHOCC, MOTHOCC, FATHEDU, MOTHEDU, FATHI...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Melihat struktur data
str(Data)
## spc_tbl_ [497 × 331] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ NO : num [1:497] 1 2 3 4 5 6 7 8 9 10 ...
## $ STUDID : chr [1:497] "A1001" "A1002" "A1003" "A1004" ...
## $ SCH : num [1:497] 1 1 1 1 1 1 1 1 1 1 ...
## $ COH : num [1:497] 1 1 1 1 1 1 1 1 1 1 ...
## $ GDR : num [1:497] 1 2 1 2 1 2 2 2 2 2 ...
## $ AGE : num [1:497] 3 1 2 3 2 2 2 2 2 2 ...
## $ FATHOCC : num [1:497] 1 4 4 1 1 1 1 4 1 2 ...
## $ MOTHOCC : num [1:497] 9 8 8 1 1 7 1 5 1 2 ...
## $ FATHEDU : num [1:497] 4 4 3 2 3 4 4 2 4 4 ...
## $ MOTHEDU : num [1:497] 5 4 4 2 3 2 3 1 3 4 ...
## $ FATHINC : num [1:497] 7 10 2 6 10 9 8 10 10 11 ...
## $ MOTHINC : num [1:497] 12 12 12 6 10 4 8 5 9 11 ...
## $ SIBL : num [1:497] 2 2 0 3 2 2 2 2 1 2 ...
## $ DOM : num [1:497] 1 1 1 1 1 2 2 1 1 1 ...
## $ LIT1 : num [1:497] 1 1 1 2 2 1 1 1 1 1 ...
## $ LIT2 : num [1:497] 1 1 1 1 1 2 1 1 1 1 ...
## $ PHYIDE1 : num [1:497] 3 2 2 3 3 2 1 2 2 2 ...
## $ PHYIDE2 : num [1:497] 1 2 1 1 1 1 1 1 1 1 ...
## $ FINTEST1 : num [1:497] 48 38 79 62 44 26 92 60 44 42 ...
## $ FINTEST2 : num [1:497] 56 61 73 59 40 32 86 68 46 43 ...
## $ TEACHPRED: num [1:497] 0 0 1 1 0 0 1 1 0 0 ...
## $ FCI1 : chr [1:497] "C" "C" "D" "D" ...
## $ FCI2 : chr [1:497] "E" "D" "D" "D" ...
## $ FCI3 : chr [1:497] "B" "B" "C" "C" ...
## $ FCI4 : chr [1:497] "A" "E" "E" "E" ...
## $ FCI5 : chr [1:497] "E" "A" "C" "C" ...
## $ FCI6 : chr [1:497] "B" "C" "B" "A" ...
## $ FCI7 : chr [1:497] "B" "B" "B" "A" ...
## $ FCI8 : chr [1:497] "A" "E" "A" "E" ...
## $ FCI9 : chr [1:497] "B" "A" "E" "A" ...
## $ FCI10 : chr [1:497] "D" "D" "D" "E" ...
## $ FCI11 : chr [1:497] "C" "C" "B" "C" ...
## $ FCI12 : chr [1:497] "B" "B" "B" "C" ...
## $ FCI13 : chr [1:497] "C" "C" "B" "B" ...
## $ FCI14 : chr [1:497] "A" "B" "A" "A" ...
## $ FCI15 : chr [1:497] "C" "C" "C" "C" ...
## $ FCI16 : chr [1:497] "C" "A" "A" "C" ...
## $ FCI17 : chr [1:497] "A" "B" "B" "D" ...
## $ FCI18 : chr [1:497] "E" "D" "D" "A" ...
## $ FCI19 : chr [1:497] "E" "D" "D" "B" ...
## $ FCI20 : chr [1:497] "A" "E" "C" "C" ...
## $ FCI21 : chr [1:497] "B" "C" "B" "B" ...
## $ FCI22 : chr [1:497] "D" "B" "D" "D" ...
## $ FCI23 : chr [1:497] "C" "A" "A" "B" ...
## $ FCI24 : chr [1:497] "E" "C" "A" "D" ...
## $ FCI25 : chr [1:497] "B" "C" "A" "D" ...
## $ FCI26 : chr [1:497] "C" "B" "D" "A" ...
## $ FCI27 : chr [1:497] "E" "B" "C" "C" ...
## $ FCI28 : chr [1:497] "D" "E" "C" "D" ...
## $ FCI29 : chr [1:497] "B" "B" "E" "A" ...
## $ FCI30 : chr [1:497] "E" "E" "B" "B" ...
## $ FMCE1 : chr [1:497] "A" "B" "B" "B" ...
## $ FMCE2 : chr [1:497] "B" "B" "D" "D" ...
## $ FMCE3 : chr [1:497] "F" "E" "F" "F" ...
## $ FMCE4 : chr [1:497] "G" "F" "F" "F" ...
## $ FMCE5 : chr [1:497] "B" "B" "D" "D" ...
## $ FMCE6 : chr [1:497] "F" "E" "B" "B" ...
## $ FMCE7 : chr [1:497] "B" "F" "B" "B" ...
## $ FMCE8 : chr [1:497] "G" "E" "A" "A" ...
## $ FMCE9 : chr [1:497] "D" "D" "A" "A" ...
## $ FMCE10 : chr [1:497] "B" "B" "A" "A" ...
## $ FMCE11 : chr [1:497] "A" "E" "A" "A" ...
## $ FMCE12 : chr [1:497] "D" "D" "A" "A" ...
## $ FMCE13 : chr [1:497] "A" "A" "A" "A" ...
## $ FMCE14 : chr [1:497] "A" "J" "E" "E" ...
## $ FMCE15 : chr [1:497] "E" "E" "E" "E" ...
## $ FMCE16 : chr [1:497] "C" "D" "A" "A" ...
## $ FMCE17 : chr [1:497] "B" "J" "E" "E" ...
## $ FMCE18 : chr [1:497] "H" "B" "B" "B" ...
## $ FMCE19 : chr [1:497] "D" "D" "B" "B" ...
## $ FMCE20 : chr [1:497] "G" "C" "G" "G" ...
## $ FMCE21 : chr [1:497] "H" "J" "E" "E" ...
## $ FMCE22 : chr [1:497] "E" "A" "A" "A" ...
## $ FMCE23 : chr [1:497] "G" "B" "B" "B" ...
## $ FMCE24 : chr [1:497] "C" "C" "C" "C" ...
## $ FMCE25 : chr [1:497] "B" "D" "B" "B" ...
## $ FMCE26 : chr [1:497] "C" "J" "C" "C" ...
## $ FMCE27 : chr [1:497] "A" "E" "A" "A" ...
## $ FMCE28 : chr [1:497] "A" "A" "A" "A" ...
## $ FMCE29 : chr [1:497] "A" "D" "A" "A" ...
## $ FMCE30 : chr [1:497] "E" "E" "E" "E" ...
## $ FMCE31 : chr [1:497] "E" "A" "E" "E" ...
## $ FMCE32 : chr [1:497] "E" "A" "E" "E" ...
## $ FMCE33 : chr [1:497] "E" "E" "E" "E" ...
## $ FMCE34 : chr [1:497] "E" "E" "E" "E" ...
## $ FMCE35 : chr [1:497] "A" "C" "A" "A" ...
## $ FMCE36 : chr [1:497] "A" "C" "C" "A" ...
## $ FMCE37 : chr [1:497] "A" "A" "A" "A" ...
## $ FMCE38 : chr [1:497] "A" "B" "B" "A" ...
## $ FMCE39 : chr [1:497] "E" "E" "E" "E" ...
## $ FMCE40 : chr [1:497] "A" "C" "A" "A" ...
## $ FMCE41 : chr [1:497] "F" "D" "F" "F" ...
## $ FMCE42 : chr [1:497] "B" "F" "B" "B" ...
## $ FMCE43 : chr [1:497] "D" "A" "D" "D" ...
## $ FMCE44 : chr [1:497] "B" "B" "B" "A" ...
## $ FMCE45 : chr [1:497] "B" "A" "B" "A" ...
## $ FMCE46 : chr [1:497] "A" "C" "A" "A" ...
## $ FMCE47 : chr [1:497] "A" "D" "A" "A" ...
## $ FMCE46a : chr [1:497] "karena resultan di bawah lebih kecil dan resultan di atas bukit lebih besar sehingga kelajuan saat dibawah lebih besar sibandin "Kelajuan pada saat di bawah lebih besar pada bukit yang lebih tinggi dan kurang curam daripada bukit sesuai gambar" "Kelajuan pada saat di bawah lebih besar pada bukit yang lebih tinggi dan kurang curam daripada bukit sesuai gambar. \n\nHal ini "Kelajuan pada saat di bawah lebih besar pada bukit yang lebih tinggi dan kurang curam daripada bukit sesuai gambar." ...
## [list output truncated]
## - attr(*, "spec")=
## .. cols(
## .. NO = col_double(),
## .. STUDID = col_character(),
## .. SCH = col_double(),
## .. COH = col_double(),
## .. GDR = col_double(),
## .. AGE = col_double(),
## .. FATHOCC = col_double(),
## .. MOTHOCC = col_double(),
## .. FATHEDU = col_double(),
## .. MOTHEDU = col_double(),
## .. FATHINC = col_double(),
## .. MOTHINC = col_double(),
## .. SIBL = col_double(),
## .. DOM = col_double(),
## .. LIT1 = col_double(),
## .. LIT2 = col_double(),
## .. PHYIDE1 = col_double(),
## .. PHYIDE2 = col_double(),
## .. FINTEST1 = col_double(),
## .. FINTEST2 = col_double(),
## .. TEACHPRED = col_double(),
## .. FCI1 = col_character(),
## .. FCI2 = col_character(),
## .. FCI3 = col_character(),
## .. FCI4 = col_character(),
## .. FCI5 = col_character(),
## .. FCI6 = col_character(),
## .. FCI7 = col_character(),
## .. FCI8 = col_character(),
## .. FCI9 = col_character(),
## .. FCI10 = col_character(),
## .. FCI11 = col_character(),
## .. FCI12 = col_character(),
## .. FCI13 = col_character(),
## .. FCI14 = col_character(),
## .. FCI15 = col_character(),
## .. FCI16 = col_character(),
## .. FCI17 = col_character(),
## .. FCI18 = col_character(),
## .. FCI19 = col_character(),
## .. FCI20 = col_character(),
## .. FCI21 = col_character(),
## .. FCI22 = col_character(),
## .. FCI23 = col_character(),
## .. FCI24 = col_character(),
## .. FCI25 = col_character(),
## .. FCI26 = col_character(),
## .. FCI27 = col_character(),
## .. FCI28 = col_character(),
## .. FCI29 = col_character(),
## .. FCI30 = col_character(),
## .. FMCE1 = col_character(),
## .. FMCE2 = col_character(),
## .. FMCE3 = col_character(),
## .. FMCE4 = col_character(),
## .. FMCE5 = col_character(),
## .. FMCE6 = col_character(),
## .. FMCE7 = col_character(),
## .. FMCE8 = col_character(),
## .. FMCE9 = col_character(),
## .. FMCE10 = col_character(),
## .. FMCE11 = col_character(),
## .. FMCE12 = col_character(),
## .. FMCE13 = col_character(),
## .. FMCE14 = col_character(),
## .. FMCE15 = col_character(),
## .. FMCE16 = col_character(),
## .. FMCE17 = col_character(),
## .. FMCE18 = col_character(),
## .. FMCE19 = col_character(),
## .. FMCE20 = col_character(),
## .. FMCE21 = col_character(),
## .. FMCE22 = col_character(),
## .. FMCE23 = col_character(),
## .. FMCE24 = col_character(),
## .. FMCE25 = col_character(),
## .. FMCE26 = col_character(),
## .. FMCE27 = col_character(),
## .. FMCE28 = col_character(),
## .. FMCE29 = col_character(),
## .. FMCE30 = col_character(),
## .. FMCE31 = col_character(),
## .. FMCE32 = col_character(),
## .. FMCE33 = col_character(),
## .. FMCE34 = col_character(),
## .. FMCE35 = col_character(),
## .. FMCE36 = col_character(),
## .. FMCE37 = col_character(),
## .. FMCE38 = col_character(),
## .. FMCE39 = col_character(),
## .. FMCE40 = col_character(),
## .. FMCE41 = col_character(),
## .. FMCE42 = col_character(),
## .. FMCE43 = col_character(),
## .. FMCE44 = col_character(),
## .. FMCE45 = col_character(),
## .. FMCE46 = col_character(),
## .. FMCE47 = col_character(),
## .. FMCE46a = col_character(),
## .. RRMCS1 = col_character(),
## .. RRMCS2 = col_character(),
## .. RRMCS3 = col_character(),
## .. RRMCS4 = col_character(),
## .. RRMCS5 = col_character(),
## .. RRMCS6 = col_character(),
## .. RRMCS7 = col_character(),
## .. RRMCS8 = col_character(),
## .. RRMCS9 = col_character(),
## .. RRMCS10 = col_character(),
## .. RRMCS11 = col_character(),
## .. RRMCS12 = col_character(),
## .. RRMCS13 = col_character(),
## .. RRMCS14 = col_character(),
## .. RRMCS15 = col_character(),
## .. RRMCS16 = col_character(),
## .. RRMCS17 = col_character(),
## .. RRMCS18 = col_character(),
## .. RRMCS19 = col_character(),
## .. RRMCS20 = col_character(),
## .. RRMCS21 = col_character(),
## .. RRMCS22 = col_character(),
## .. RRMCS23 = col_character(),
## .. RRMCS24 = col_character(),
## .. RRMCS25 = col_character(),
## .. RRMCS26 = col_character(),
## .. RRMCS27 = col_character(),
## .. RRMCS28 = col_character(),
## .. RRMCS29 = col_character(),
## .. RRMCS30 = col_character(),
## .. RRMCS1a = col_character(),
## .. RRMCS2a = col_character(),
## .. RRMCS3a = col_character(),
## .. RRMCS4a = col_character(),
## .. RRMCS5a = col_character(),
## .. RRMCS6a = col_character(),
## .. RRMCS7a = col_character(),
## .. RRMCS8a = col_character(),
## .. RRMCS9a = col_character(),
## .. RRMCS10a = col_character(),
## .. RRMCS11a = col_character(),
## .. RRMCS12a = col_character(),
## .. RRMCS13a = col_character(),
## .. RRMCS14a = col_character(),
## .. RRMCS15a = col_character(),
## .. RRMCS16a = col_character(),
## .. RRMCS17a = col_character(),
## .. RRMCS18a = col_character(),
## .. RRMCS19a = col_character(),
## .. RRMCS20a = col_character(),
## .. RRMCS21a = col_character(),
## .. RRMCS22a = col_character(),
## .. RRMCS23a = col_character(),
## .. RRMCS24a = col_character(),
## .. RRMCS25a = col_character(),
## .. RRMCS26a = col_character(),
## .. RRMCS27a = col_character(),
## .. RRMCS28a = col_character(),
## .. RRMCS29a = col_character(),
## .. RRMCS30a = col_character(),
## .. FMCI1 = col_character(),
## .. FMCI2 = col_character(),
## .. FMCI3 = col_character(),
## .. FMCI4 = col_character(),
## .. FMCI5 = col_character(),
## .. FMCI6 = col_character(),
## .. FMCI7 = col_character(),
## .. FMCI8 = col_character(),
## .. FMCI9 = col_character(),
## .. FMCI10 = col_character(),
## .. FMCI11 = col_character(),
## .. FMCI12 = col_character(),
## .. FMCI13 = col_character(),
## .. FMCI14 = col_character(),
## .. FMCI15 = col_character(),
## .. FMCI16 = col_character(),
## .. FMCI17 = col_character(),
## .. FMCI18 = col_character(),
## .. FMCI19 = col_character(),
## .. FMCI20 = col_character(),
## .. FMCI21 = col_character(),
## .. FMCI22 = col_character(),
## .. FMCI23 = col_character(),
## .. FMCI24 = col_character(),
## .. FMCI25 = col_character(),
## .. FMCI26 = col_character(),
## .. FMCI27 = col_character(),
## .. FMCI28 = col_character(),
## .. FMCI29 = col_character(),
## .. FMCI30 = col_character(),
## .. FMCI31 = col_character(),
## .. FMCI32 = col_character(),
## .. MWCS1 = col_character(),
## .. MWCS2 = col_character(),
## .. MWCS3 = col_character(),
## .. MWCS4 = col_character(),
## .. MWCS5 = col_character(),
## .. MWCS6 = col_character(),
## .. MWCS7 = col_character(),
## .. MWCS8 = col_character(),
## .. MWCS9 = col_character(),
## .. MWCS10 = col_character(),
## .. MWCS11 = col_character(),
## .. MWCS12 = col_character(),
## .. MWCS13 = col_character(),
## .. MWCS14 = col_character(),
## .. MWCS15 = col_character(),
## .. MWCS16 = col_character(),
## .. MWCS17 = col_character(),
## .. MWCS18 = col_character(),
## .. MWCS19 = col_character(),
## .. MWCS20 = col_character(),
## .. MWCS21 = col_character(),
## .. MWCS22 = col_character(),
## .. TCE1 = col_character(),
## .. TCE2 = col_character(),
## .. TCE3 = col_character(),
## .. TCE4 = col_character(),
## .. TCE5 = col_character(),
## .. TCE6 = col_character(),
## .. TCE7 = col_character(),
## .. TCE8 = col_character(),
## .. TCE9 = col_character(),
## .. TCE10 = col_character(),
## .. TCE11 = col_character(),
## .. TCE12 = col_character(),
## .. TCE13 = col_character(),
## .. TCE14 = col_character(),
## .. TCE15 = col_character(),
## .. TCE16 = col_character(),
## .. TCE17 = col_character(),
## .. TCE18 = col_character(),
## .. TCE19 = col_character(),
## .. TCE20 = col_character(),
## .. TCE21 = col_character(),
## .. TCE22 = col_character(),
## .. TCE23 = col_character(),
## .. TCE24 = col_character(),
## .. TCE25 = col_character(),
## .. TCE26 = col_character(),
## .. STPFaSL1 = col_character(),
## .. STPFaSL2 = col_character(),
## .. STPFaSL3 = col_character(),
## .. STPFaSL4 = col_character(),
## .. STPFaSL5 = col_character(),
## .. STPFaSL6 = col_character(),
## .. STPFaSL7 = col_character(),
## .. STPFaSL8 = col_character(),
## .. STPFaSL9 = col_character(),
## .. STPFaSL10 = col_character(),
## .. STPFaSL11 = col_character(),
## .. STPFaSL12 = col_character(),
## .. STPFaSL13 = col_character(),
## .. STPFaSL14 = col_character(),
## .. STPFaSL15 = col_character(),
## .. STPFaSL16 = col_character(),
## .. STPFaSL17 = col_character(),
## .. STPFaSL18 = col_character(),
## .. STPFaSL19 = col_character(),
## .. STPFaSL20 = col_character(),
## .. STPFaSL21 = col_character(),
## .. STPFaSL22 = col_character(),
## .. STPFaSL23 = col_character(),
## .. STPFaSL24 = col_character(),
## .. STPFaSL25 = col_character(),
## .. STPFaSL26 = col_character(),
## .. STPFaSL27 = col_character(),
## .. STPFaSL28 = col_character(),
## .. STPFaSL29 = col_character(),
## .. STPFaSL30 = col_character(),
## .. STPFaSL31 = col_character(),
## .. STPFaSL32 = col_character(),
## .. STPFaSL33 = col_character(),
## .. LABGR = col_double(),
## .. `SAAR-B1` = col_double(),
## .. `SAAR-B2` = col_double(),
## .. `SAAR-B3` = col_double(),
## .. `SAAR-B4` = col_double(),
## .. `SAAR-B5` = col_double(),
## .. `SAAR-B6` = col_double(),
## .. `SAAR-B7` = col_double(),
## .. `SAAR-B8` = col_double(),
## .. `SAAR-B9` = col_double(),
## .. `SAAR-F10` = col_double(),
## .. `SAAR-F11` = col_double(),
## .. `SAAR-G12` = col_double(),
## .. `SAAR-G13` = col_double(),
## .. `SAAR-G14` = col_double(),
## .. `SAAR-G15` = col_double(),
## .. `SAAR-G16` = col_double(),
## .. CLASS1 = col_double(),
## .. CLASS2 = col_double(),
## .. CLASS3 = col_double(),
## .. CLASS4 = col_double(),
## .. CLASS5 = col_double(),
## .. CLASS6 = col_double(),
## .. CLASS7 = col_double(),
## .. CLASS8 = col_double(),
## .. CLASS9 = col_double(),
## .. CLASS10 = col_double(),
## .. CLASS11 = col_double(),
## .. CLASS12 = col_double(),
## .. CLASS13 = col_double(),
## .. CLASS14 = col_double(),
## .. CLASS15 = col_double(),
## .. CLASS16 = col_double(),
## .. CLASS17 = col_double(),
## .. CLASS18 = col_double(),
## .. CLASS19 = col_double(),
## .. CLASS20 = col_double(),
## .. CLASS21 = col_double(),
## .. CLASS22 = col_double(),
## .. CLASS23 = col_double(),
## .. CLASS24 = col_double(),
## .. CLASS25 = col_double(),
## .. CLASS26 = col_double(),
## .. CLASS27 = col_double(),
## .. CLASS28 = col_double(),
## .. CLASS29 = col_double(),
## .. CLASS30 = col_double(),
## .. CLASS31 = col_double(),
## .. CLASS32 = col_double(),
## .. CLASS33 = col_double(),
## .. CLASS34 = col_double(),
## .. CLASS35 = col_double(),
## .. CLASS36 = col_double(),
## .. CLASS37 = col_double(),
## .. CLASS38 = col_double(),
## .. CLASS39 = col_double(),
## .. CLASS40 = col_double(),
## .. CLASS41 = col_double(),
## .. CLASS42 = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
head(Data)
## # A tibble: 6 × 331
## NO STUDID SCH COH GDR AGE FATHOCC MOTHOCC FATHEDU MOTHEDU FATHINC
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 A1001 1 1 1 3 1 9 4 5 7
## 2 2 A1002 1 1 2 1 4 8 4 4 10
## 3 3 A1003 1 1 1 2 4 8 3 4 2
## 4 4 A1004 1 1 2 3 1 1 2 2 6
## 5 5 A1005 1 1 1 2 1 1 3 3 10
## 6 6 A1006 1 1 2 2 1 7 4 2 9
## # ℹ 320 more variables: MOTHINC <dbl>, SIBL <dbl>, DOM <dbl>, LIT1 <dbl>,
## # LIT2 <dbl>, PHYIDE1 <dbl>, PHYIDE2 <dbl>, FINTEST1 <dbl>, FINTEST2 <dbl>,
## # TEACHPRED <dbl>, FCI1 <chr>, FCI2 <chr>, FCI3 <chr>, FCI4 <chr>,
## # FCI5 <chr>, FCI6 <chr>, FCI7 <chr>, FCI8 <chr>, FCI9 <chr>, FCI10 <chr>,
## # FCI11 <chr>, FCI12 <chr>, FCI13 <chr>, FCI14 <chr>, FCI15 <chr>,
## # FCI16 <chr>, FCI17 <chr>, FCI18 <chr>, FCI19 <chr>, FCI20 <chr>,
## # FCI21 <chr>, FCI22 <chr>, FCI23 <chr>, FCI24 <chr>, FCI25 <chr>, …
sem_data <- Data %>%
select(
CLASS1, CLASS2, CLASS3, CLASS4,
PHYIDE1, PHYIDE2,
FCI1, FCI2, FCI3, FCI4
)
colSums(is.na(sem_data))
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI1 FCI2 FCI3 FCI4
## 0 0 0 0 0 0 0 0 0 0
#Jika terdapat missing value:
sem_data <- na.omit(sem_data)
sem_data <- sem_data %>%
mutate(across(everything(), as.numeric))
## Warning: There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(everything(), as.numeric)`.
## Caused by warning:
## ! NAs introduced by coercion
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
describe(sem_data)
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## vars n mean sd median trimmed mad min max range skew kurtosis
## CLASS1 1 497 3.32 1.24 3 3.40 1.48 1 5 4 -0.41 -0.76
## CLASS2 2 497 3.32 1.27 4 3.40 1.48 1 5 4 -0.42 -0.84
## CLASS3 3 497 3.21 1.20 3 3.26 1.48 1 5 4 -0.28 -0.71
## CLASS4 4 497 3.48 1.36 4 3.60 1.48 1 5 4 -0.45 -0.99
## PHYIDE1 5 497 2.27 0.66 2 2.32 0.00 1 4 3 -0.06 -0.36
## PHYIDE2 6 497 1.13 0.38 1 1.02 0.00 1 3 2 2.97 8.60
## FCI1 7 0 NaN NA NA NaN NA Inf -Inf -Inf NA NA
## FCI2 8 0 NaN NA NA NaN NA Inf -Inf -Inf NA NA
## FCI3 9 0 NaN NA NA NaN NA Inf -Inf -Inf NA NA
## FCI4 10 0 NaN NA NA NaN NA Inf -Inf -Inf NA NA
## se
## CLASS1 0.06
## CLASS2 0.06
## CLASS3 0.05
## CLASS4 0.06
## PHYIDE1 0.03
## PHYIDE2 0.02
## FCI1 NA
## FCI2 NA
## FCI3 NA
## FCI4 NA
Data <- Data %>%
mutate(
FCI1 = as.numeric(factor(FCI1)),
FCI2 = as.numeric(factor(FCI2)),
FCI3 = as.numeric(factor(FCI3)),
FCI4 = as.numeric(factor(FCI4))
)
sem_data <- Data %>%
select(
CLASS1,
CLASS2,
CLASS3,
CLASS4,
PHYIDE1,
PHYIDE2,
FCI1,
FCI2,
FCI3,
FCI4
)
str(sem_data)
## tibble [497 × 10] (S3: tbl_df/tbl/data.frame)
## $ CLASS1 : num [1:497] 4 5 4 3 5 1 3 5 3 4 ...
## $ CLASS2 : num [1:497] 5 3 2 2 2 1 3 4 5 5 ...
## $ CLASS3 : num [1:497] 5 3 5 3 4 1 4 3 4 3 ...
## $ CLASS4 : num [1:497] 3 4 5 5 3 1 4 5 5 5 ...
## $ PHYIDE1: num [1:497] 3 2 2 3 3 2 1 2 2 2 ...
## $ PHYIDE2: num [1:497] 1 2 1 1 1 1 1 1 1 1 ...
## $ FCI1 : num [1:497] 3 3 4 4 4 4 4 4 1 3 ...
## $ FCI2 : num [1:497] 5 4 4 4 4 1 4 2 4 4 ...
## $ FCI3 : num [1:497] 2 2 3 3 5 1 2 2 5 2 ...
## $ FCI4 : num [1:497] 1 5 5 5 1 5 4 1 1 1 ...
mvn_result <- mvn(
sem_data,
mvn_test = "mardia"
)
mvn_result$multivariate_normality
## Test Statistic p.value Method MVN
## 1 Mardia Skewness 1263.407 <0.001 asymptotic ✗ Not normal
## 2 Mardia Kurtosis 3.759 <0.001 asymptotic ✗ Not normal
Meskipun asumsi normalitas multivariat tidak terpenuhi, analisis SEM masih dapat dilakukan karena jumlah sampel cukup besar (n = 497). Estimator yang lebih robust seperti Maximum Likelihood Robust (MLR) atau metode bootstrap dapat digunakan untuk mengatasi pelanggaran normalitas.
mvn_result <- MVN::mvn(sem_data)
mvn_result
## $multivariate_normality
## Test Statistic p.value Method MVN
## 1 Henze-Zirkler 1.863 <0.001 asymptotic ✗ Not normal
##
## $univariate_normality
## Test Variable Statistic p.value Normality
## 1 Anderson-Darling CLASS1 18.181 <0.001 ✗ Not normal
## 2 Anderson-Darling CLASS2 18.755 <0.001 ✗ Not normal
## 3 Anderson-Darling CLASS3 16.956 <0.001 ✗ Not normal
## 4 Anderson-Darling CLASS4 21.859 <0.001 ✗ Not normal
## 5 Anderson-Darling PHYIDE1 48.095 <0.001 ✗ Not normal
## 6 Anderson-Darling PHYIDE2 148.833 <0.001 ✗ Not normal
## 7 Anderson-Darling FCI1 26.936 <0.001 ✗ Not normal
## 8 Anderson-Darling FCI2 35.756 <0.001 ✗ Not normal
## 9 Anderson-Darling FCI3 28.013 <0.001 ✗ Not normal
## 10 Anderson-Darling FCI4 50.547 <0.001 ✗ Not normal
##
## $descriptives
## Variable n Mean Std.Dev Median Min Max 25th 75th Skew Kurtosis
## 1 CLASS1 497 3.324 1.240 3 1 5 3 4 -0.416 2.254
## 2 CLASS2 497 3.324 1.274 4 1 5 2 4 -0.424 2.169
## 3 CLASS3 497 3.207 1.198 3 1 5 3 4 -0.284 2.301
## 4 CLASS4 497 3.481 1.359 4 1 5 3 5 -0.452 2.017
## 5 PHYIDE1 497 2.274 0.658 2 1 4 2 3 -0.060 2.651
## 6 PHYIDE2 497 1.133 0.384 1 1 3 1 1 2.976 11.644
## 7 FCI1 497 3.010 1.290 3 1 5 2 4 -0.380 1.964
## 8 FCI2 497 3.062 1.311 4 1 5 2 4 -0.448 1.819
## 9 FCI3 497 2.668 1.169 2 1 5 2 3 0.652 2.546
## 10 FCI4 497 2.654 1.728 2 1 5 1 5 0.329 1.325
##
## $data
## # A tibble: 497 × 10
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI1 FCI2 FCI3 FCI4
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 4 5 5 3 3 1 3 5 2 1
## 2 5 3 3 4 2 2 3 4 2 5
## 3 4 2 5 5 2 1 4 4 3 5
## 4 3 2 3 5 3 1 4 4 3 5
## 5 5 2 4 3 3 1 4 4 5 1
## 6 1 1 1 1 2 1 4 1 1 5
## 7 3 3 4 4 1 1 4 4 2 4
## 8 5 4 3 5 2 1 4 2 2 1
## 9 3 5 4 5 2 1 1 4 5 1
## 10 4 5 3 5 2 1 3 4 2 1
## # ℹ 487 more rows
##
## $subset
## NULL
##
## $outlierMethod
## [1] "none"
##
## attr(,"class")
## [1] "mvn"
cor_matrix <- cor(sem_data)
cor_matrix
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1
## CLASS1 1.000000000 0.645569800 0.46909803 0.537801994 0.054211229
## CLASS2 0.645569800 1.000000000 0.52672454 0.529404714 0.016700549
## CLASS3 0.469098035 0.526724542 1.00000000 0.548004705 -0.051629157
## CLASS4 0.537801994 0.529404714 0.54800471 1.000000000 -0.100097049
## PHYIDE1 0.054211229 0.016700549 -0.05162916 -0.100097049 1.000000000
## PHYIDE2 0.015314261 0.006671489 -0.10809763 -0.095509732 0.190877760
## FCI1 0.035775425 -0.005669511 0.01430910 0.009887743 -0.005626064
## FCI2 -0.008729755 0.004776397 0.01742322 -0.021388359 0.113344842
## FCI3 -0.039690951 0.008731026 -0.05009788 -0.017322389 -0.109647483
## FCI4 -0.020966669 -0.085455446 -0.08705218 -0.045757545 -0.019389252
## PHYIDE2 FCI1 FCI2 FCI3 FCI4
## CLASS1 0.0153142607 0.035775425 -0.008729755 -0.039690951 -0.0209666691
## CLASS2 0.0066714891 -0.005669511 0.004776397 0.008731026 -0.0854554460
## CLASS3 -0.1080976304 0.014309098 0.017423222 -0.050097881 -0.0870521826
## CLASS4 -0.0955097316 0.009887743 -0.021388359 -0.017322389 -0.0457575455
## PHYIDE1 0.1908777604 -0.005626064 0.113344842 -0.109647483 -0.0193892517
## PHYIDE2 1.0000000000 -0.084069750 -0.044475814 -0.058727921 -0.0004827359
## FCI1 -0.0840697498 1.000000000 0.185588195 0.115856133 0.1038159757
## FCI2 -0.0444758145 0.185588195 1.000000000 -0.010133947 -0.2751998217
## FCI3 -0.0587279207 0.115856133 -0.010133947 1.000000000 0.0976978148
## FCI4 -0.0004827359 0.103815976 -0.275199822 0.097697815 1.0000000000
kmo_result <- KMO(cor_matrix)
kmo_result
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = cor_matrix)
## Overall MSA = 0.72
## MSA for each item =
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI1 FCI2 FCI3 FCI4
## 0.75 0.75 0.81 0.80 0.50 0.55 0.43 0.45 0.52 0.47
kmo_result$MSAi
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI1 FCI2
## 0.7527646 0.7549177 0.8114198 0.8020779 0.4981213 0.5527411 0.4253460 0.4460941
## FCI3 FCI4
## 0.5156948 0.4684201
sem_data2 <- sem_data %>%
select(
CLASS1,
CLASS2,
CLASS3,
CLASS4,
PHYIDE1,
PHYIDE2,
FCI3
)
str(sem_data2)
## tibble [497 × 7] (S3: tbl_df/tbl/data.frame)
## $ CLASS1 : num [1:497] 4 5 4 3 5 1 3 5 3 4 ...
## $ CLASS2 : num [1:497] 5 3 2 2 2 1 3 4 5 5 ...
## $ CLASS3 : num [1:497] 5 3 5 3 4 1 4 3 4 3 ...
## $ CLASS4 : num [1:497] 3 4 5 5 3 1 4 5 5 5 ...
## $ PHYIDE1: num [1:497] 3 2 2 3 3 2 1 2 2 2 ...
## $ PHYIDE2: num [1:497] 1 2 1 1 1 1 1 1 1 1 ...
## $ FCI3 : num [1:497] 2 2 3 3 5 1 2 2 5 2 ...
cor_matrix2 <- cor(sem_data2)
cor_matrix2
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1
## CLASS1 1.00000000 0.645569800 0.46909803 0.53780199 0.05421123
## CLASS2 0.64556980 1.000000000 0.52672454 0.52940471 0.01670055
## CLASS3 0.46909803 0.526724542 1.00000000 0.54800471 -0.05162916
## CLASS4 0.53780199 0.529404714 0.54800471 1.00000000 -0.10009705
## PHYIDE1 0.05421123 0.016700549 -0.05162916 -0.10009705 1.00000000
## PHYIDE2 0.01531426 0.006671489 -0.10809763 -0.09550973 0.19087776
## FCI3 -0.03969095 0.008731026 -0.05009788 -0.01732239 -0.10964748
## PHYIDE2 FCI3
## CLASS1 0.015314261 -0.039690951
## CLASS2 0.006671489 0.008731026
## CLASS3 -0.108097630 -0.050097881
## CLASS4 -0.095509732 -0.017322389
## PHYIDE1 0.190877760 -0.109647483
## PHYIDE2 1.000000000 -0.058727921
## FCI3 -0.058727921 1.000000000
kmo_result2 <- KMO(cor_matrix2)
# hasil KMO keseluruhan
kmo_result2
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = cor_matrix2)
## Overall MSA = 0.76
## MSA for each item =
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI3
## 0.76 0.76 0.81 0.80 0.51 0.56 0.48
kmo_result2$MSAi
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI3
## 0.7581613 0.7575543 0.8096925 0.8008859 0.5104111 0.5562370 0.4766117
sem_data3 <- sem_data %>%
select(
CLASS1,
CLASS2,
CLASS3,
CLASS4,
PHYIDE1,
PHYIDE2
)
cor_matrix3 <- cor(sem_data3)
kmo_result3 <- KMO(cor_matrix3)
kmo_result3
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = cor_matrix3)
## Overall MSA = 0.77
## MSA for each item =
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2
## 0.76 0.76 0.81 0.80 0.49 0.55
kmo_result3$MSAi
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2
## 0.7581605 0.7617605 0.8132783 0.8002812 0.4944954 0.5467396
Nilai tersebut berada di atas 0,70 sehingga dapat disimpulkan bahwa data memiliki tingkat kecukupan sampel yang baik dan layak digunakan untuk analisis faktor maupun Structural Equation Modeling (SEM).
Indikator PHYIDE1 memiliki nilai MSA sebesar 0,49 yang sedikit berada di bawah batas umum 0,50. Namun karena nilainya sangat mendekati batas minimum dan konstruk Physics_Identity hanya memiliki dua indikator, maka indikator tersebut masih dapat dipertahankan dalam model penelitian.
vif_model <- lm(
FCI1 ~ CLASS1 + CLASS2 + CLASS3 + CLASS4 +
PHYIDE1 + PHYIDE2 +
FCI2 + FCI3 + FCI4,
data = sem_data
)
vif(vif_model)
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1 PHYIDE2 FCI2 FCI3
## 1.939245 2.014044 1.652028 1.762358 1.087969 1.065676 1.103168 1.031978
## FCI4
## 1.107508
Karena seluruh nilai VIF berada pada rentang sekitar 1–2, maka dapat disimpulkan bahwa tidak terdapat masalah multikolinearitas antar variabel dalam model penelitian.
Hal ini menunjukkan bahwa antar variabel independen tidak memiliki korelasi yang terlalu tinggi sehingga layak digunakan dalam analisis SEM.
model_sem <- '
# Variabel laten
Classroom =~ CLASS1 + CLASS2 + CLASS3 + CLASS4
PhysicsIdentity =~ PHYIDE1 + PHYIDE2
# Hubungan struktural
PhysicsIdentity ~ Classroom
'
Karena data tidak memenuhi asumsi normalitas multivariat berdasarkan uji Mardia, maka estimasi model dilakukan menggunakan Maximum Likelihood Robust (MLR) yang memberikan koreksi terhadap ketidaknormalan data pada standard error dan uji signifikansi.
fit_sem <- sem(
model_sem,
data = sem_data3,
estimator = "MLR"
)
summary(
fit_sem,
fit.measures = TRUE,
standardized = TRUE,
rsquare = TRUE
)
## lavaan 0.6-21 ended normally after 73 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 13
##
## Number of observations 497
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 44.499 38.457
## Degrees of freedom 8 8
## P-value (Chi-square) 0.000 0.000
## Scaling correction factor 1.157
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 762.232 656.140
## Degrees of freedom 15 15
## P-value 0.000 0.000
## Scaling correction factor 1.162
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.951 0.952
## Tucker-Lewis Index (TLI) 0.908 0.911
##
## Robust Comparative Fit Index (CFI) 0.953
## Robust Tucker-Lewis Index (TLI) 0.911
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3655.508 -3655.508
## Scaling correction factor 1.284
## for the MLR correction
## Loglikelihood unrestricted model (H1) -3633.259 -3633.259
## Scaling correction factor 1.235
## for the MLR correction
##
## Akaike (AIC) 7337.016 7337.016
## Bayesian (BIC) 7391.728 7391.728
## Sample-size adjusted Bayesian (SABIC) 7350.465 7350.465
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.096 0.088
## 90 Percent confidence interval - lower 0.069 0.063
## 90 Percent confidence interval - upper 0.124 0.114
## P-value H_0: RMSEA <= 0.050 0.003 0.008
## P-value H_0: RMSEA >= 0.080 0.847 0.711
##
## Robust RMSEA 0.094
## 90 Percent confidence interval - lower 0.066
## 90 Percent confidence interval - upper 0.125
## P-value H_0: Robust RMSEA <= 0.050 0.007
## P-value H_0: Robust RMSEA >= 0.080 0.806
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.043 0.043
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Classroom =~
## CLASS1 1.000 0.953 0.769
## CLASS2 1.063 0.045 23.547 0.000 1.013 0.796
## CLASS3 0.843 0.057 14.728 0.000 0.803 0.671
## CLASS4 1.010 0.057 17.590 0.000 0.963 0.709
## PhysicsIdentity =~
## PHYIDE1 1.000 0.157 0.239
## PHYIDE2 1.954 7.460 0.262 0.793 0.307 0.799
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## PhysicsIdentity ~
## Classroom -0.009 0.037 -0.252 0.801 -0.056 -0.056
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .CLASS1 0.626 0.068 9.220 0.000 0.626 0.408
## .CLASS2 0.592 0.074 8.055 0.000 0.592 0.366
## .CLASS3 0.787 0.063 12.554 0.000 0.787 0.549
## .CLASS4 0.917 0.081 11.369 0.000 0.917 0.497
## .PHYIDE1 0.408 0.098 4.174 0.000 0.408 0.943
## .PHYIDE2 0.053 0.361 0.148 0.883 0.053 0.361
## Classroom 0.909 0.096 9.494 0.000 1.000 1.000
## .PhysicsIdentty 0.025 0.094 0.262 0.793 0.997 0.997
##
## R-Square:
## Estimate
## CLASS1 0.592
## CLASS2 0.634
## CLASS3 0.451
## CLASS4 0.503
## PHYIDE1 0.057
## PHYIDE2 0.639
## PhysicsIdentty 0.003
Analisis Structural Equation Modeling (SEM) dilakukan menggunakan metode estimasi Maximum Likelihood Robust (MLR) karena data tidak memenuhi asumsi normalitas multivariat. Model diestimasi menggunakan 497 observasi dan menghasilkan konvergensi yang baik setelah 73 iterasi.
Berdasarkan hasil analisis SEM, model penelitian memiliki tingkat kecocokan yang cukup baik meskipun nilai RMSEA masih relatif tinggi. Konstruk Classroom berhasil diukur dengan baik oleh seluruh indikatornya. Namun, hubungan struktural antara Classroom dan PhysicsIdentity tidak signifikan. Selain itu, nilai R-square yang sangat kecil menunjukkan bahwa Classroom bukan merupakan faktor utama yang memengaruhi PhysicsIdentity pada data penelitian ini.
# Standardized solution
standardizedSolution(fit_sem)
## lhs op rhs est.std se z pvalue ci.lower
## 1 Classroom =~ CLASS1 0.769 0.030 25.617 0.000 0.711
## 2 Classroom =~ CLASS2 0.796 0.028 27.988 0.000 0.741
## 3 Classroom =~ CLASS3 0.671 0.036 18.896 0.000 0.602
## 4 Classroom =~ CLASS4 0.709 0.033 21.510 0.000 0.644
## 5 PhysicsIdentity =~ PHYIDE1 0.239 0.457 0.523 0.601 -0.657
## 6 PhysicsIdentity =~ PHYIDE2 0.799 1.531 0.522 0.602 -2.201
## 7 PhysicsIdentity ~ Classroom -0.056 0.120 -0.467 0.641 -0.292
## 8 CLASS1 ~~ CLASS1 0.408 0.046 8.827 0.000 0.317
## 9 CLASS2 ~~ CLASS2 0.366 0.045 8.070 0.000 0.277
## 10 CLASS3 ~~ CLASS3 0.549 0.048 11.521 0.000 0.456
## 11 CLASS4 ~~ CLASS4 0.497 0.047 10.640 0.000 0.406
## 12 PHYIDE1 ~~ PHYIDE1 0.943 0.218 4.321 0.000 0.515
## 13 PHYIDE2 ~~ PHYIDE2 0.361 2.447 0.148 0.883 -4.434
## 14 Classroom ~~ Classroom 1.000 0.000 NA NA 1.000
## 15 PhysicsIdentity ~~ PhysicsIdentity 0.997 0.013 73.939 0.000 0.970
## ci.upper
## 1 0.828
## 2 0.852
## 3 0.741
## 4 0.774
## 5 1.134
## 6 3.799
## 7 0.180
## 8 0.499
## 9 0.455
## 10 0.643
## 11 0.589
## 12 1.371
## 13 5.157
## 14 1.000
## 15 1.023
# Menampilkan nilai R-square
inspect(fit_sem, "r2")
## CLASS1 CLASS2 CLASS3 CLASS4 PHYIDE1
## 0.592 0.634 0.451 0.503 0.057
## PHYIDE2 PhysicsIdentity
## 0.639 0.003
# Modification Indices
modindices(fit_sem, sort = TRUE, minimum.value = 3.84)
## lhs op rhs mi epc sepc.lv sepc.all sepc.nox
## 22 CLASS1 ~~ CLASS2 20.702 0.299 0.299 0.491 0.491
## 31 CLASS3 ~~ CLASS4 18.035 0.223 0.223 0.263 0.263
## 28 CLASS2 ~~ CLASS4 12.797 -0.230 -0.230 -0.312 -0.312
## 23 CLASS1 ~~ CLASS3 12.739 -0.180 -0.180 -0.256 -0.256
## 34 CLASS4 ~~ PHYIDE1 7.994 -0.088 -0.088 -0.143 -0.143
## 20 PhysicsIdentity =~ CLASS3 7.050 -0.917 -0.144 -0.120 -0.120
## 21 PhysicsIdentity =~ CLASS4 6.522 -0.975 -0.153 -0.113 -0.113
## 33 CLASS3 ~~ PHYIDE2 5.496 -0.038 -0.038 -0.188 -0.188
## 25 CLASS1 ~~ PHYIDE1 5.385 0.063 0.063 0.125 0.125
## 18 PhysicsIdentity =~ CLASS1 5.320 0.771 0.121 0.098 0.098
## 19 PhysicsIdentity =~ CLASS2 4.081 0.685 0.108 0.084 0.084
semPaths(
fit_sem,
what = "std",
layout = "tree",
edge.label.cex = 0.8,
sizeMan = 6,
sizeLat = 8,
residuals = FALSE,
intercepts = FALSE
)
summary(fit_sem, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
## lavaan 0.6-21 ended normally after 73 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 13
##
## Number of observations 497
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 44.499 38.457
## Degrees of freedom 8 8
## P-value (Chi-square) 0.000 0.000
## Scaling correction factor 1.157
## Yuan-Bentler correction (Mplus variant)
##
## Model Test Baseline Model:
##
## Test statistic 762.232 656.140
## Degrees of freedom 15 15
## P-value 0.000 0.000
## Scaling correction factor 1.162
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.951 0.952
## Tucker-Lewis Index (TLI) 0.908 0.911
##
## Robust Comparative Fit Index (CFI) 0.953
## Robust Tucker-Lewis Index (TLI) 0.911
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3655.508 -3655.508
## Scaling correction factor 1.284
## for the MLR correction
## Loglikelihood unrestricted model (H1) -3633.259 -3633.259
## Scaling correction factor 1.235
## for the MLR correction
##
## Akaike (AIC) 7337.016 7337.016
## Bayesian (BIC) 7391.728 7391.728
## Sample-size adjusted Bayesian (SABIC) 7350.465 7350.465
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.096 0.088
## 90 Percent confidence interval - lower 0.069 0.063
## 90 Percent confidence interval - upper 0.124 0.114
## P-value H_0: RMSEA <= 0.050 0.003 0.008
## P-value H_0: RMSEA >= 0.080 0.847 0.711
##
## Robust RMSEA 0.094
## 90 Percent confidence interval - lower 0.066
## 90 Percent confidence interval - upper 0.125
## P-value H_0: Robust RMSEA <= 0.050 0.007
## P-value H_0: Robust RMSEA >= 0.080 0.806
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.043 0.043
##
## Parameter Estimates:
##
## Standard errors Sandwich
## Information bread Observed
## Observed information based on Hessian
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Classroom =~
## CLASS1 1.000 0.953 0.769
## CLASS2 1.063 0.045 23.547 0.000 1.013 0.796
## CLASS3 0.843 0.057 14.728 0.000 0.803 0.671
## CLASS4 1.010 0.057 17.590 0.000 0.963 0.709
## PhysicsIdentity =~
## PHYIDE1 1.000 0.157 0.239
## PHYIDE2 1.954 7.460 0.262 0.793 0.307 0.799
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## PhysicsIdentity ~
## Classroom -0.009 0.037 -0.252 0.801 -0.056 -0.056
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .CLASS1 0.626 0.068 9.220 0.000 0.626 0.408
## .CLASS2 0.592 0.074 8.055 0.000 0.592 0.366
## .CLASS3 0.787 0.063 12.554 0.000 0.787 0.549
## .CLASS4 0.917 0.081 11.369 0.000 0.917 0.497
## .PHYIDE1 0.408 0.098 4.174 0.000 0.408 0.943
## .PHYIDE2 0.053 0.361 0.148 0.883 0.053 0.361
## Classroom 0.909 0.096 9.494 0.000 1.000 1.000
## .PhysicsIdentty 0.025 0.094 0.262 0.793 0.997 0.997
##
## R-Square:
## Estimate
## CLASS1 0.592
## CLASS2 0.634
## CLASS3 0.451
## CLASS4 0.503
## PHYIDE1 0.057
## PHYIDE2 0.639
## PhysicsIdentty 0.003
Hasil SEM menunjukkan model cukup fit (CFI = 0,951; TLI = 0,908; SRMR = 0,043), meskipun RMSEA masih kurang baik (0,096). Indikator Classroom valid dan reliabel, sedangkan PhysicsIdentity kurang kuat (terutama PHYIDE1). Hubungan Classroom → PhysicsIdentity tidak signifikan (p = 0,801) dengan R-square sangat rendah (0,003), sehingga pengaruhnya hampir tidak ada.