setwd(“C:\Users\DELL\Downloads”) data <- read.csv(“ResearchInformation3.csv”) dim(data) #cek struktur dan dimensi data str(data) summary(data) #cek missing value colSums(is.na(data))
library(lavaan) library(semPlot) library(tidyverse)
data\(Department <- factor(data\)Department) data\(Department_encoded <- as.numeric(data\)Department)
data\(Gender <- factor(data\)Gender, levels = c(“Female”, “Male”)) data\(Gender_encoded <- as.numeric(data\)Gender) - 1
data\(Income <- trimws(data\)Income) data\(Income <- factor(data\)Income, levels = c(“Low (Below 15,000)”, “Lower middle (15,000-30,000)”, “Upper middle (30,000-50,000)”, “High (Above 50,000)”), ordered = TRUE)
data\(Income_encoded <- as.numeric(data\)Income)
data\(Hometown <- factor(data\)Hometown, levels = c(“Village”, “City”)) data\(Hometown_encoded <- as.numeric(data\)Hometown) - 1
data\(Preparation <- factor(data\)Preparation, levels = c(“0-1 Hour”, “2-3 Hours”, “More than 3 Hours”), ordered = TRUE)
data\(Preparation_encoded <- as.numeric(data\)Preparation)
data\(Gaming <- factor(data\)Gaming, levels = c(“0-1 Hour”, “2-3 Hours”, “More than 3 Hours”), ordered = TRUE)
data\(Gaming_encoded <- as.numeric(data\)Gaming)
data\(Attendance <- factor(data\)Attendance, levels = c(“Below 40%”, “40%-59%”, “60%-79%”, “80%-100%”), ordered = TRUE)
data\(Attendance_encoded <- as.numeric(data\)Attendance)
data\(Job <- factor(data\)Job, levels = c(“No”, “Yes”)) data\(Job_encoded <- as.numeric(data\)Job) - 1
data\(Extra <- factor(data\)Extra, levels = c(“No”, “Yes”)) data\(Extra_encoded <- as.numeric(data\)Extra) - 1
data\(Semester <- factor(data\)Semester, levels = paste0(2:12, c(“nd”, “rd”, “th”, “th”, “th”, “th”, “th”, “th”, “th”, “th”, “th”)), ordered = TRUE)
data\(Semester_encoded <- as.numeric(data\)Semester)
data <- data[, !(names(data) %in% c(“Job”, “Semester”, “Income”, “Department”, “Gender”, “Hometown”, “Preparation”, “Gaming”, “Attendance”,“Extra”))]
nrow(data)
head(data) str(data) summary(data)
#Nomalitas library(MVN)
mvn_result <- mvn(data = data, mvnTest = “mardia”) print(mvn_result)
#Multikolinearitas library(car)
fit_lm <- lm(Preparation_encoded ~ Gender_encoded + Income_encoded + Hometown_encoded + Gaming_encoded + Attendance_encoded + Job_encoded + Extra_encoded + Semester_encoded + Department_encoded, data = data)
vif(fit_lm)
#homoskedasitas plot(fit_lm\(fitted.values, fit_lm\)residuals) abline(h = 0, col = “red”)
#korelasi cor(data)
names(data)[names(data) == “Department_encoded”] <- “dept” names(data)[names(data) == “Gender_encoded”] <- “sex” names(data)[names(data) == “Hometown_encoded”] <- “ht” names(data)[names(data) == “Income_encoded”] <- “inc” names(data)[names(data) == “Semester_encoded”] <- “smt” names(data)[names(data) == “Preparation_encoded”] <- “prep” names(data)[names(data) == “Attendance_encoded”] <- “atd” names(data)[names(data) == “Job_encoded”] <- “job” names(data)[names(data) == “Gaming_encoded”] <- “game” names(data)[names(data) == “Extra_encoded”] <- “ext”
#Model SEM Sederhana model_sem <- ’ # Konstruk Laten (dengan nama ringkas) demo =~ dept + sex + ht + inc + smt ap =~ HSC + SSC + English + Computer collage =~ prep + atd tm =~ job + game + ext
# Hubungan antar konstruk Last ~ demo + ap + collage + tm Overall ~ Last ’
#Estimasi model fit <- sem(model_sem, data = data, std.lv = TRUE) summary(fit, standardized = TRUE, fit.measures = TRUE)
#Visualisasi (aman) semPaths(fit, what = “std”, whatLabel = “par”, style = “ram”, layout = “tree”, edge.label.cex = 0.7, label.cex = 0.7, sizeMan = 4, sizeLat = 5, color = list(lat = c(“orange”), man = rep(“lightblue”, 6)))