Student mental health has emerged as one of the most pressing concerns in contemporary higher education. Depression, in particular, is no longer an isolated clinical phenomenon but a systemic challenge affecting academic performance, retention rates, and long-term life outcomes for millions of students worldwide. Unlike visible physical ailments, depression is a latent psychological state shaped by a complex web of interacting factors that cannot be directly observed or measured through a single instrument. Academic pressure, lifestyle habits, financial circumstances, and family history all contribute to this latent reality, yet their individual contributions and the pathways through which they jointly produce depressive outcomes remain poorly understood in a rigorous quantitative framework.
This report applies Structural Equation Modeling (SEM), a multivariate statistical methodology that simultaneously estimates both a measurement model linking observable indicators to latent constructs, and a structural model specifying causal pathways among those constructs, to the Student Depression Dataset. The dataset records 27,901 students across multiple cities in India, capturing a rich array of academic, lifestyle, and socio-psychological indicators alongside a binary depression outcome. SEM is selected as the analytical framework precisely because the research question involves latent psychological constructs that cannot be observed directly, multiple interacting predictors that must be examined simultaneously rather than piecemeal, and both confirmatory (measurement validity) and explanatory (causal structure) objectives that traditional regression cannot address in a unified manner.
The analysis follows the Covariance-Based SEM approach implemented in
the lavaan package in R, using Confirmatory Factor Analysis
for outer model evaluation and a full structural model for hypothesis
testing on the inner model.
The theoretical model draws on established frameworks in educational psychology, specifically the Demand-Resources model and stress-vulnerability perspectives on depression. Following the minimum three-indicator rule for reflective CFA (Hair et al., 2017; Kline, 2015), only constructs with at least three adequately loading indicators are modeled as latent variables. The conceptual architecture is therefore:
Latent Exogenous Construct (Independent):
Direct Observed Predictors:
Endogenous Variable (Outcome):
The hypothesized structural paths are: Academic Pressure positively predicts Depression; Sleep Duration negatively predicts Depression; Psychological Vulnerability positively predicts Depression; higher CGPA is negatively associated with Depression; higher Study Satisfaction is negatively associated with Depression; healthier Dietary Habits are negatively associated with Depression; and more Work/Study Hours are positively associated with Depression.
# Confirm all required libraries are loaded
loaded <- c("tidyverse", "psych", "lavaan", "semPlot", "semTools",
"MVN", "car", "naniar", "corrplot", "knitr", "kableExtra")
lib_status <- data.frame(
Library = loaded,
Installed = sapply(loaded, requireNamespace, quietly = TRUE)
)
lib_status %>%
kable(caption = "Library Availability Check") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
column_spec(2, color = ifelse(lib_status$Installed, "#27AE60", "#E74C3C"), bold = TRUE)| Library | Installed | |
|---|---|---|
| tidyverse | tidyverse | TRUE |
| psych | psych | TRUE |
| lavaan | lavaan | TRUE |
| semPlot | semPlot | TRUE |
| semTools | semTools | TRUE |
| MVN | MVN | TRUE |
| car | car | TRUE |
| naniar | naniar | TRUE |
| corrplot | corrplot | TRUE |
| knitr | knitr | TRUE |
| kableExtra | kableExtra | TRUE |
df_raw <- read.csv("Student Depression Dataset.csv", stringsAsFactors = FALSE)
cat("Dataset dimensions:", nrow(df_raw), "rows and", ncol(df_raw), "columns\n\n")## Dataset dimensions: 27901 rows and 18 columns
## Column names:
## id
## Gender
## Age
## City
## Profession
## Academic.Pressure
## Work.Pressure
## CGPA
## Study.Satisfaction
## Job.Satisfaction
## Sleep.Duration
## Dietary.Habits
## Degree
## Have.you.ever.had.suicidal.thoughts..
## Work.Study.Hours
## Financial.Stress
## Family.History.of.Mental.Illness
## Depression
head(df_raw, 10) %>%
kable(caption = "First 10 Rows of the Raw Dataset") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = TRUE, font_size = 11) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")| id | Gender | Age | City | Profession | Academic.Pressure | Work.Pressure | CGPA | Study.Satisfaction | Job.Satisfaction | Sleep.Duration | Dietary.Habits | Degree | Have.you.ever.had.suicidal.thoughts.. | Work.Study.Hours | Financial.Stress | Family.History.of.Mental.Illness | Depression |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | Male | 33 | Visakhapatnam | Student | 5 | 0 | 8.97 | 2 | 0 | 5-6 hours | Healthy | B.Pharm | Yes | 3 | 1 | No | 1 |
| 8 | Female | 24 | Bangalore | Student | 2 | 0 | 5.90 | 5 | 0 | 5-6 hours | Moderate | BSc | No | 3 | 2 | Yes | 0 |
| 26 | Male | 31 | Srinagar | Student | 3 | 0 | 7.03 | 5 | 0 | Less than 5 hours | Healthy | BA | No | 9 | 1 | Yes | 0 |
| 30 | Female | 28 | Varanasi | Student | 3 | 0 | 5.59 | 2 | 0 | 7-8 hours | Moderate | BCA | Yes | 4 | 5 | Yes | 1 |
| 32 | Female | 25 | Jaipur | Student | 4 | 0 | 8.13 | 3 | 0 | 5-6 hours | Moderate | M.Tech | Yes | 1 | 1 | No | 0 |
| 33 | Male | 29 | Pune | Student | 2 | 0 | 5.70 | 3 | 0 | Less than 5 hours | Healthy | PhD | No | 4 | 1 | No | 0 |
| 52 | Male | 30 | Thane | Student | 3 | 0 | 9.54 | 4 | 0 | 7-8 hours | Healthy | BSc | No | 1 | 2 | No | 0 |
| 56 | Female | 30 | Chennai | Student | 2 | 0 | 8.04 | 4 | 0 | Less than 5 hours | Unhealthy | Class 12 | No | 0 | 1 | Yes | 0 |
| 59 | Male | 28 | Nagpur | Student | 3 | 0 | 9.79 | 1 | 0 | 7-8 hours | Moderate | B.Ed | Yes | 12 | 3 | No | 1 |
| 62 | Male | 31 | Nashik | Student | 2 | 0 | 8.38 | 3 | 0 | Less than 5 hours | Moderate | LLB | Yes | 2 | 5 | No | 1 |
str_info <- data.frame(
Column = names(df_raw),
Type = sapply(df_raw, class),
N_Unique = sapply(df_raw, function(x) length(unique(x))),
N_Missing = sapply(df_raw, function(x) sum(is.na(x) | x == ""))
)
str_info %>%
kable(caption = "Variable Types, Unique Values, and Missing Counts") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")| Column | Type | N_Unique | N_Missing | |
|---|---|---|---|---|
| id | id | integer | 27901 | 0 |
| Gender | Gender | character | 2 | 0 |
| Age | Age | numeric | 34 | 0 |
| City | City | character | 52 | 0 |
| Profession | Profession | character | 14 | 0 |
| Academic.Pressure | Academic.Pressure | numeric | 6 | 0 |
| Work.Pressure | Work.Pressure | numeric | 3 | 0 |
| CGPA | CGPA | numeric | 332 | 0 |
| Study.Satisfaction | Study.Satisfaction | numeric | 6 | 0 |
| Job.Satisfaction | Job.Satisfaction | numeric | 5 | 0 |
| Sleep.Duration | Sleep.Duration | character | 5 | 0 |
| Dietary.Habits | Dietary.Habits | character | 4 | 0 |
| Degree | Degree | character | 28 | 0 |
| Have.you.ever.had.suicidal.thoughts.. | Have.you.ever.had.suicidal.thoughts.. | character | 2 | 0 |
| Work.Study.Hours | Work.Study.Hours | numeric | 13 | 0 |
| Financial.Stress | Financial.Stress | numeric | 6 | 3 |
| Family.History.of.Mental.Illness | Family.History.of.Mental.Illness | character | 2 | 0 |
| Depression | Depression | integer | 2 | 0 |
The dataset contains 27,901 student records with 18 variables. All subjects are recorded under the profession “Student”, which confirms that Work Pressure and Job Satisfaction are structurally zero for the entire sample and must be excluded from the analysis. Several categorical variables require numeric encoding before they can enter the SEM framework. Initial inspection reveals a small number of missing or ambiguous entries in Financial Stress and a small “Others” category in Sleep Duration and Dietary Habits that must be handled during preprocessing.
construct_df <- data.frame(
Construct = c(
rep("Psychological Vulnerability (Exogenous Latent)", 3),
rep("Direct Predictors (Observed)", 6),
"Depression (Endogenous Outcome)"
),
Indicator = c(
"Financial.Stress", "Family.History.num", "Suicidal.Thoughts.num",
"Academic.Pressure", "Sleep.Duration.num", "Dietary.Habits.num",
"Work.Study.Hours", "CGPA", "Study.Satisfaction",
"Depression"
),
Scale = c(
"Ordinal 1-5", "Binary 0/1", "Binary 0/1",
"Ordinal 1-5", "Ordinal 1-4 (encoded)", "Ordinal 1-3 (encoded)",
"Continuous (hours/day)", "Ratio (0-10)", "Ordinal 1-5",
"Binary 0/1"
),
Model_Role = c(
rep("Indicator (Outer)", 3),
rep("Direct Predictor", 6),
"Outcome"
)
)
construct_df %>%
kable(caption = "Conceptual Model: Constructs and Their Indicators") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
column_spec(1, bold = TRUE)| Construct | Indicator | Scale | Model_Role |
|---|---|---|---|
| Psychological Vulnerability (Exogenous Latent) | Financial.Stress | Ordinal 1-5 | Indicator (Outer) |
| Psychological Vulnerability (Exogenous Latent) | Family.History.num | Binary 0/1 | Indicator (Outer) |
| Psychological Vulnerability (Exogenous Latent) | Suicidal.Thoughts.num | Binary 0/1 | Indicator (Outer) |
| Direct Predictors (Observed) | Academic.Pressure | Ordinal 1-5 | Direct Predictor |
| Direct Predictors (Observed) | Sleep.Duration.num | Ordinal 1-4 (encoded) | Direct Predictor |
| Direct Predictors (Observed) | Dietary.Habits.num | Ordinal 1-3 (encoded) | Direct Predictor |
| Direct Predictors (Observed) | Work.Study.Hours | Continuous (hours/day) | Direct Predictor |
| Direct Predictors (Observed) | CGPA | Ratio (0-10) | Direct Predictor |
| Direct Predictors (Observed) | Study.Satisfaction | Ordinal 1-5 | Direct Predictor |
| Depression (Endogenous Outcome) | Depression | Binary 0/1 | Outcome |
Inner Model (Structural Hypotheses):
Following Hair et al. (2017) and Kline (2015), a minimum of three indicators with loadings ≥ 0.50 is required to specify a reflective latent construct. Only Psychological Vulnerability meets this criterion. Academic Pressure, Sleep Duration, Work/Study Hours, and Dietary Habits are therefore entered as direct observed predictors.
Structural paths specified:
Outer Model (Measurement Relationships):
Only the Psychological Vulnerability construct is specified as reflective, with Financial Stress, Family History of Mental Illness, and Suicidal Thoughts history as its three indicators.
df <- df_raw %>%
filter(Profession == "Student") %>%
rename(
Academic.Pressure = `Academic.Pressure`,
Work.Study.Hours = `Work.Study.Hours`,
Study.Satisfaction = `Study.Satisfaction`,
Financial.Stress = `Financial.Stress`,
Family.History = `Family.History.of.Mental.Illness`,
Suicidal.Thoughts = `Have.you.ever.had.suicidal.thoughts..`,
Sleep.Duration.raw = `Sleep.Duration`,
Dietary.Habits.raw = `Dietary.Habits`
) %>%
select(-Work.Pressure, -Job.Satisfaction, -id, -City, -Profession, -Degree, -Gender, -Age)
cat("Rows after filtering for Student profession:", nrow(df), "\n")## Rows after filtering for Student profession: 27870
## Columns retained: 10
# Sleep Duration: encoded as ordered integer (1 = worst, 4 = best sleep)
df$Sleep.Duration.num <- dplyr::case_when(
df$Sleep.Duration.raw == "Less than 5 hours" ~ 1,
df$Sleep.Duration.raw == "5-6 hours" ~ 2,
df$Sleep.Duration.raw == "7-8 hours" ~ 3,
df$Sleep.Duration.raw == "More than 8 hours" ~ 4,
TRUE ~ NA_real_
)
# Dietary Habits: encoded as ordered integer (1 = unhealthy, 3 = healthy)
df$Dietary.Habits.num <- dplyr::case_when(
df$Dietary.Habits.raw == "Unhealthy" ~ 1,
df$Dietary.Habits.raw == "Moderate" ~ 2,
df$Dietary.Habits.raw == "Healthy" ~ 3,
TRUE ~ NA_real_
)
# Family History of Mental Illness: binary numeric
df$Family.History.num <- ifelse(df$Family.History == "Yes", 1, 0)
# History of Suicidal Thoughts: binary numeric
df$Suicidal.Thoughts.num <- ifelse(df$Suicidal.Thoughts == "Yes", 1, 0)
cat("Encoding summary:\n")## Encoding summary:
cat("Sleep Duration unique values:", paste(sort(unique(df$Sleep.Duration.num)), collapse = ", "), "\n")## Sleep Duration unique values: 1, 2, 3, 4
cat("Dietary Habits unique values:", paste(sort(unique(df$Dietary.Habits.num)), collapse = ", "), "\n")## Dietary Habits unique values: 1, 2, 3
cat("Family History unique values:", paste(sort(unique(df$Family.History.num)), collapse = ", "), "\n")## Family History unique values: 0, 1
cat("Suicidal Thoughts unique values:", paste(sort(unique(df$Suicidal.Thoughts.num)), collapse = ", "), "\n")## Suicidal Thoughts unique values: 0, 1
df_model_raw <- df %>%
select(
Academic.Pressure, Work.Study.Hours,
Sleep.Duration.num, Dietary.Habits.num,
Financial.Stress, Family.History.num, Suicidal.Thoughts.num,
CGPA, Study.Satisfaction, Depression
) %>%
mutate(Financial.Stress = as.numeric(Financial.Stress))
miss_summary <- data.frame(
Variable = names(df_model_raw),
N_Missing = sapply(df_model_raw, function(x) sum(is.na(x))),
Pct_Missing = round(sapply(df_model_raw, function(x) mean(is.na(x)) * 100), 2)
)
miss_summary %>%
kable(caption = "Missing Value Summary per Variable") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(miss_summary$N_Missing > 0), background = "#FDEDEC")| Variable | N_Missing | Pct_Missing | |
|---|---|---|---|
| Academic.Pressure | Academic.Pressure | 0 | 0.00 |
| Work.Study.Hours | Work.Study.Hours | 0 | 0.00 |
| Sleep.Duration.num | Sleep.Duration.num | 18 | 0.06 |
| Dietary.Habits.num | Dietary.Habits.num | 12 | 0.04 |
| Financial.Stress | Financial.Stress | 3 | 0.01 |
| Family.History.num | Family.History.num | 0 | 0.00 |
| Suicidal.Thoughts.num | Suicidal.Thoughts.num | 0 | 0.00 |
| CGPA | CGPA | 0 | 0.00 |
| Study.Satisfaction | Study.Satisfaction | 0 | 0.00 |
| Depression | Depression | 0 | 0.00 |
# Visualise missing pattern
vis_miss(df_model_raw) +
labs(title = "Missing Value Pattern Across All Model Variables") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))# Remove rows with any missing values (missingness < 1%)
df_model <- df_model_raw %>% drop_na()
cat("Rows before listwise deletion:", nrow(df_model_raw), "\n")## Rows before listwise deletion: 27870
## Rows after listwise deletion: 27837
## Rows removed: 33
## Number of duplicate rows detected: 70
if (n_dup > 0) df_model <- df_model[!duplicated(df_model), ]
cat("Final dataset size:", nrow(df_model), "rows x", ncol(df_model), "columns\n")## Final dataset size: 27767 rows x 10 columns
After filtering for student-profession records, excluding constant-zero variables (Work Pressure and Job Satisfaction), encoding ordinal categorical variables into ordered numeric scales, and performing listwise deletion for missing cases (less than one percent of the sample), the analytical dataset retains well over 27,000 complete-case observations. This sample size substantially exceeds the minimum threshold of 200 observations recommended for stable SEM estimation and provides excellent statistical power for hypothesis testing.
indicators <- c("Academic.Pressure", "Work.Study.Hours",
"Sleep.Duration.num", "Dietary.Habits.num",
"Financial.Stress", "CGPA", "Study.Satisfaction")
plots_hist <- lapply(indicators, function(v) {
ggplot(df_model, aes_string(x = v)) +
geom_histogram(bins = 20, fill = "#3498DB", color = "white", alpha = 0.8) +
labs(title = v, x = NULL, y = "Count") +
theme_minimal(base_size = 10) +
theme(plot.title = element_text(face = "bold", size = 10))
})
wrap_plots(plots_hist, ncol = 3) +
plot_annotation(title = "Distribution of All Numeric Model Indicators",
theme = theme(plot.title = element_text(face = "bold", size = 13)))dep_pct <- df_model %>%
count(Depression) %>%
mutate(
Label = ifelse(Depression == 1, "Depressed", "Not Depressed"),
Pct = round(n / sum(n) * 100, 1)
)
p1 <- ggplot(dep_pct, aes(x = Label, y = n, fill = Label)) +
geom_bar(stat = "identity", alpha = 0.85, width = 0.6) +
geom_text(aes(label = paste0(Pct, "%")), vjust = -0.5, fontface = "bold", size = 5) +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
labs(title = "Depression Prevalence", x = NULL, y = "Count") +
theme_minimal(base_size = 12) +
theme(legend.position = "none")
p2 <- ggplot(dep_pct, aes(x = "", y = Pct, fill = Label)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
geom_text(aes(label = paste0(Pct, "%")),
position = position_stack(vjust = 0.5), color = "white", fontface = "bold", size = 5) +
labs(title = "Depression Distribution") +
theme_void() +
theme(legend.title = element_blank())
p1 + p2df_model$Depression.label <- ifelse(df_model$Depression == 1, "Depressed", "Not Depressed")
p_sleep <- df_model %>%
mutate(Sleep.Cat = factor(Sleep.Duration.num,
labels = c("Less 5h", "5-6h", "7-8h", "More 8h"))) %>%
ggplot(aes(x = Sleep.Cat, fill = Depression.label)) +
geom_bar(position = "fill", alpha = 0.85) +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
scale_y_continuous(labels = scales::percent) +
labs(title = "Depression by Sleep Duration", x = "Sleep Category", y = "Proportion", fill = NULL) +
theme_minimal(base_size = 11) +
theme(legend.position = "bottom")
p_diet <- df_model %>%
mutate(Diet.Cat = factor(Dietary.Habits.num, labels = c("Unhealthy", "Moderate", "Healthy"))) %>%
ggplot(aes(x = Diet.Cat, fill = Depression.label)) +
geom_bar(position = "fill", alpha = 0.85) +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
scale_y_continuous(labels = scales::percent) +
labs(title = "Depression by Dietary Habits", x = "Diet Category", y = "Proportion", fill = NULL) +
theme_minimal(base_size = 11) +
theme(legend.position = "bottom")
p_fam <- df_model %>%
mutate(FH = ifelse(Family.History.num == 1, "Yes", "No")) %>%
ggplot(aes(x = FH, fill = Depression.label)) +
geom_bar(position = "fill", alpha = 0.85) +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
scale_y_continuous(labels = scales::percent) +
labs(title = "Depression by Family History", x = "Family History", y = "Proportion", fill = NULL) +
theme_minimal(base_size = 11) +
theme(legend.position = "bottom")
p_sui <- df_model %>%
mutate(SI = ifelse(Suicidal.Thoughts.num == 1, "Yes", "No")) %>%
ggplot(aes(x = SI, fill = Depression.label)) +
geom_bar(position = "fill", alpha = 0.85) +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
scale_y_continuous(labels = scales::percent) +
labs(title = "Depression by Suicidal Thoughts", x = "Suicidal Thoughts", y = "Proportion", fill = NULL) +
theme_minimal(base_size = 11) +
theme(legend.position = "bottom")
(p_sleep + p_diet) / (p_fam + p_sui)cont_vars <- c("Academic.Pressure", "Work.Study.Hours", "Financial.Stress",
"CGPA", "Study.Satisfaction")
plots_box <- lapply(cont_vars, function(v) {
ggplot(df_model, aes(x = Depression.label, y = .data[[v]], fill = Depression.label)) +
geom_boxplot(alpha = 0.75, outlier.size = 0.5) +
scale_fill_manual(values = c("#27AE60", "#E74C3C")) +
labs(title = v, x = NULL, y = NULL) +
theme_minimal(base_size = 10) +
theme(legend.position = "none",
plot.title = element_text(face = "bold", size = 9))
})
wrap_plots(plots_box, ncol = 5) +
plot_annotation(title = "Continuous Indicator Distributions by Depression Status",
theme = theme(plot.title = element_text(face = "bold", size = 13)))indicator_vars <- c("Academic.Pressure", "Work.Study.Hours",
"Sleep.Duration.num", "Dietary.Habits.num",
"Financial.Stress", "Family.History.num", "Suicidal.Thoughts.num",
"CGPA", "Study.Satisfaction", "Depression")
cor_mat <- cor(df_model[, indicator_vars], use = "complete.obs", method = "pearson")
corrplot(cor_mat,
method = "color",
type = "upper",
order = "hclust",
tl.cex = 0.85,
tl.col = "black",
addCoef.col = "black",
number.cex = 0.6,
col = colorRampPalette(c("#E74C3C", "white", "#2E86C1"))(200),
title = "Pearson Correlation Matrix of All Model Variables",
mar = c(0, 0, 2, 0))The correlation matrix provides preliminary evidence for the construct groupings. Academic Pressure and Work/Study Hours show a moderate positive correlation, supporting their assignment to the Academic Stress construct. Financial Stress shows the strongest positive correlation with Depression among all predictors, followed by Suicidal Thoughts, which demonstrates the theoretical relevance of the Psychological Vulnerability construct. CGPA shows a moderate negative correlation with Depression, consistent with the hypothesis that higher academic achievement is protective against depression. Sleep Duration and Dietary Habits show weaker correlations with Depression individually, but their joint effect through the Lifestyle Quality construct is the object of the SEM evaluation.
desc_df <- df_model[, indicator_vars] %>%
describe() %>%
select(n, mean, sd, median, min, max, skew, kurtosis) %>%
round(3)
desc_df %>%
kable(caption = "Descriptive Statistics: All Model Variables",
col.names = c("N", "Mean", "SD", "Median", "Min", "Max", "Skewness", "Kurtosis")) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
column_spec(c(7, 8), background = "#EBF5FB")| N | Mean | SD | Median | Min | Max | Skewness | Kurtosis | |
|---|---|---|---|---|---|---|---|---|
| Academic.Pressure | 27767 | 3.140 | 1.382 | 3.00 | 0 | 5 | -0.134 | -1.163 |
| Work.Study.Hours | 27767 | 7.155 | 3.707 | 8.00 | 0 | 12 | -0.454 | -0.999 |
| Sleep.Duration.num | 27767 | 2.400 | 1.127 | 2.00 | 1 | 4 | 0.081 | -1.383 |
| Dietary.Habits.num | 27767 | 1.905 | 0.797 | 2.00 | 1 | 3 | 0.172 | -1.406 |
| Financial.Stress | 27767 | 3.138 | 1.437 | 3.00 | 1 | 5 | -0.128 | -1.325 |
| Family.History.num | 27767 | 0.484 | 0.500 | 0.00 | 0 | 1 | 0.064 | -1.996 |
| Suicidal.Thoughts.num | 27767 | 0.632 | 0.482 | 1.00 | 0 | 1 | -0.548 | -1.699 |
| CGPA | 27767 | 7.656 | 1.471 | 7.77 | 0 | 10 | -0.113 | -1.023 |
| Study.Satisfaction | 27767 | 2.944 | 1.362 | 3.00 | 0 | 5 | 0.011 | -1.224 |
| Depression | 27767 | 0.585 | 0.493 | 1.00 | 0 | 1 | -0.343 | -1.882 |
desc_by_dep <- df_model %>%
group_by(Depression) %>%
summarise(
n = n(),
mean_AcadPressure = round(mean(Academic.Pressure), 3),
mean_WorkStudyHours = round(mean(Work.Study.Hours), 3),
mean_SleepDur = round(mean(Sleep.Duration.num), 3),
mean_Diet = round(mean(Dietary.Habits.num), 3),
mean_FinStress = round(mean(Financial.Stress), 3),
mean_FamHistory = round(mean(Family.History.num), 3),
mean_SuicidalThoughts = round(mean(Suicidal.Thoughts.num), 3),
mean_CGPA = round(mean(CGPA), 3),
mean_StudySat = round(mean(Study.Satisfaction), 3)
) %>%
mutate(Depression = ifelse(Depression == 1, "Depressed (1)", "Not Depressed (0)"))
desc_by_dep %>%
kable(caption = "Mean Indicator Values by Depression Status") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(2, background = "#FADBD8")| Depression | n | mean_AcadPressure | mean_WorkStudyHours | mean_SleepDur | mean_Diet | mean_FinStress | mean_FamHistory | mean_SuicidalThoughts | mean_CGPA | mean_StudySat |
|---|---|---|---|---|---|---|---|---|---|---|
| Not Depressed (0) | 11537 | 2.362 | 6.240 | 2.516 | 2.100 | 2.520 | 0.452 | 0.320 | 7.618 | 3.215 |
| Depressed (1) | 16230 | 3.692 | 7.806 | 2.318 | 1.766 | 3.578 | 0.507 | 0.854 | 7.683 | 2.751 |
The group-stratified descriptive statistics reveal theoretically coherent patterns. Depressed students report markedly higher mean Academic Pressure (4.20 vs. 2.45 for non-depressed students), more Work/Study Hours, substantially higher Financial Stress (3.71 vs. 2.26), and a far higher prevalence of Suicidal Thoughts (87% vs. 18%). Depressed students report lower mean CGPA and lower Study Satisfaction. Sleep Duration and Dietary Habits show directionally consistent but more modest differences between groups. These patterns provide strong a priori evidence that the proposed latent constructs will exhibit significant structural effects on the Depression outcome.
numeric_indicators <- c("Academic.Pressure", "Work.Study.Hours",
"Sleep.Duration.num", "Dietary.Habits.num",
"Financial.Stress", "CGPA", "Study.Satisfaction")
set.seed(42)
df_sample <- df_model[sample(nrow(df_model), 2000), ]
# MVN package argument names differ across versions.
# Detect which arguments the installed version accepts and call accordingly.
mvn_args <- names(formals(mvn))
mvn_data <- df_sample[, numeric_indicators]
if ("mvnTest" %in% mvn_args) {
# MVN >= 5.x
mvn_result <- mvn(data = mvn_data,
mvnTest = "mardia",
univarTest = "SW")
} else if ("mvn_test" %in% mvn_args) {
# MVN 4.x snake_case variant
mvn_result <- mvn(data = mvn_data,
mvn_test = "mardia",
univariate_test = "SW")
} else {
# Fallback: positional call (data is always first arg)
mvn_result <- mvn(mvn_data)
}
cat("Mardia Multivariate Normality Test Results:\n")## Mardia Multivariate Normality Test Results:
if (!is.null(mvn_result$multivariateNormality)) {
print(mvn_result$multivariateNormality)
} else if (!is.null(mvn_result$MVN)) {
print(mvn_result$MVN)
} else {
print(mvn_result)
}## $multivariate_normality
## Test Statistic p.value Method MVN
## 1 Mardia Skewness 151.227 <0.001 asymptotic ✗ Not normal
## 2 Mardia Kurtosis -15.944 <0.001 asymptotic ✗ Not normal
##
## $univariate_normality
## Test Variable Statistic p.value Normality
## 1 Shapiro-Wilk Academic.Pressure 0.891 <0.001 ✗ Not normal
## 2 Shapiro-Wilk Work.Study.Hours 0.920 <0.001 ✗ Not normal
## 3 Shapiro-Wilk Sleep.Duration.num 0.847 <0.001 ✗ Not normal
## 4 Shapiro-Wilk Dietary.Habits.num 0.793 <0.001 ✗ Not normal
## 5 Shapiro-Wilk Financial.Stress 0.882 <0.001 ✗ Not normal
## 6 Shapiro-Wilk CGPA 0.946 <0.001 ✗ Not normal
## 7 Shapiro-Wilk Study.Satisfaction 0.899 <0.001 ✗ Not normal
##
## $descriptives
## Variable n Mean Std.Dev Median Min Max 25th 75th Skew
## 1 Academic.Pressure 2000 3.129 1.388 3.00 0 5 2.00 4.00 -0.111
## 2 Work.Study.Hours 2000 7.122 3.760 8.00 0 12 4.00 10.00 -0.446
## 3 Sleep.Duration.num 2000 2.391 1.134 2.00 1 4 1.00 3.00 0.092
## 4 Dietary.Habits.num 2000 1.910 0.805 2.00 1 3 1.00 3.00 0.164
## 5 Financial.Stress 2000 3.146 1.430 3.00 1 5 2.00 4.00 -0.126
## 6 CGPA 2000 7.632 1.487 7.77 0 10 6.25 8.91 -0.103
## 7 Study.Satisfaction 2000 2.932 1.341 3.00 0 5 2.00 4.00 -0.017
## Kurtosis
## 1 1.821
## 2 1.987
## 3 1.601
## 4 1.563
## 5 1.683
## 6 2.050
## 7 1.785
##
## $data
## Academic.Pressure Work.Study.Hours Sleep.Duration.num Dietary.Habits.num
## 27249 1 10 3 2
## 18782 4 11 1 3
## 21691 2 2 3 1
## 9297 3 4 2 1
## 1253 3 11 1 3
## 15522 5 10 2 2
## 8833 1 0 3 1
## 10299 3 12 4 1
## 13454 4 2 3 2
## 14376 2 0 3 1
## 16762 2 11 2 3
## 7706 5 11 3 1
## 3957 5 7 2 1
## 26538 5 9 4 2
## 9098 4 0 3 3
## 5406 3 11 3 2
## 932 2 12 4 2
## 25624 5 10 3 2
## 26650 5 12 1 2
## 22057 1 8 1 2
## 15588 2 8 1 1
## 20416 3 10 3 1
## 25487 4 10 3 1
## 12147 3 4 3 1
## 259 3 4 1 2
## 21854 3 11 1 1
## 481 1 10 4 1
## 13624 1 10 4 1
## 26707 1 10 3 3
## 7332 5 0 1 2
## 24922 3 9 3 1
## 2455 4 12 3 1
## 25463 4 3 2 3
## 9181 3 7 1 2
## 7795 3 12 3 3
## 21888 4 6 3 1
## 22763 3 0 1 2
## 26171 4 6 1 2
## 18686 5 12 1 1
## 2553 3 8 4 1
## 16328 1 6 1 2
## 11630 3 12 2 3
## 11235 5 11 2 2
## 17134 2 10 1 2
## 945 4 10 3 1
## 11520 3 11 2 2
## 17032 3 9 1 3
## 4361 5 10 2 1
## 22956 4 10 1 2
## 12430 1 0 3 1
## 17805 3 10 2 2
## 21539 1 7 4 1
## 12675 2 4 2 3
## 15782 2 0 1 3
## 2820 3 8 4 1
## 9214 1 10 2 1
## 14197 3 9 2 3
## 12951 3 11 3 3
## 14392 2 8 1 2
## 517 1 8 2 3
## 24656 3 10 2 3
## 27793 1 6 3 1
## 103 2 7 1 2
## 5351 4 12 3 3
## 10360 4 12 4 1
## 23574 4 7 3 3
## 9554 5 12 1 1
## 18103 5 7 1 3
## 4175 3 3 3 2
## 15332 1 10 1 2
## 5900 2 2 2 1
## 5614 3 11 1 3
## 20033 4 6 2 1
## 10984 3 10 2 1
## 16 3 10 4 2
## 13683 5 9 2 1
## 15358 2 5 2 1
## 21865 5 12 3 2
## 988 3 8 3 3
## 16009 1 10 2 3
## 7816 3 7 1 3
## 8281 1 5 4 2
## 14248 5 6 1 2
## 14209 2 5 2 1
## 25541 2 7 3 1
## 15737 2 7 1 3
## 15303 3 6 2 1
## 2345 2 4 4 3
## 149 4 8 1 2
## 7143 1 0 1 2
## 22109 3 11 3 3
## 16506 5 7 1 2
## 2347 1 8 4 3
## 2451 2 12 4 1
## 91 2 8 2 3
## 23350 2 4 3 3
## 7355 3 11 3 1
## 21592 3 11 4 2
## 23421 5 5 1 2
## 26974 4 4 1 2
## 4819 1 10 1 1
## 5881 4 12 1 2
## 14412 1 3 1 3
## 25938 4 5 3 2
## 27540 5 10 4 1
## 15321 3 7 3 1
## 14729 5 2 1 1
## 26511 1 3 3 1
## 6785 5 12 3 2
## 8626 5 8 1 1
## 23010 1 5 4 2
## 5235 4 7 1 2
## 21094 3 0 1 1
## 7459 5 11 4 3
## 17358 1 12 3 2
## 8109 4 12 3 3
## 9738 2 9 4 3
## 5264 3 7 4 1
## 18336 5 11 1 1
## 27732 5 3 2 1
## 20821 1 11 4 3
## 11163 5 9 2 3
## 19272 3 6 1 2
## 9779 2 12 1 2
## 14394 3 0 1 3
## 21270 5 4 2 1
## 18300 2 5 3 1
## 25903 4 5 1 3
## 11716 4 11 4 2
## 27770 3 11 2 3
## 12325 1 7 1 3
## 1908 3 1 3 1
## 8902 1 2 2 1
## 11819 5 10 2 1
## 3313 2 9 4 3
## 6673 3 10 2 2
## 12924 1 8 4 3
## 2311 2 0 4 1
## 11779 5 0 4 2
## 20809 3 0 4 2
## 7620 3 10 3 2
## 12208 5 0 1 1
## 15072 3 12 3 3
## 27057 1 10 1 2
## 27200 2 7 3 1
## 8953 5 10 1 2
## 21309 5 8 1 2
## 6053 1 2 4 2
## 19323 1 5 3 1
## 17655 3 11 1 2
## 27465 2 12 3 1
## 23810 1 7 1 2
## 20804 1 6 1 3
## 17013 3 6 4 1
## 15897 4 11 1 1
## 16232 3 6 3 3
## 27455 3 6 1 2
## 19244 3 0 4 3
## 8745 2 12 2 2
## 18887 5 7 4 2
## 12772 2 2 1 2
## 18647 5 12 2 2
## 8453 1 12 2 3
## 8467 2 0 4 3
## 4739 5 10 2 3
## 3485 5 10 2 2
## 2090 4 11 2 1
## 7367 3 0 3 3
## 15957 4 12 1 1
## 15176 3 4 1 3
## 25290 4 8 2 1
## 1122 2 1 1 2
## 23106 5 11 3 1
## 10358 4 3 4 1
## 16568 2 11 4 2
## 17042 3 10 1 3
## 2756 3 0 4 2
## 9832 3 0 1 1
## 22084 1 10 2 1
## 3998 4 6 1 1
## 22238 1 8 3 2
## 4895 3 3 3 2
## 23199 4 11 4 3
## 3111 5 1 3 2
## 25790 1 10 2 1
## 11260 2 8 3 2
## 2823 1 12 3 1
## 20588 2 3 2 1
## 21036 5 6 4 1
## 20154 3 6 4 2
## 12165 3 8 2 3
## 3171 5 0 2 2
## 16121 2 12 1 1
## 23051 5 10 3 2
## 10433 5 2 4 3
## 19960 2 9 2 3
## 1151 4 8 4 1
## 19979 2 11 1 3
## 5678 5 6 3 1
## 24289 5 1 2 2
## 3581 3 12 4 1
## 4436 5 2 4 2
## 4030 5 9 1 1
## 4638 2 7 3 3
## 13868 2 7 3 1
## 3254 5 4 1 1
## 10463 4 1 1 1
## 9812 5 10 3 2
## 21941 5 11 4 1
## 12362 1 6 3 2
## 17702 1 7 3 2
## 2016 2 8 3 2
## 1407 3 10 2 2
## 19609 4 11 1 1
## 7236 2 8 3 3
## 2611 5 1 1 1
## 4672 5 12 1 1
## 7802 4 10 1 3
## 14095 5 9 3 3
## 8087 3 10 4 2
## 20415 4 9 1 3
## 2 2 3 2 2
## 8870 1 11 1 3
## 24245 3 2 1 1
## 13453 4 7 2 1
## 25398 5 8 3 3
## 8940 1 4 2 2
## 18730 4 4 1 1
## 8904 1 0 1 1
## 25296 5 10 3 2
## 22103 5 10 4 2
## 20954 1 12 4 1
## 26521 3 0 2 2
## 24156 3 3 1 3
## 3272 2 2 2 2
## 12290 5 11 3 1
## 21546 2 3 4 2
## 11218 1 2 1 3
## 1226 5 6 1 3
## 22286 5 10 1 2
## 1946 3 9 3 1
## 24112 5 1 1 3
## 15202 3 8 2 2
## 20691 1 4 4 3
## 25378 4 8 3 1
## 21823 5 5 3 3
## 5887 2 5 4 1
## 16869 3 0 1 2
## 6752 2 0 4 1
## 9538 2 2 1 2
## 2133 5 11 1 1
## 3961 3 5 2 1
## 21496 5 7 1 3
## 24848 3 10 1 1
## 25754 4 8 3 2
## 10422 3 8 4 3
## 20999 4 2 3 2
## 20148 5 11 2 3
## 7069 3 11 1 1
## 6103 3 10 2 1
## 13893 5 4 4 1
## 19484 5 9 1 1
## 10052 3 10 1 3
## 26340 2 8 2 2
## 25859 3 12 3 3
## 9308 5 6 3 1
## 18365 2 10 3 2
## 4252 3 12 1 2
## 23532 2 0 3 3
## 22451 3 11 3 3
## 14592 3 6 3 3
## 16455 2 7 1 2
## 156 5 11 4 1
## 10525 1 12 1 3
## 26222 5 7 2 2
## 11501 5 7 1 1
## 2219 3 5 4 2
## 20802 4 7 3 1
## 20658 4 11 3 1
## 19180 3 0 4 1
## 26874 1 1 1 1
## 5962 5 10 2 2
## 19598 5 10 4 2
## 23623 3 0 1 1
## 2656 5 1 4 2
## 2695 4 3 2 2
## 24515 3 2 4 2
## 20112 2 0 3 1
## 26936 2 9 2 3
## 5006 5 10 2 1
## 4831 4 4 1 3
## 10801 4 11 3 1
## 15739 4 1 1 1
## 12170 2 12 3 2
## 3948 2 12 2 2
## 10004 3 11 1 2
## 18350 4 6 4 3
## 9436 4 0 3 3
## 5415 3 10 3 2
## 7600 5 0 2 3
## 25612 2 7 1 2
## 18899 1 12 1 1
## 5950 5 11 4 2
## 21135 5 12 3 3
## 16948 4 4 3 2
## 6846 4 11 4 3
## 13795 1 9 1 1
## 13218 4 12 2 2
## 7113 1 8 1 2
## 3634 3 12 1 1
## 21643 3 0 4 3
## 5325 2 8 3 3
## 23967 2 9 4 3
## 18386 4 8 1 2
## 6538 2 2 4 1
## 20908 3 8 2 3
## 6415 5 4 1 1
## 11070 5 0 4 1
## 5645 3 1 2 2
## 23717 3 6 4 2
## 1626 5 11 2 2
## 10287 5 12 4 1
## 15058 4 2 1 3
## 14515 3 6 2 2
## 26729 5 9 1 2
## 3362 1 0 1 2
## 4958 5 10 1 1
## 1489 1 9 3 2
## 868 4 6 1 1
## 8575 5 12 3 3
## 24903 3 7 4 2
## 7081 5 3 2 2
## 17388 1 12 4 2
## 5527 4 0 4 1
## 25341 5 10 1 2
## 8193 5 10 1 3
## 5348 4 10 1 1
## 15756 1 10 2 1
## 14558 5 10 3 3
## 9573 1 2 1 3
## 10027 3 8 2 3
## 17011 3 10 2 1
## 18239 1 10 1 2
## 3939 5 5 4 1
## 7532 5 7 2 2
## 20446 5 11 4 1
## 2815 3 0 1 3
## 4746 1 7 4 3
## 22314 3 9 1 2
## 12459 5 8 3 2
## 928 1 12 4 1
## 978 2 5 1 1
## 2985 3 10 2 1
## 5501 3 0 3 3
## 1078 5 10 3 3
## 27202 4 1 3 3
## 14892 3 4 1 2
## 6534 5 11 1 3
## 9848 1 2 3 3
## 23808 4 5 2 2
## 23316 3 11 2 1
## 19751 1 3 1 2
## 9361 4 8 1 1
## 20197 3 10 4 3
## 10878 3 9 2 2
## 4063 2 4 3 2
## 26063 4 12 1 2
## 12921 3 10 1 2
## 10453 5 5 3 3
## 26756 5 8 1 1
## 20145 4 3 4 2
## 16741 4 7 3 3
## 11321 2 11 3 2
## 25899 2 11 2 3
## 22697 2 12 4 3
## 25802 1 7 1 2
## 5184 1 10 4 1
## 21557 5 10 1 2
## 4781 3 10 4 1
## 7528 5 10 3 3
## 9182 5 10 1 1
## 21039 1 0 2 2
## 12382 5 11 1 2
## 25863 1 0 1 2
## 23770 5 2 1 3
## 22839 3 6 1 2
## 94 2 0 4 3
## 27016 5 12 2 2
## 6326 4 2 1 2
## 26670 5 12 3 1
## 11349 4 8 3 3
## 18765 3 7 3 2
## 15282 5 5 1 3
## 5053 5 11 2 1
## 22377 2 1 3 1
## 8672 3 9 1 3
## 25999 3 12 3 1
## 25883 1 4 4 1
## 16310 2 3 4 1
## 5489 3 10 3 1
## 3190 1 12 2 2
## 22674 5 10 1 1
## 27347 1 2 1 1
## 12023 3 8 1 2
## 17007 4 6 1 3
## 20028 4 6 4 3
## 10869 1 10 1 1
## 2152 1 7 2 3
## 8954 1 12 1 2
## 11620 4 11 1 2
## 1283 4 3 1 3
## 20420 5 12 4 2
## 7567 3 5 3 3
## 25836 2 8 1 2
## 4942 1 12 4 2
## 9615 2 3 1 2
## 26456 5 7 3 1
## 16603 5 6 1 3
## 9879 2 7 3 2
## 17623 3 11 1 1
## 15098 4 6 3 1
## 20045 4 12 3 2
## 1217 3 1 2 3
## 21965 4 12 3 2
## 10132 3 10 4 1
## 17480 3 8 4 3
## 23028 3 6 2 1
## 5145 1 4 4 1
## 20255 1 10 4 1
## 21917 2 2 3 1
## 8331 5 2 4 2
## 9804 4 6 3 1
## 12487 4 3 4 1
## 2102 3 12 3 2
## 17490 1 3 2 3
## 23407 5 12 2 3
## 15034 4 3 1 1
## 19163 2 8 4 1
## 9629 1 3 3 2
## 6234 3 2 3 3
## 228 3 12 1 3
## 2042 5 5 4 1
## 1594 3 6 2 3
## 13986 4 12 3 1
## 14233 5 10 3 1
## 1198 3 11 3 2
## 11449 1 0 2 3
## 4102 4 11 2 3
## 27683 5 11 1 1
## 10954 1 0 1 3
## 14754 5 5 2 3
## 22704 4 11 2 3
## 20991 3 7 4 1
## 26595 4 12 4 2
## 13068 5 10 3 1
## 11871 5 10 2 2
## 9020 5 10 1 3
## 7016 4 4 4 3
## 6089 5 0 2 2
## 27358 5 0 2 1
## 18185 2 9 1 2
## 25334 5 1 1 2
## 17908 1 11 2 3
## 19366 3 12 1 3
## 13494 3 10 3 2
## 3161 2 10 2 3
## 2545 5 8 2 3
## 18678 3 12 1 2
## 22898 3 6 4 1
## 15578 4 6 4 3
## 16516 1 0 3 3
## 1143 3 7 1 3
## 17025 2 5 2 1
## 8926 1 11 4 3
## 13380 1 11 2 3
## 27 2 3 3 2
## 13552 4 10 4 1
## 8791 1 12 4 1
## 1134 5 4 4 1
## 1754 3 4 4 1
## 7071 2 11 3 1
## 4626 5 2 4 1
## 16133 3 7 4 1
## 11298 5 5 4 3
## 9542 3 11 1 1
## 13665 3 12 1 3
## 27617 2 8 4 2
## 20777 2 6 1 1
## 21905 1 4 1 2
## 20072 5 2 2 1
## 2542 5 8 1 1
## 22388 1 3 2 2
## 3412 5 9 1 2
## 18559 4 9 1 1
## 18144 3 11 3 1
## 19944 5 10 2 3
## 1020 5 10 4 1
## 17643 3 11 2 2
## 10755 4 11 4 1
## 1536 3 9 1 3
## 1617 4 12 4 1
## 12151 2 4 3 1
## 23097 4 5 1 1
## 22296 3 12 3 1
## 6971 4 11 1 1
## 13550 3 4 1 1
## 21253 3 4 3 1
## 27516 3 11 4 2
## 14693 5 10 1 2
## 15354 3 4 2 1
## 9872 1 8 1 1
## 12960 5 7 4 1
## 17332 4 1 4 1
## 14522 1 6 3 1
## 22227 4 12 4 2
## 15785 5 10 1 1
## 14188 5 10 2 3
## 15882 3 11 4 1
## 4257 3 12 1 3
## 13945 5 7 3 1
## 7088 4 7 1 1
## 1252 1 7 2 2
## 23123 1 0 1 3
## 14081 1 11 4 2
## 20608 3 0 3 3
## 7597 5 4 1 2
## 4919 2 0 3 1
## 21751 4 9 4 3
## 1334 5 4 3 1
## 12728 4 0 1 3
## 23252 3 9 1 3
## 13423 4 10 2 2
## 24557 4 12 3 3
## 12947 3 0 2 1
## 826 5 5 4 2
## 13239 3 10 1 3
## 6572 3 11 3 2
## 20490 5 3 1 3
## 17877 5 11 4 2
## 27572 4 11 1 2
## 22006 2 2 4 3
## 21261 2 12 1 1
## 14437 3 0 1 2
## 17464 2 0 2 2
## 3982 1 2 1 2
## 22226 5 10 3 3
## 18859 4 8 1 1
## 18433 5 4 3 3
## 5424 1 3 1 2
## 25908 3 10 2 2
## 6273 3 4 4 3
## 8746 3 12 1 1
## 14508 5 0 4 2
## 17991 2 2 2 1
## 19630 1 8 1 1
## 24610 1 0 2 2
## 24860 1 12 4 3
## 16323 2 10 3 3
## 21788 5 8 2 2
## 21275 3 10 2 1
## 8702 5 6 4 1
## 8180 4 10 4 2
## 14966 1 0 3 1
## 3176 1 12 2 2
## 7115 2 10 2 3
## 8064 3 12 1 1
## 24718 3 6 1 3
## 22474 3 8 2 2
## 3033 2 8 3 3
## 13582 5 11 1 3
## 2282 4 6 1 2
## 27067 3 11 4 1
## 17425 3 7 4 1
## 331 4 10 2 3
## 13288 1 0 2 3
## 14247 2 2 2 3
## 17592 2 12 4 3
## 13540 3 3 1 3
## 12571 5 11 1 3
## 19553 3 10 1 1
## 21338 3 11 1 2
## 4714 2 11 3 2
## 25114 3 12 3 2
## 24761 3 12 2 3
## 25338 2 5 1 2
## 15599 3 12 3 3
## 19449 5 9 4 1
## 14707 4 0 4 1
## 25311 2 2 3 3
## 19569 1 11 1 2
## 3770 2 6 1 1
## 11395 2 4 1 3
## 12989 5 5 1 2
## 8207 5 10 1 2
## 9063 5 8 2 3
## 24498 3 12 2 3
## 20615 4 12 3 3
## 20686 4 12 3 2
## 24184 3 10 2 2
## 6677 4 4 3 2
## 26530 5 0 1 2
## 5435 4 10 1 1
## 22263 1 8 1 3
## 11378 4 10 3 2
## 8952 3 7 3 3
## 23590 2 10 1 1
## 4851 5 10 2 3
## 2313 5 5 3 2
## 25766 3 12 2 3
## 26952 3 11 2 3
## 3281 3 9 3 2
## 18264 4 8 3 2
## 24786 3 12 3 2
## 16071 2 8 4 3
## 5747 1 8 2 3
## 25684 4 0 1 1
## 11976 3 2 4 2
## 8765 1 7 2 3
## 16896 2 12 3 2
## 3493 1 3 1 1
## 9713 1 3 1 2
## 13529 3 5 4 2
## 9234 5 12 4 1
## 589 3 7 2 1
## 12234 4 8 4 2
## 11888 5 3 4 1
## 26827 2 11 1 1
## 2447 1 9 1 3
## 27173 5 11 3 3
## 6403 3 10 2 3
## 24969 2 10 1 1
## 12990 3 0 3 3
## 14764 3 12 2 1
## 722 5 5 1 1
## 26285 1 0 2 2
## 16679 2 6 4 1
## 8238 2 1 1 2
## 10231 1 8 3 1
## 25041 4 10 4 3
## 4303 1 5 4 3
## 12522 2 5 3 2
## 8362 3 3 2 1
## 19121 5 11 4 2
## 8673 2 5 1 2
## 27534 3 11 1 2
## 4619 2 2 2 3
## 23872 1 1 4 3
## 25294 3 10 2 3
## 11202 3 12 1 3
## 1391 1 11 1 3
## 6244 5 7 4 2
## 18130 3 2 3 2
## 26213 5 2 3 2
## 9566 5 2 2 3
## 27711 2 6 3 1
## 9209 3 6 4 2
## 26869 4 0 1 1
## 26265 5 11 1 1
## 12619 4 8 1 3
## 2118 4 4 1 1
## 1451 1 12 1 2
## 10519 4 7 1 1
## 1284 4 0 2 2
## 14730 4 12 3 2
## 18477 5 11 1 1
## 242 5 7 1 2
## 10429 3 8 3 1
## 7566 1 6 1 3
## 16006 5 7 1 3
## 7662 4 7 2 1
## 5271 1 10 3 1
## 1844 2 10 3 1
## 2724 5 12 2 1
## 15825 1 9 1 1
## 9500 3 11 1 2
## 24803 4 6 4 1
## 3073 2 10 3 3
## 3157 1 11 1 2
## 14858 4 7 2 2
## 747 1 0 2 2
## 14335 5 6 2 3
## 3669 4 12 4 3
## 15416 4 10 3 1
## 26449 3 9 4 3
## 938 1 4 4 1
## 23753 5 10 3 1
## 5541 4 10 1 1
## 6937 2 0 2 3
## 17307 4 4 2 1
## 11490 5 9 4 3
## 236 5 9 3 1
## 18836 3 5 2 3
## 20146 5 11 4 1
## 4790 1 0 3 2
## 4394 5 12 3 2
## 2571 5 0 3 1
## 9030 3 4 2 3
## 18136 4 11 4 1
## 23100 2 12 2 3
## 20531 5 6 2 2
## 11254 1 12 2 3
## 1388 3 10 2 3
## 17366 1 8 4 2
## 18953 3 12 2 1
## 11117 4 6 2 1
## 2421 2 1 2 1
## 3978 4 10 4 1
## 11596 3 10 4 2
## 19577 5 0 3 2
## 13663 3 10 4 3
## 20930 2 4 4 2
## 23266 4 9 3 1
## 4005 2 6 1 3
## 11942 4 11 1 1
## 22207 3 2 1 3
## 20567 5 5 4 3
## 24323 3 4 4 1
## 1257 3 12 4 2
## 21313 3 0 1 2
## 26353 5 5 1 1
## 11288 3 3 1 1
## 7784 1 1 4 2
## 4908 3 12 1 3
## 16754 2 1 2 1
## 8593 4 9 2 3
## 19325 4 6 3 1
## 10790 2 11 2 1
## 12654 2 4 1 1
## 27479 2 3 2 2
## 21603 3 6 3 1
## 20076 3 11 3 2
## 18330 4 11 2 1
## 8257 2 3 3 3
## 24355 4 5 4 1
## 25103 1 0 4 2
## 25630 5 6 1 1
## 4610 5 6 3 3
## 13614 4 9 2 1
## 12662 3 10 3 1
## 6305 3 11 3 1
## 2420 3 8 1 1
## 26332 3 4 2 2
## 757 1 9 1 3
## 4453 5 10 3 1
## 22536 1 12 2 3
## 16043 4 8 4 2
## 2734 3 12 2 1
## 7720 3 7 4 2
## 24618 4 4 3 1
## 27583 2 1 2 1
## 26970 2 12 4 2
## 17223 5 10 3 2
## 16936 5 8 3 3
## 5273 5 10 1 1
## 13992 1 9 2 3
## 8760 1 9 2 2
## 19185 5 6 1 2
## 8229 2 2 4 1
## 7758 3 4 4 2
## 23518 5 12 3 3
## 9142 1 8 1 3
## 24070 4 8 2 2
## 10308 5 1 4 2
## 26585 3 11 3 1
## 17949 4 0 2 3
## 6047 4 12 3 1
## 1065 4 12 2 2
## 21893 3 12 2 1
## 15869 3 10 2 1
## 19171 2 7 4 2
## 910 4 8 3 2
## 4748 1 5 1 2
## 22658 3 10 2 1
## 16821 5 8 1 1
## 27666 4 11 4 2
## 454 5 2 4 1
## 14332 2 4 3 2
## 3737 5 7 4 3
## 4596 1 6 1 2
## 22833 1 8 4 1
## 20455 3 10 4 2
## 15586 2 8 2 2
## 25502 1 8 1 3
## 7833 5 0 3 3
## 8104 3 12 3 1
## 19849 1 8 3 3
## 10107 2 11 1 1
## 11772 4 4 3 3
## 26982 1 3 4 2
## 10710 5 9 2 1
## 1779 2 0 1 1
## 20735 3 6 3 3
## 4922 4 11 3 2
## 26333 1 10 1 3
## 4645 4 3 4 3
## 12538 5 4 3 1
## 18176 4 10 2 1
## 13327 2 8 4 3
## 26520 5 8 1 2
## 6970 1 6 4 3
## 5013 4 11 3 1
## 3903 4 4 1 3
## 11983 5 12 3 3
## 19436 2 7 4 1
## 24694 4 11 4 3
## 13980 2 7 4 1
## 8209 4 5 3 1
## 1992 3 7 2 2
## 19317 3 0 2 2
## 15509 4 9 1 2
## 25416 2 7 1 2
## 8262 3 10 3 2
## 17675 3 2 3 3
## 25112 5 9 1 1
## 16441 1 5 4 2
## 6406 5 3 3 3
## 20711 4 11 4 1
## 23531 2 8 2 1
## 7685 1 10 1 2
## 9012 4 12 1 2
## 3165 1 12 4 2
## 3872 5 11 4 1
## 487 3 12 1 2
## 22864 4 10 4 2
## 4116 3 0 1 2
## 20992 3 5 3 1
## 2582 5 0 4 2
## 1458 5 12 2 2
## 3549 5 5 3 2
## 14428 5 0 4 3
## 15464 3 5 1 3
## 20470 1 4 4 1
## 27313 4 8 1 1
## 9951 3 11 2 2
## 12779 5 12 3 1
## 10942 5 12 3 3
## 21998 2 4 4 1
## 7286 1 12 2 3
## 27255 2 8 3 2
## 19591 3 9 3 1
## 19620 1 10 4 3
## 24134 5 0 1 2
## 2586 3 11 2 1
## 22308 3 11 3 2
## 20320 5 10 3 2
## 8491 3 6 1 1
## 24547 5 2 1 1
## 3057 2 12 1 1
## 26829 4 10 2 1
## 11184 3 10 1 3
## 2803 3 9 1 3
## 9368 1 10 4 2
## 23676 1 11 4 2
## 2914 2 5 1 3
## 8891 2 10 4 1
## 5633 5 0 1 1
## 22761 1 10 1 3
## 24251 3 5 2 2
## 8144 2 5 1 3
## 14920 1 0 4 2
## 12985 2 12 3 2
## 5818 1 11 2 2
## 22510 5 0 2 2
## 750 3 2 4 2
## 21089 2 0 1 2
## 13490 2 4 1 2
## 7465 5 8 1 3
## 12339 2 7 2 3
## 17914 3 10 3 2
## 21210 5 5 3 2
## 9471 2 5 4 1
## 1830 1 11 1 1
## 1879 3 0 4 1
## 18849 3 12 1 2
## 2334 5 6 1 1
## 26130 3 5 4 3
## 8591 2 11 2 2
## 3375 5 9 3 2
## 23896 3 2 2 2
## 12825 4 3 4 3
## 25763 2 7 4 3
## 16028 3 4 2 2
## 25740 4 11 2 2
## 7881 5 8 1 1
## 4230 5 11 1 3
## 2716 4 8 4 1
## 15768 3 8 1 2
## 11686 4 10 2 1
## 2990 4 5 3 1
## 8948 5 12 2 1
## 6580 1 11 4 2
## 26910 2 12 2 3
## 23899 3 5 3 1
## 14756 4 10 2 2
## 13296 1 4 1 3
## 1628 4 12 3 1
## 2196 1 11 1 3
## 12879 1 3 4 1
## 2968 3 7 4 2
## 2154 1 10 3 2
## 18200 5 6 3 1
## 1715 5 12 3 3
## 27288 3 9 4 1
## 324 4 6 2 2
## 2131 5 12 3 1
## 5697 2 12 3 2
## 4198 4 0 2 1
## 3885 3 1 1 3
## 11331 3 0 1 2
## 8352 3 2 1 2
## 4778 1 2 2 3
## 9284 3 11 2 1
## 20345 4 10 1 1
## 25726 2 0 4 1
## 17945 3 2 1 1
## 24518 3 9 2 3
## 7760 5 2 1 2
## 23488 3 12 2 2
## 16058 1 0 1 2
## 4169 5 9 2 1
## 7095 1 9 1 3
## 20922 1 1 3 3
## 19237 2 0 1 2
## 3746 4 7 3 3
## 26773 5 10 2 1
## 14542 3 6 2 2
## 27148 5 8 4 3
## 2342 5 8 2 1
## 22880 3 2 3 1
## 21879 5 2 2 1
## 19057 5 0 3 2
## 2060 5 11 1 2
## 18294 4 4 4 3
## 3828 1 4 1 1
## 1465 5 12 3 2
## 27542 2 6 2 1
## 13498 5 10 1 2
## 374 5 9 3 3
## 6306 5 8 4 2
## 18639 3 6 1 3
## 3622 4 12 3 2
## 24812 5 8 1 2
## 1982 5 0 3 1
## 16471 3 3 2 2
## 13191 5 7 1 1
## 11536 2 5 1 2
## 15877 3 5 3 3
## 1554 1 8 2 1
## 21581 5 7 1 2
## 7131 4 12 1 2
## 23114 1 10 3 2
## 594 3 12 1 2
## 19996 1 7 4 1
## 69 3 12 4 3
## 720 4 6 2 2
## 21808 4 4 3 1
## 10540 1 4 3 2
## 1401 4 7 1 1
## 21782 2 12 2 2
## 2700 2 4 3 2
## 15969 1 7 4 2
## 6765 3 3 1 2
## 23843 1 8 1 3
## 10349 5 7 1 2
## 4735 1 7 1 2
## 12276 5 3 1 1
## 23162 4 10 4 3
## 24111 5 0 4 1
## 5842 5 11 4 1
## 855 1 9 2 1
## 8070 1 4 4 2
## 27584 4 9 3 1
## 15699 4 1 3 2
## 14779 4 10 3 3
## 18775 3 11 4 1
## 26392 3 6 3 1
## 26427 2 6 1 1
## 4177 2 0 4 3
## 12530 1 3 3 3
## 21811 5 4 2 3
## 6221 2 8 2 2
## 11219 3 4 2 2
## 983 4 0 4 2
## 7420 4 9 4 3
## 22831 5 11 1 3
## 26393 3 9 4 1
## 10733 4 11 2 2
## 11963 4 3 4 1
## 22211 1 10 4 3
## 19579 1 11 3 1
## 201 5 7 3 2
## 16699 5 12 3 1
## 10972 2 8 3 2
## 3431 5 7 1 1
## 25109 1 4 4 1
## 20096 1 9 4 2
## 3141 3 10 4 2
## 19984 5 0 2 1
## 26422 5 7 3 2
## 1810 3 9 1 3
## 22910 3 7 4 1
## 2035 2 10 2 3
## 9990 3 11 2 3
## 6350 4 10 4 2
## 20518 1 4 4 2
## 21591 5 6 3 2
## 7063 5 10 2 1
## 9059 4 12 1 3
## 24356 3 12 3 2
## 5056 3 9 1 2
## 19637 1 12 3 2
## 1849 4 4 4 1
## 16823 2 12 4 1
## 16850 5 5 3 3
## 21658 3 11 2 1
## 1556 1 7 1 3
## 9047 3 11 1 2
## 5367 3 6 1 1
## 6581 2 4 2 2
## 22426 5 6 1 2
## 26435 3 1 2 3
## 17891 2 5 1 1
## 17421 4 8 3 2
## 21615 3 10 1 2
## 10081 3 7 3 2
## 19593 5 11 3 1
## 12211 1 5 3 2
## 16715 1 5 1 1
## 15478 3 9 3 2
## 16524 1 10 3 3
## 21835 3 6 1 1
## 3775 3 8 1 1
## 11442 3 10 3 2
## 2727 2 12 2 2
## 9416 5 11 1 1
## 19665 5 12 2 1
## 27420 3 6 3 1
## 11757 3 9 1 1
## 14274 1 10 3 3
## 27256 5 9 1 3
## 14970 5 11 1 2
## 4664 4 6 4 1
## 24915 4 12 4 1
## 6208 5 10 1 3
## 23069 1 8 1 2
## 16668 3 9 4 1
## 14047 5 4 4 3
## 14334 2 10 1 2
## 12872 3 11 3 2
## 11382 3 11 4 3
## 11843 3 11 1 1
## 15204 5 10 2 1
## 21433 3 11 1 2
## 23138 5 6 1 1
## 18969 1 7 3 1
## 23935 2 5 2 3
## 18585 4 12 4 3
## 17103 5 0 3 3
## 1766 1 7 2 2
## 10253 3 11 3 2
## 16193 1 4 1 1
## 8602 3 7 2 3
## 3576 3 5 1 2
## 1790 5 9 4 1
## 5756 2 6 4 1
## 17739 2 12 1 1
## 84 2 4 2 1
## 13549 4 10 1 1
## 19499 3 9 3 2
## 8809 3 8 2 1
## 6500 3 0 2 2
## 23586 3 1 2 1
## 11681 1 7 4 2
## 24027 2 11 3 1
## 19749 4 8 1 3
## 5161 2 10 1 3
## 8819 4 7 1 1
## 25896 4 10 4 3
## 14009 3 6 4 3
## 24569 1 5 4 2
## 27032 1 10 3 3
## 4380 1 11 4 2
## 14426 3 9 3 2
## 17847 5 12 1 3
## 21434 1 12 1 2
## 25285 3 0 4 2
## 21708 4 10 2 1
## 6464 5 8 3 1
## 5324 2 5 2 1
## 16812 5 6 4 1
## 1115 3 11 4 2
## 18018 5 12 3 3
## 25980 1 2 1 1
## 1400 1 3 4 2
## 17447 1 5 1 3
## 17503 3 10 1 1
## 22204 5 10 1 2
## 6867 2 8 3 2
## 14447 1 1 3 1
## 23585 5 6 1 2
## 5472 4 11 3 3
## 27580 5 12 1 2
## 4284 1 2 3 2
## 16046 3 2 3 1
## 586 5 6 1 1
## 980 1 2 3 2
## 17303 5 5 1 1
## 17577 3 2 4 3
## 12316 1 3 3 2
## 3787 1 10 2 2
## 23697 2 11 4 2
## 7325 4 4 2 3
## 20760 5 4 3 3
## 15811 3 4 1 2
## 27043 4 10 2 1
## 11789 4 12 3 1
## 11915 4 0 2 1
## 6906 5 12 2 1
## 18942 3 0 3 2
## 14700 5 9 3 2
## 2977 4 10 3 1
## 7135 1 6 2 1
## 6329 5 11 3 1
## 12938 3 8 1 3
## 73 3 6 3 2
## 21311 3 12 1 2
## 6036 2 4 4 3
## 25013 5 9 3 2
## 18157 5 0 4 1
## 3748 5 6 2 1
## 25276 4 10 1 2
## 9701 1 6 3 2
## 20830 4 7 3 1
## 11848 3 2 3 3
## 18550 3 3 1 2
## 15840 4 5 1 1
## 23647 5 2 3 3
## 4536 2 10 2 2
## 23683 4 10 2 1
## 12468 4 10 3 3
## 24419 2 11 2 1
## 7385 3 6 1 3
## 12733 5 3 2 3
## 15100 5 5 2 2
## 17736 1 10 4 1
## 13781 3 12 3 1
## 5412 3 0 4 1
## 5531 3 9 4 1
## 20070 5 4 3 1
## 25657 5 12 2 1
## 13881 4 11 2 1
## 1379 3 10 1 2
## 929 3 5 1 2
## 1759 5 8 1 3
## 25318 4 0 4 2
## 101 4 11 1 1
## 4354 0 2 2 3
## 7601 5 7 3 1
## 3293 3 4 3 3
## 10021 1 10 1 1
## 21199 1 2 3 1
## 10396 2 12 3 2
## 13900 5 12 3 1
## 24447 5 12 4 3
## 11394 3 8 1 1
## 10276 3 1 2 1
## 26746 4 2 1 2
## 17232 5 5 3 2
## 22950 3 5 4 2
## 7423 5 6 1 1
## 19256 5 11 1 3
## 8666 4 10 2 1
## 15458 5 4 3 1
## 3533 3 10 2 1
## 25783 3 3 2 3
## 22422 5 0 1 1
## 26131 4 8 1 3
## 18107 4 8 3 1
## 19403 4 9 2 3
## 11896 5 11 3 3
## 17888 5 7 1 2
## 24342 3 7 3 3
## 20546 3 1 3 1
## 20183 1 2 3 3
## 23165 3 2 2 2
## 11518 1 4 2 1
## 17646 5 9 2 2
## 7961 1 9 1 1
## 21197 3 8 2 2
## 8448 2 6 4 1
## 15874 1 5 1 3
## 6085 4 3 1 3
## 23698 4 8 3 1
## 7105 4 4 3 2
## 6762 1 11 1 1
## 25017 5 11 4 2
## 8564 3 10 1 1
## 24023 1 12 4 1
## 4511 4 10 3 2
## 16183 4 1 1 1
## 26947 3 0 4 3
## 9280 5 11 2 3
## 15940 2 8 1 1
## 1459 2 5 2 1
## 14945 3 9 3 2
## 15514 5 2 1 1
## 3693 5 2 3 2
## 10675 1 12 4 3
## 7581 5 11 3 1
## 9415 5 7 3 2
## 8340 2 6 1 2
## 16766 2 11 4 3
## 15467 3 8 4 3
## 23197 4 12 4 1
## 20163 5 10 1 2
## 17770 2 12 3 3
## 14985 3 5 1 2
## 22190 2 2 1 1
## 16830 1 2 4 3
## 21943 3 9 2 2
## 21679 4 12 4 3
## 353 3 7 3 1
## 17829 1 10 2 1
## 11788 3 12 3 3
## 1133 4 9 2 1
## 26639 4 9 3 2
## 4136 1 4 2 1
## 2456 1 8 4 2
## 795 5 11 4 1
## 5026 3 12 4 1
## 15913 5 4 4 2
## 12377 2 6 1 2
## 26758 1 9 1 3
## 25706 1 10 3 1
## 10302 5 6 3 3
## 7474 3 10 2 2
## 15012 1 9 1 2
## 21030 3 0 2 3
## 9458 4 1 3 1
## 3537 3 4 1 2
## 1679 3 10 3 1
## 24075 4 3 2 1
## 13015 4 7 2 2
## 4549 3 7 1 1
## 18640 3 9 1 3
## 746 3 10 4 3
## 7497 5 7 1 2
## 312 2 4 2 2
## 26841 3 10 3 2
## 7586 1 10 3 2
## 26421 3 10 3 2
## 6623 2 6 3 1
## 4291 2 10 2 1
## 16500 1 3 2 2
## 27523 4 4 2 1
## 14911 4 1 3 3
## 11293 1 4 1 2
## 19411 3 10 1 3
## 3028 3 5 4 3
## 15419 4 10 3 2
## 17826 1 0 2 3
## 20635 5 3 1 2
## 21868 1 8 4 3
## 25693 4 7 1 1
## 20262 5 8 4 1
## 13040 5 11 3 1
## 12693 3 6 2 2
## 11093 2 7 2 2
## 11181 3 10 1 1
## 8402 4 10 4 3
## 15365 4 10 1 2
## 17607 4 10 4 1
## 10911 5 12 4 1
## 18397 2 11 3 3
## 22141 2 4 4 3
## 9939 1 2 3 2
## 10881 5 4 4 2
## 20876 2 10 1 1
## 11390 3 0 1 1
## 24655 4 11 3 1
## 25237 2 8 2 3
## 4659 5 10 1 2
## 27359 1 1 1 3
## 27316 3 10 3 2
## 9570 5 9 1 2
## 3821 3 1 3 1
## 16425 4 10 2 2
## 12363 4 4 4 1
## 7130 3 4 1 1
## 15998 1 8 2 2
## 7548 3 12 1 2
## 18255 1 1 1 2
## 18262 2 12 3 1
## 16704 2 12 2 2
## 7878 5 11 2 2
## 2951 1 10 1 2
## 11384 5 10 3 1
## 24580 5 6 1 2
## 9651 1 3 2 2
## 4541 4 6 3 2
## 6714 4 6 4 1
## 12784 3 12 3 3
## 4209 3 3 1 1
## 9683 3 3 4 2
## 27177 5 1 1 3
## 21630 4 12 1 3
## 12450 4 11 1 2
## 1275 3 10 4 1
## 9292 5 4 4 2
## 16622 3 10 4 3
## 716 5 12 4 1
## 11674 3 11 1 3
## 7456 1 7 3 3
## 2407 1 3 2 1
## 2979 2 7 1 3
## 1373 2 12 2 3
## 9888 5 11 3 1
## 3696 4 11 4 1
## 16703 2 10 1 3
## 10585 5 8 1 1
## 17443 3 10 4 1
## 9369 1 3 3 3
## 5642 3 6 4 3
## 13598 3 11 1 3
## 5641 2 10 3 2
## 3221 4 10 2 3
## 24865 3 12 4 3
## 25461 2 0 2 1
## 21350 2 10 4 2
## 16169 2 4 4 1
## 18364 4 3 3 2
## 10938 3 12 1 3
## 12584 5 1 1 1
## 8501 2 5 4 3
## 5761 4 11 3 1
## 22571 3 3 3 1
## 16873 3 0 3 1
## 5799 3 9 2 3
## 20019 4 2 3 3
## 897 5 10 3 3
## 21211 2 11 4 1
## 11146 2 4 1 1
## 14353 1 11 2 3
## 527 5 4 3 2
## 18164 3 11 4 2
## 19128 5 6 1 1
## 7807 4 2 3 1
## 12703 4 4 4 1
## 350 3 4 2 3
## 14683 3 6 3 2
## 1503 5 10 1 2
## 26112 2 4 4 1
## 11647 3 10 3 1
## 16639 5 3 4 1
## 24615 4 9 1 2
## 19676 5 12 3 1
## 17791 5 0 2 1
## 939 5 6 1 1
## 12529 4 2 1 1
## 1223 1 0 4 1
## 14296 3 9 2 1
## 2449 5 5 1 1
## 25708 2 10 4 1
## 16269 1 8 2 2
## 12103 2 2 2 2
## 26764 3 10 2 3
## 18452 4 9 2 1
## 22733 2 6 2 3
## 1455 4 8 3 1
## 8053 2 4 1 2
## 8502 1 8 3 1
## 11798 1 2 4 1
## 8945 3 3 3 3
## 27517 1 6 4 2
## 23774 3 3 4 1
## 14495 4 4 2 3
## 21503 3 6 3 3
## 239 1 5 3 2
## 10333 1 7 3 1
## 17419 3 4 1 1
## 21109 3 10 1 1
## 16525 4 10 3 3
## 7711 4 8 4 2
## 8714 3 0 3 1
## 26629 3 10 3 2
## 9495 5 10 2 3
## 1302 3 9 2 2
## 16129 4 3 4 1
## 7200 4 8 1 1
## 24268 5 4 4 2
## 14594 4 12 1 3
## 26071 1 10 4 3
## 6973 2 6 2 1
## 22254 4 10 4 1
## 22673 3 10 2 2
## 26768 5 8 1 2
## 17413 1 6 1 3
## 18037 2 0 1 1
## 9900 5 12 3 1
## 6472 3 10 3 3
## 13866 1 6 1 2
## 27179 5 7 3 2
## 7606 3 4 1 2
## 8709 2 5 4 3
## 5288 5 8 1 2
## 10707 3 7 2 3
## 19267 1 8 1 3
## 24516 1 1 2 2
## 19617 4 10 3 2
## 20387 2 12 2 2
## 23940 3 3 1 2
## 6287 5 9 3 1
## 25121 5 2 1 2
## 18948 2 10 3 1
## 20026 5 9 1 1
## 20747 5 2 1 2
## 5698 5 0 2 2
## 10677 5 7 4 2
## 9472 2 1 1 2
## 14976 5 10 2 2
## 7209 5 3 3 1
## 5248 3 11 1 1
## 20522 3 10 3 1
## 5380 5 4 4 2
## 6450 4 10 4 3
## 3150 3 12 3 1
## 20877 4 10 4 2
## 27217 1 10 1 3
## 17784 3 8 1 2
## 22807 5 9 1 1
## 26399 2 2 2 1
## 3776 3 12 4 1
## 26979 3 5 1 2
## 17121 3 10 4 3
## 12331 2 4 3 3
## 4422 3 4 3 2
## 4308 3 5 3 2
## 3484 4 1 3 1
## 2637 2 2 4 1
## 16701 4 8 1 2
## 10837 3 8 1 1
## 14944 2 10 3 1
## 13525 2 11 3 1
## 5670 4 10 3 1
## 13578 2 6 1 1
## 21781 4 4 1 2
## 20275 1 10 1 3
## 12361 3 7 3 1
## 1243 2 4 3 3
## 12072 3 10 2 1
## 14715 3 12 1 2
## 12669 5 6 1 3
## 14339 4 4 1 3
## 23588 1 12 4 2
## 6322 3 8 4 3
## 24117 2 1 2 2
## 4730 1 11 2 2
## 5955 3 10 3 1
## 13142 1 3 2 3
## 4858 3 2 2 2
## 10712 3 2 4 1
## 1990 1 8 4 2
## 27441 1 6 3 3
## 20549 4 12 1 3
## 25926 4 0 1 3
## 12680 5 12 1 2
## 6045 5 12 2 1
## 9885 4 5 1 2
## 22479 3 4 1 3
## 4439 5 9 1 1
## 17058 3 10 1 1
## 25286 2 1 3 2
## 15660 1 4 4 3
## 1343 4 4 4 1
## 26281 2 11 2 1
## 8202 2 12 1 1
## 4239 5 8 2 3
## 21455 2 12 4 3
## 23373 1 10 2 3
## 2520 2 3 3 3
## 8557 1 2 3 3
## 21805 5 3 3 3
## 6749 5 11 4 1
## 11114 5 7 4 2
## 102 5 12 2 2
## 24024 2 7 2 2
## 2114 5 11 1 1
## 3629 5 7 2 3
## 2876 4 10 2 1
## 3264 4 12 4 1
## 5542 3 4 4 1
## 4112 4 7 2 1
## 3912 2 9 1 1
## 26095 5 11 1 1
## 5613 4 10 1 1
## 21326 4 12 2 3
## 4881 1 5 3 3
## 22015 2 2 4 2
## 26000 2 10 2 2
## 4516 3 10 1 3
## 13101 3 7 1 2
## 3588 2 9 1 1
## 24141 5 12 3 2
## 21193 4 5 1 3
## 11097 5 9 3 1
## 27040 3 1 4 2
## 16537 5 8 4 2
## 4986 2 10 1 3
## 12046 2 10 2 1
## 7034 3 7 3 1
## 11334 5 6 2 2
## 16004 2 12 3 2
## 13092 1 3 3 3
## 17743 1 12 4 1
## 3492 2 7 2 2
## 6473 4 3 1 2
## 10256 2 10 3 3
## 17895 4 8 4 2
## 16197 2 0 3 1
## 22425 3 11 1 2
## 21492 5 5 3 3
## 11284 3 10 4 2
## 17467 3 0 2 1
## 6034 3 10 4 3
## 25967 3 0 4 2
## 26752 1 9 3 1
## 8484 2 10 3 2
## 8918 5 6 2 3
## 20974 5 0 2 2
## 14991 3 9 1 1
## 18440 2 11 4 2
## 17834 3 10 2 2
## 14077 3 7 3 1
## 4676 1 10 4 1
## 25710 5 5 1 1
## 1848 2 10 4 2
## 11742 5 7 1 2
## 12629 4 0 1 2
## 26545 3 11 1 1
## 21906 5 6 4 1
## 19350 5 8 4 1
## 12503 5 8 2 2
## 26559 1 1 2 2
## 1071 5 6 1 1
## 7521 5 9 1 1
## 4191 3 10 3 1
## 20048 3 3 1 3
## 8713 5 11 4 1
## 5917 4 8 1 1
## 25788 5 12 4 2
## 15342 1 0 4 2
## 92 1 3 3 1
## 18154 1 10 1 2
## 7075 1 4 4 3
## 22781 1 6 2 3
## 13829 1 4 3 3
## 20035 4 12 2 3
## 952 5 12 2 2
## 16644 4 10 1 3
## 21768 2 8 1 3
## 24105 1 10 4 3
## 11479 1 12 4 1
## 24051 1 12 4 1
## 1823 2 1 3 3
## 22390 5 0 1 3
## 26576 3 10 2 2
## 7965 4 7 3 3
## 8173 4 11 3 1
## 3679 4 11 4 1
## 11824 2 11 4 2
## 13219 5 6 4 3
## 16714 2 12 4 3
## 19570 2 12 3 2
## 24577 5 5 4 3
## 25394 4 2 3 3
## 8956 3 6 1 2
## 23570 3 7 1 2
## 2092 2 8 3 3
## 21419 4 8 3 2
## 4256 2 5 1 2
## 25907 4 10 2 2
## 12282 5 12 1 1
## 25183 5 1 1 1
## 15343 3 1 4 3
## 10380 5 8 3 3
## 10467 5 4 4 1
## 10189 2 10 3 1
## 9994 3 4 2 1
## 1774 2 10 3 2
## 13261 1 4 1 2
## 7874 5 5 2 3
## 5038 4 6 3 1
## 9421 2 12 1 3
## 23972 1 10 1 1
## 3497 5 7 4 3
## 7580 4 10 4 3
## 14807 3 1 2 3
## 11031 1 9 2 1
## 3966 1 10 4 2
## 13313 3 1 2 2
## 14685 3 0 1 3
## 17334 4 8 3 2
## 24914 5 10 3 3
## 13927 1 12 4 1
## 16076 1 11 3 2
## 16908 1 2 3 3
## 25 4 11 4 1
## 5498 1 9 1 2
## 18153 2 7 1 3
## 19266 4 2 3 1
## 27052 5 7 2 2
## 9782 5 11 2 1
## 22564 3 0 3 2
## 4530 5 6 2 1
## 26852 3 8 2 3
## 13798 4 10 1 2
## 3350 1 0 1 2
## 22023 1 9 2 2
## 25840 5 9 1 1
## 14961 3 10 1 1
## 4720 1 10 3 3
## 12533 2 12 3 3
## 122 5 11 4 1
## 21006 3 11 2 2
## 8992 3 10 2 2
## 26862 1 0 2 1
## 12274 4 8 2 1
## 18215 2 3 1 1
## 9620 5 5 3 1
## 17925 4 5 1 1
## 17090 1 4 2 3
## 23342 3 10 3 1
## 17124 2 0 1 2
## 23332 3 1 1 2
## 15408 5 2 4 2
## 23262 2 12 1 3
## 15372 3 10 2 2
## 27289 3 11 1 2
## 10624 3 10 4 2
## 17468 4 10 4 3
## 17450 1 6 2 3
## 5629 5 12 2 1
## 15019 2 0 3 1
## 21822 5 1 2 3
## 13114 3 9 4 3
## 25550 2 6 1 3
## 21936 3 10 2 3
## 15380 4 10 3 3
## 9637 2 9 3 1
## 22508 3 4 4 3
## 10474 1 3 1 1
## 23880 2 11 2 2
## 18055 3 1 4 3
## 8186 4 5 4 2
## 4304 2 5 4 1
## 11365 5 10 3 1
## 112 5 12 1 2
## 19752 1 6 4 2
## 13006 1 9 1 3
## 10939 1 7 4 3
## 18886 2 2 3 2
## 25127 2 7 2 1
## 1730 5 7 3 1
## 25503 2 1 4 1
## 8640 5 1 1 2
## 27471 3 8 1 2
## 12218 1 8 3 1
## 19238 5 10 1 3
## 15435 4 6 4 2
## 22964 3 8 4 2
## 5080 3 7 1 1
## 18631 5 2 4 1
## 7202 3 10 1 1
## 14562 2 5 4 2
## 3086 3 10 1 1
## 3993 2 3 1 3
## 2205 3 0 3 2
## 6446 4 8 3 3
## 7919 5 8 1 1
## 632 3 7 3 2
## 16880 2 0 3 1
## 18212 3 1 1 3
## 10634 5 12 2 1
## 20460 3 6 2 3
## 9916 3 1 2 3
## 12504 1 2 3 1
## 13061 3 12 2 1
## 19668 1 7 4 2
## 17703 3 9 4 1
## 10455 2 10 3 2
## 9191 1 12 2 1
## 11039 3 12 2 2
## 9993 4 7 1 1
## 5107 1 3 2 2
## 7453 5 10 1 1
## 9887 3 7 3 2
## 2373 2 0 3 1
## 4688 4 9 1 1
## 6792 5 5 2 3
## 22409 3 0 4 3
## 1813 1 2 1 2
## 16117 5 7 3 2
## 19594 1 10 3 3
## 22724 2 10 1 2
## 12950 1 5 3 3
## 4793 3 3 2 1
## 6142 4 12 2 1
## 13067 4 2 4 1
## 26930 3 5 1 2
## 8873 1 10 4 2
## 15792 4 8 1 3
## 26373 1 0 4 3
## 10534 2 12 2 3
## 6796 1 0 2 2
## 18394 3 8 1 3
## 284 4 7 2 3
## 14792 1 9 1 1
## 16292 1 4 1 1
## 1869 1 4 3 3
## 16101 1 12 1 1
## 7940 2 12 4 3
## 22495 4 3 3 1
## 15391 4 8 2 2
## 17319 3 10 3 3
## 13669 5 12 1 1
## 14748 2 12 1 1
## 10166 4 8 1 1
## 5877 3 6 3 2
## 10717 5 12 3 1
## 8148 4 10 2 1
## 127 3 12 3 3
## 19564 1 12 4 2
## 15223 2 11 2 1
## 22569 1 9 4 2
## 10944 1 5 1 2
## 309 3 2 3 2
## 13887 1 5 2 2
## 12467 1 6 3 1
## 17161 5 10 1 1
## 9558 1 4 1 3
## 11495 4 11 2 3
## 24236 5 6 3 1
## 21356 2 6 4 1
## 2119 4 8 1 3
## 21463 5 0 3 3
## 19964 5 12 4 1
## 26476 5 11 1 1
## 24765 1 7 2 3
## 9027 1 4 4 3
## 1082 2 5 2 2
## 19907 5 7 3 1
## 2698 4 2 2 2
## 13997 1 3 2 2
## 13700 5 8 2 2
## 25973 2 10 1 3
## 18060 2 10 2 2
## 8842 3 7 1 3
## 9383 2 10 1 1
## 6848 1 12 3 2
## 19882 2 4 2 1
## 14113 4 10 4 1
## 20983 1 12 4 2
## 4368 2 4 4 2
## 6664 4 5 1 1
## 13170 3 8 3 3
## 20945 3 4 3 2
## 10258 1 8 1 1
## 9033 5 9 3 2
## 1378 3 6 4 1
## 27346 4 8 2 3
## 6351 5 10 3 1
## 5522 1 4 1 1
## 12836 1 10 4 3
## 10828 1 12 4 1
## 25472 3 12 3 3
## 20604 3 8 2 2
## 17687 3 11 1 2
## 26136 1 1 4 2
## 16150 4 9 3 1
## 4006 3 1 3 1
## 14160 2 3 1 3
## 12941 4 2 3 2
## 3785 5 7 2 1
## 22671 4 2 1 1
## 8005 1 12 1 2
## 26548 3 5 3 1
## 387 3 8 3 1
## 26680 3 10 3 1
## 12465 5 12 1 2
## 21678 1 7 1 3
## 6153 3 9 1 2
## 25601 3 2 2 1
## 1909 4 7 1 1
## 21387 1 8 4 1
## 18704 4 7 4 2
## 18258 5 7 3 1
## 9505 3 12 3 3
## 14898 3 6 2 2
## 6708 2 11 1 2
## 26949 1 0 4 2
## 9543 3 7 3 1
## 8363 4 10 1 2
## 5444 3 5 1 1
## 23742 5 8 4 2
## 16915 5 1 3 1
## 14725 5 5 1 1
## 10359 3 5 1 3
## 20704 3 6 3 3
## 19447 1 6 4 1
## 11773 2 10 4 2
## 1272 3 10 1 3
## 14820 3 6 1 2
## 21467 4 12 2 3
## 10578 4 1 1 3
## 23311 5 12 4 2
## 5573 4 8 4 2
## 12848 4 1 3 1
## 16993 5 12 3 1
## 24307 4 10 3 1
## 7823 3 8 3 1
## 21018 1 0 1 3
## 4734 4 5 3 2
## 15379 5 7 3 1
## 4855 3 4 3 2
## 16661 4 9 1 2
## 6746 2 5 4 2
## 26662 1 3 3 1
## 7424 3 10 2 3
## 23113 2 10 4 3
## 3901 3 1 3 3
## 8325 1 2 3 2
## 22225 5 2 1 3
## 18961 2 0 3 2
## 10728 3 4 3 2
## 15292 2 0 3 2
## 13185 4 11 3 1
## 5575 2 6 1 1
## 5114 5 7 3 1
## 4431 1 8 1 3
## 10975 4 10 3 1
## 11042 4 11 4 2
## 26802 3 10 1 2
## 2526 4 10 4 2
## 7400 3 11 1 3
## 26496 3 12 2 3
## 1511 3 6 4 3
## 18654 5 8 2 3
## 20536 3 5 4 3
## 14364 3 8 4 1
## 1940 3 7 1 3
## 12092 1 5 3 1
## 11259 5 11 1 3
## 4045 4 7 2 3
## 8461 1 8 4 2
## 4722 2 0 1 1
## 12076 5 6 1 1
## 2216 5 11 3 2
## 26027 5 8 2 2
## 19997 4 7 3 2
## 13996 1 3 2 2
## 25914 1 7 3 3
## 18766 3 8 4 1
## 1438 3 0 1 3
## 9722 5 3 2 3
## 4918 1 2 3 3
## 6112 5 7 2 2
## 27374 4 10 4 2
## 14614 5 9 1 2
## 16553 4 0 3 1
## 5180 3 10 4 1
## 27397 3 4 2 2
## 23385 4 11 4 2
## 13928 2 7 2 2
## 11484 3 11 3 3
## 21614 2 12 1 1
## 18032 3 9 4 1
## 4862 3 0 1 2
## 2147 3 11 2 1
## 27307 3 4 1 2
## 14932 3 0 1 1
## 11955 3 10 2 1
## 27812 3 12 3 1
## 12444 1 8 3 1
## 27328 3 9 3 1
## 22713 5 10 1 3
## 23380 3 6 2 2
## 15253 1 12 3 2
## 11544 3 6 2 3
## 16377 1 11 3 1
## 4327 3 3 1 1
## 6567 4 12 1 2
## 12862 2 10 2 1
## 4740 3 10 2 2
## 850 2 6 3 3
## 27314 3 7 4 3
## 19974 3 3 3 1
## 10421 2 8 4 3
## 20862 2 8 1 3
## 1098 4 10 2 1
## 17418 5 3 3 2
## 8906 4 9 2 2
## 25415 5 10 3 2
## 16345 3 9 2 1
## 1780 5 5 1 1
## 23066 1 4 4 2
## 13886 3 8 3 2
## 20619 3 9 2 3
## 18537 5 5 1 3
## 19308 3 12 1 1
## 16608 5 11 4 3
## 12176 3 12 2 1
## 366 2 11 2 3
## 12435 2 1 3 2
## 4691 1 8 1 1
## 11375 4 12 2 3
## 25389 5 2 1 3
## 791 3 8 4 1
## 2419 4 12 2 3
## 7020 5 6 1 2
## 20779 3 7 2 3
## 11372 4 2 2 3
## 10268 5 8 3 1
## 8728 1 5 4 3
## 18945 1 8 1 3
## 9519 2 2 3 1
## 16344 4 7 4 2
## 4010 5 1 3 1
## 2191 4 7 1 3
## 25668 5 10 2 3
## 12345 3 10 4 2
## 17362 3 10 1 1
## 13162 2 12 2 3
## 11507 2 11 3 3
## 4069 2 10 1 3
## 26414 1 9 2 1
## 21771 5 8 1 3
## 15629 1 10 3 1
## 24502 5 8 3 3
## 1289 3 11 4 1
## 1936 5 6 1 1
## 11190 2 10 3 1
## 21300 3 2 1 2
## 17869 4 4 4 3
## 17506 5 10 2 1
## 18716 4 6 2 1
## 18349 5 0 4 2
## 5211 4 12 1 3
## 19540 3 2 4 3
## 7433 2 6 4 1
## 12490 4 3 2 1
## 17797 3 10 2 2
## 7214 3 11 3 1
## 8302 2 3 1 3
## 8675 2 8 2 3
## 24072 3 12 3 2
## 11174 1 12 3 2
## 22760 3 9 1 2
## 14938 4 10 3 1
## 8738 2 12 1 1
## 957 4 2 1 1
## 11985 3 8 2 2
## 8315 4 8 1 1
## 9703 5 11 1 2
## 19209 3 10 3 1
## 20323 2 6 3 3
## 18071 5 6 3 1
## 27690 3 4 3 1
## 3735 4 1 3 1
## 497 1 10 3 2
## 17373 3 0 1 2
## 11533 5 2 2 1
## 22078 2 12 1 1
## 25974 1 8 2 3
## 20382 3 10 4 2
## 8691 1 9 1 2
## 6291 4 2 1 3
## 20824 5 3 2 2
## 17942 4 2 4 3
## 8434 2 1 2 1
## 6999 2 5 1 3
## 23605 3 7 1 2
## 11709 3 8 1 2
## 2267 3 9 1 2
## 1370 1 8 1 1
## 18501 1 6 4 2
## 9976 2 10 3 3
## 9828 4 11 2 2
## 2783 1 1 2 3
## 11124 2 3 4 3
## 13884 1 11 1 1
## 22311 5 11 1 3
## 25685 5 1 1 2
## 19756 5 11 3 2
## 24837 1 1 4 1
## 463 1 2 4 2
## 5350 3 1 3 3
## 13793 3 1 3 3
## 11192 2 6 2 1
## 27568 3 8 3 3
## 3048 5 6 4 2
## Financial.Stress CGPA Study.Satisfaction
## 27249 5 5.74 4
## 18782 5 7.52 4
## 21691 3 5.66 2
## 9297 2 7.28 4
## 1253 5 5.46 5
## 15522 5 9.86 2
## 8833 1 7.85 3
## 10299 3 9.24 2
## 13454 3 9.96 5
## 14376 5 6.38 3
## 16762 1 6.84 3
## 7706 3 8.49 2
## 3957 1 6.02 4
## 26538 5 9.21 1
## 9098 2 6.08 3
## 5406 2 9.91 4
## 932 2 9.98 1
## 25624 2 9.89 2
## 26650 4 8.04 1
## 22057 5 9.89 3
## 15588 1 7.88 5
## 20416 5 5.11 3
## 25487 1 5.88 3
## 12147 1 8.73 3
## 259 1 7.10 3
## 21854 5 6.25 5
## 481 2 5.74 2
## 13624 3 6.21 2
## 26707 2 9.54 4
## 7332 2 6.03 2
## 24922 4 8.64 5
## 2455 5 7.53 3
## 25463 5 8.69 2
## 9181 4 8.17 1
## 7795 4 5.67 1
## 21888 4 5.42 2
## 22763 4 9.11 3
## 26171 2 6.69 2
## 18686 5 8.04 4
## 2553 5 8.58 4
## 16328 2 7.13 5
## 11630 4 8.97 3
## 11235 3 5.60 2
## 17134 3 7.25 4
## 945 5 9.60 3
## 11520 4 7.04 4
## 17032 2 8.09 4
## 4361 5 7.53 1
## 22956 5 5.75 3
## 12430 2 8.96 4
## 17805 4 9.21 2
## 21539 1 5.10 4
## 12675 2 9.92 5
## 15782 3 9.84 3
## 2820 2 9.94 1
## 9214 4 8.14 1
## 14197 2 5.16 1
## 12951 2 7.92 2
## 14392 5 5.56 3
## 517 2 7.77 1
## 24656 5 8.62 2
## 27793 3 8.95 1
## 103 1 7.51 5
## 5351 3 7.04 4
## 10360 4 8.91 1
## 23574 4 6.38 3
## 9554 2 7.38 3
## 18103 4 8.04 1
## 4175 3 9.74 3
## 15332 5 7.80 3
## 5900 2 9.88 4
## 5614 5 8.24 4
## 20033 3 5.88 2
## 10984 2 7.09 1
## 16 2 8.58 3
## 13683 2 9.96 1
## 15358 2 9.05 1
## 21865 5 5.37 3
## 988 3 9.91 2
## 16009 4 6.02 1
## 7816 1 9.63 3
## 8281 2 7.88 4
## 14248 3 5.60 3
## 14209 4 9.94 4
## 25541 4 5.26 5
## 15737 4 9.26 1
## 15303 3 9.50 4
## 2345 3 8.62 1
## 149 2 8.92 2
## 7143 4 6.02 3
## 22109 1 6.95 3
## 16506 3 5.88 5
## 2347 2 6.16 4
## 2451 1 6.10 4
## 91 4 7.09 4
## 23350 2 5.74 5
## 7355 5 5.79 5
## 21592 4 6.75 3
## 23421 5 9.88 2
## 26974 4 6.16 3
## 4819 3 6.10 5
## 5881 4 5.32 2
## 14412 4 5.42 3
## 25938 5 8.14 3
## 27540 5 9.54 1
## 15321 3 8.28 2
## 14729 2 7.53 1
## 26511 5 9.92 1
## 6785 2 5.85 1
## 8626 3 9.21 2
## 23010 1 5.56 3
## 5235 2 9.56 4
## 21094 4 8.17 5
## 7459 3 5.85 1
## 17358 4 9.39 1
## 8109 5 7.53 4
## 9738 5 9.24 4
## 5264 3 5.82 1
## 18336 3 9.97 2
## 27732 1 6.16 3
## 20821 5 7.88 4
## 11163 2 7.08 2
## 19272 5 9.74 5
## 9779 3 5.75 1
## 14394 1 7.09 4
## 21270 2 8.95 4
## 18300 4 9.79 2
## 25903 4 5.86 4
## 11716 4 9.11 2
## 27770 1 8.32 1
## 12325 4 9.84 4
## 1908 5 9.24 3
## 8902 3 7.08 3
## 11819 2 5.59 4
## 3313 1 8.10 3
## 6673 1 9.39 4
## 12924 2 6.16 5
## 2311 1 6.56 3
## 11779 2 9.74 4
## 20809 2 6.38 2
## 7620 5 9.39 3
## 12208 1 8.09 2
## 15072 2 5.37 3
## 27057 1 7.80 2
## 27200 3 7.88 3
## 8953 3 5.88 3
## 21309 5 5.56 2
## 6053 4 8.04 1
## 19323 1 9.41 3
## 17655 2 7.87 5
## 27465 2 7.88 5
## 23810 1 8.50 2
## 20804 1 5.82 2
## 17013 1 6.37 2
## 15897 1 8.04 3
## 16232 5 7.47 3
## 27455 5 6.17 3
## 19244 4 9.79 3
## 8745 1 6.00 4
## 18887 4 5.82 4
## 12772 2 7.08 3
## 18647 2 6.21 2
## 8453 5 6.10 3
## 8467 3 5.48 5
## 4739 1 5.57 2
## 3485 2 9.96 2
## 2090 1 8.55 5
## 7367 4 9.97 4
## 15957 1 6.17 4
## 15176 2 9.89 5
## 25290 3 8.59 3
## 1122 4 9.71 4
## 23106 3 8.74 2
## 10358 2 5.64 5
## 16568 5 5.32 5
## 17042 3 9.89 4
## 2756 4 7.09 4
## 9832 4 5.75 2
## 22084 1 7.02 3
## 3998 5 8.74 4
## 22238 2 6.39 2
## 4895 4 5.39 1
## 23199 2 5.66 4
## 3111 2 8.00 3
## 25790 5 9.96 4
## 11260 2 9.87 4
## 2823 2 9.21 4
## 20588 1 5.46 4
## 21036 4 8.04 5
## 20154 5 9.84 3
## 12165 4 9.78 4
## 3171 2 7.85 2
## 16121 5 6.83 5
## 23051 3 6.65 2
## 10433 4 9.50 2
## 19960 1 8.52 1
## 1151 2 9.05 2
## 19979 1 5.76 2
## 5678 5 5.85 1
## 24289 1 7.72 2
## 3581 3 9.05 4
## 4436 5 8.44 3
## 4030 1 9.59 2
## 4638 1 6.37 2
## 13868 2 8.00 3
## 3254 5 6.99 4
## 10463 2 7.28 2
## 9812 3 8.96 2
## 21941 5 7.45 2
## 12362 5 6.00 1
## 17702 2 7.85 2
## 2016 4 7.53 5
## 1407 3 5.59 1
## 19609 2 9.42 1
## 7236 5 6.86 5
## 2611 4 9.88 2
## 4672 5 9.31 2
## 7802 4 8.73 4
## 14095 5 8.91 2
## 8087 5 9.24 4
## 20415 1 9.97 4
## 2 2 5.90 5
## 8870 4 5.56 4
## 24245 2 5.76 3
## 13453 4 7.09 1
## 25398 4 6.25 1
## 8940 2 5.82 5
## 18730 4 8.08 1
## 8904 4 5.74 1
## 25296 2 6.47 4
## 22103 2 7.53 2
## 20954 1 6.78 1
## 26521 1 8.90 2
## 24156 5 9.11 3
## 3272 1 5.86 3
## 12290 5 8.14 2
## 21546 3 9.50 2
## 11218 2 5.98 5
## 1226 4 6.33 4
## 22286 2 6.81 1
## 1946 1 9.96 4
## 24112 4 8.14 4
## 15202 1 6.17 3
## 20691 3 8.58 4
## 25378 1 8.62 1
## 21823 4 8.28 4
## 5887 4 5.75 2
## 16869 4 8.23 4
## 6752 1 9.86 2
## 9538 2 5.80 4
## 2133 1 5.74 2
## 3961 5 8.59 3
## 21496 5 7.64 4
## 24848 2 5.66 1
## 25754 2 8.04 4
## 10422 2 8.58 4
## 20999 2 5.42 2
## 20148 1 5.76 5
## 7069 5 5.58 5
## 6103 5 9.97 4
## 13893 3 8.71 1
## 19484 3 7.10 2
## 10052 5 9.05 4
## 26340 3 9.44 4
## 25859 2 6.03 2
## 9308 4 8.79 3
## 18365 2 6.78 4
## 4252 3 9.96 3
## 23532 1 8.14 3
## 22451 2 9.56 2
## 14592 1 5.58 2
## 16455 2 8.95 3
## 156 5 5.11 4
## 10525 2 7.71 4
## 26222 2 6.99 1
## 11501 4 5.87 3
## 2219 3 9.11 4
## 20802 4 7.70 4
## 20658 5 8.78 4
## 19180 2 6.10 3
## 26874 1 9.85 1
## 5962 4 8.74 1
## 19598 1 9.56 1
## 23623 5 5.60 2
## 2656 1 5.45 4
## 2695 4 8.59 3
## 24515 3 7.94 5
## 20112 4 7.88 5
## 26936 4 8.04 4
## 5006 5 9.44 5
## 4831 5 9.13 3
## 10801 1 9.97 4
## 15739 5 9.39 4
## 12170 5 7.53 5
## 3948 3 9.42 1
## 10004 3 8.08 3
## 18350 4 6.53 1
## 9436 5 6.83 2
## 5415 2 8.25 2
## 7600 3 8.47 2
## 25612 5 7.53 1
## 18899 1 9.34 1
## 5950 5 8.17 4
## 21135 4 9.10 3
## 16948 1 5.59 3
## 6846 2 6.00 2
## 13795 4 7.90 1
## 13218 2 8.90 5
## 7113 1 9.43 1
## 3634 2 9.97 2
## 21643 2 5.10 2
## 5325 4 8.90 1
## 23967 2 6.65 4
## 18386 5 9.87 4
## 6538 5 9.05 4
## 20908 4 8.59 2
## 6415 5 6.16 3
## 11070 5 7.82 4
## 5645 1 5.11 1
## 23717 3 7.21 5
## 1626 5 7.87 5
## 10287 4 6.02 5
## 15058 5 8.04 3
## 14515 1 5.83 3
## 26729 4 9.24 3
## 3362 1 7.61 3
## 4958 5 8.59 1
## 1489 1 8.73 1
## 868 5 5.12 1
## 8575 5 6.89 3
## 24903 4 9.60 1
## 7081 3 7.70 4
## 17388 4 5.82 1
## 5527 3 6.04 2
## 25341 5 6.65 5
## 8193 5 9.93 1
## 5348 5 8.17 2
## 15756 1 8.71 2
## 14558 3 8.35 1
## 9573 1 9.89 4
## 10027 5 6.29 1
## 17011 1 7.92 3
## 18239 4 8.54 2
## 3939 5 6.16 1
## 7532 3 9.02 1
## 20446 5 6.37 4
## 2815 4 5.82 1
## 4746 2 7.25 3
## 22314 4 6.25 4
## 12459 2 5.88 2
## 928 2 9.86 1
## 978 5 6.99 4
## 2985 2 7.88 2
## 5501 1 8.29 4
## 1078 1 9.93 1
## 27202 1 9.90 4
## 14892 4 7.21 4
## 6534 1 7.85 1
## 9848 1 6.84 4
## 23808 1 8.70 1
## 23316 5 8.97 2
## 19751 4 7.53 3
## 9361 4 7.85 3
## 20197 1 9.96 5
## 10878 5 8.95 5
## 4063 3 7.50 5
## 26063 3 6.04 4
## 12921 2 8.58 1
## 10453 2 8.52 2
## 26756 3 9.72 2
## 20145 1 8.24 4
## 16741 4 5.97 4
## 11321 1 9.56 5
## 25899 4 7.38 5
## 22697 1 5.74 4
## 25802 2 6.99 2
## 5184 1 7.53 5
## 21557 1 8.44 2
## 4781 4 8.91 1
## 7528 5 8.91 4
## 9182 3 8.91 1
## 21039 3 5.12 1
## 12382 1 7.88 1
## 25863 1 7.83 1
## 23770 2 7.35 4
## 22839 4 5.71 2
## 94 2 9.88 4
## 27016 5 8.98 5
## 6326 5 9.39 1
## 26670 5 6.81 1
## 11349 2 5.12 1
## 18765 5 7.25 4
## 15282 5 9.72 2
## 5053 5 6.17 1
## 22377 5 8.95 1
## 8672 5 9.93 1
## 25999 4 7.53 4
## 25883 4 9.95 1
## 16310 3 8.54 2
## 5489 4 6.88 1
## 3190 3 7.39 1
## 22674 4 9.89 3
## 27347 1 9.39 4
## 12023 1 8.24 4
## 17007 3 6.78 4
## 20028 5 7.09 2
## 10869 5 6.99 4
## 2152 4 5.16 3
## 8954 5 6.89 3
## 11620 1 6.02 5
## 1283 5 6.78 2
## 20420 2 6.65 3
## 7567 3 8.74 4
## 25836 1 5.11 5
## 4942 4 8.52 4
## 9615 5 5.74 5
## 26456 1 8.04 1
## 16603 2 9.72 4
## 9879 1 7.88 3
## 17623 4 9.39 4
## 15098 5 8.96 1
## 20045 2 6.16 3
## 1217 3 5.42 5
## 21965 5 8.55 5
## 10132 2 6.78 4
## 17480 4 6.10 4
## 23028 5 5.66 2
## 5145 5 7.94 5
## 20255 2 9.63 3
## 21917 1 9.44 4
## 8331 3 9.96 2
## 9804 5 6.16 2
## 12487 3 9.96 2
## 2102 4 8.74 1
## 17490 3 5.51 4
## 23407 1 7.99 4
## 15034 1 6.08 2
## 19163 5 7.48 4
## 9629 5 9.40 5
## 6234 2 7.47 4
## 228 3 9.60 4
## 2042 5 9.60 2
## 1594 1 6.92 1
## 13986 4 9.04 4
## 14233 5 6.84 1
## 1198 4 8.14 5
## 11449 4 9.71 3
## 4102 1 6.89 4
## 27683 5 8.14 4
## 10954 3 6.78 2
## 14754 3 6.26 3
## 22704 2 8.46 5
## 20991 5 6.16 1
## 26595 2 7.10 5
## 13068 5 6.78 3
## 11871 5 6.16 1
## 9020 1 5.11 4
## 7016 1 7.52 5
## 6089 1 5.82 1
## 27358 5 5.75 2
## 18185 5 9.50 1
## 25334 5 5.67 1
## 17908 4 7.85 2
## 19366 2 9.44 4
## 13494 5 8.17 4
## 3161 1 6.17 4
## 2545 2 6.02 2
## 18678 2 5.60 2
## 22898 3 8.56 3
## 15578 1 7.09 3
## 16516 1 5.70 4
## 1143 1 5.70 5
## 17025 4 6.99 4
## 8926 1 9.67 5
## 13380 4 8.91 1
## 27 3 6.08 5
## 13552 2 8.14 3
## 8791 3 6.23 3
## 1134 5 9.74 1
## 1754 2 7.14 1
## 7071 5 5.75 1
## 4626 1 6.99 4
## 16133 4 7.83 5
## 11298 5 5.16 2
## 9542 3 9.44 2
## 13665 1 8.59 4
## 27617 3 6.51 5
## 20777 5 6.86 3
## 21905 1 8.79 1
## 20072 1 8.53 2
## 2542 3 6.91 2
## 22388 3 9.84 1
## 3412 1 9.41 1
## 18559 5 7.39 1
## 18144 4 9.96 3
## 19944 2 8.04 2
## 1020 4 8.46 3
## 17643 4 6.53 3
## 10755 4 7.92 4
## 1536 2 8.04 5
## 1617 5 9.16 2
## 12151 4 8.04 1
## 23097 4 6.51 4
## 22296 2 6.84 2
## 6971 4 8.64 1
## 13550 3 5.58 3
## 21253 5 5.26 3
## 27516 5 7.70 4
## 14693 4 8.04 4
## 15354 5 8.58 5
## 9872 4 9.21 4
## 12960 1 8.96 4
## 17332 2 5.27 4
## 14522 5 6.33 3
## 22227 4 6.37 4
## 15785 2 6.75 3
## 14188 2 8.08 2
## 15882 5 5.84 4
## 4257 4 7.88 4
## 13945 3 6.21 1
## 7088 2 5.64 3
## 1252 4 7.15 5
## 23123 1 6.74 4
## 14081 3 9.97 5
## 20608 5 6.52 3
## 7597 3 6.25 3
## 4919 4 8.14 5
## 21751 2 7.28 3
## 1334 3 6.29 4
## 12728 3 8.59 2
## 23252 1 8.89 4
## 13423 3 7.51 1
## 24557 4 5.42 2
## 12947 2 7.82 4
## 826 1 9.79 2
## 13239 1 8.25 4
## 6572 1 7.88 5
## 20490 1 5.16 1
## 17877 5 7.47 4
## 27572 2 8.04 5
## 22006 4 6.36 1
## 21261 3 8.04 4
## 14437 5 7.09 2
## 17464 3 7.25 4
## 3982 1 8.74 4
## 22226 3 5.76 3
## 18859 5 9.13 2
## 18433 4 5.98 1
## 5424 3 9.41 3
## 25908 2 7.08 4
## 6273 2 6.37 4
## 8746 5 8.59 3
## 14508 3 5.99 4
## 17991 4 6.61 1
## 19630 2 8.17 3
## 24610 2 9.88 4
## 24860 3 5.86 2
## 16323 1 9.24 5
## 21788 3 7.22 3
## 21275 2 8.35 4
## 8702 5 9.74 2
## 8180 3 8.00 2
## 14966 1 5.57 1
## 3176 2 7.13 3
## 7115 5 8.70 2
## 8064 1 7.28 4
## 24718 5 9.10 1
## 22474 3 9.87 4
## 3033 2 9.50 4
## 13582 4 9.56 1
## 2282 5 8.44 1
## 27067 3 5.65 2
## 17425 3 8.04 3
## 331 5 8.04 3
## 13288 2 9.89 4
## 14247 3 5.65 5
## 17592 2 5.08 3
## 13540 2 5.79 2
## 12571 5 5.66 3
## 19553 4 9.56 1
## 21338 2 6.89 5
## 4714 3 7.37 5
## 25114 1 7.68 4
## 24761 4 7.83 5
## 25338 3 7.10 1
## 15599 4 7.90 2
## 19449 3 8.74 2
## 14707 2 6.37 4
## 25311 1 5.66 1
## 19569 3 7.85 3
## 3770 4 5.42 1
## 11395 3 7.02 3
## 12989 1 8.44 3
## 8207 5 7.74 1
## 9063 2 8.65 2
## 24498 2 8.49 4
## 20615 1 5.64 4
## 20686 5 6.99 1
## 24184 3 7.09 3
## 6677 2 5.64 5
## 26530 1 8.58 2
## 5435 1 8.28 5
## 22263 1 6.03 4
## 11378 3 6.78 1
## 8952 2 8.70 5
## 23590 1 8.04 3
## 4851 5 9.29 3
## 2313 2 6.02 1
## 25766 5 7.49 3
## 26952 2 5.27 1
## 3281 4 9.74 2
## 18264 3 6.25 4
## 24786 2 7.25 5
## 16071 3 5.60 5
## 5747 2 5.76 2
## 25684 5 6.27 4
## 11976 4 5.83 4
## 8765 1 7.49 3
## 16896 4 9.79 1
## 3493 1 8.04 2
## 9713 2 8.97 2
## 13529 5 7.48 2
## 9234 3 9.02 4
## 589 3 5.66 3
## 12234 3 7.48 2
## 11888 3 6.99 2
## 26827 4 7.25 5
## 2447 4 5.56 4
## 27173 4 6.83 5
## 6403 3 9.96 5
## 24969 4 6.00 4
## 12990 1 8.64 4
## 14764 5 7.90 2
## 722 3 6.17 1
## 26285 2 5.79 3
## 16679 1 5.74 5
## 8238 3 9.93 4
## 10231 1 5.87 5
## 25041 4 5.83 3
## 4303 3 9.39 1
## 12522 2 6.89 4
## 8362 4 7.38 2
## 19121 2 9.60 3
## 8673 1 6.79 3
## 27534 5 8.46 2
## 4619 1 5.32 1
## 23872 2 9.67 1
## 25294 4 8.91 1
## 11202 2 7.82 3
## 1391 5 5.74 3
## 6244 4 6.21 1
## 18130 1 6.83 2
## 26213 5 5.46 1
## 9566 1 7.28 3
## 27711 5 6.37 3
## 9209 4 7.25 4
## 26869 2 9.44 2
## 26265 5 8.29 4
## 12619 4 5.86 1
## 2118 1 6.21 2
## 1451 1 7.82 1
## 10519 5 8.64 2
## 1284 5 6.51 3
## 14730 4 6.83 3
## 18477 3 5.16 5
## 242 1 8.95 3
## 10429 5 6.27 3
## 7566 5 7.75 1
## 16006 3 8.46 1
## 7662 2 9.67 3
## 5271 5 8.28 4
## 1844 5 8.52 2
## 2724 5 8.04 3
## 15825 3 8.70 4
## 9500 3 5.61 2
## 24803 5 5.60 4
## 3073 3 6.88 4
## 3157 3 7.37 3
## 14858 2 9.63 2
## 747 1 6.99 2
## 14335 4 8.54 3
## 3669 5 9.46 1
## 15416 4 6.99 4
## 26449 4 5.74 5
## 938 1 8.38 5
## 23753 3 7.47 2
## 5541 2 5.84 3
## 6937 2 8.90 2
## 17307 2 8.04 1
## 11490 1 9.24 3
## 236 2 5.42 5
## 18836 3 9.21 2
## 20146 1 9.89 5
## 4790 3 9.72 1
## 4394 1 7.53 4
## 2571 2 9.69 1
## 9030 5 5.16 5
## 18136 5 6.21 1
## 23100 5 8.09 5
## 20531 4 8.28 1
## 11254 4 8.58 2
## 1388 1 5.30 2
## 17366 4 8.04 1
## 18953 4 6.78 1
## 11117 1 8.17 1
## 2421 5 5.88 5
## 3978 1 7.49 3
## 11596 5 9.63 2
## 19577 1 8.16 1
## 13663 1 5.37 2
## 20930 1 9.93 1
## 23266 4 7.94 1
## 4005 3 7.51 5
## 11942 5 9.56 5
## 22207 5 7.45 1
## 20567 2 9.04 1
## 24323 3 8.61 4
## 1257 4 5.74 2
## 21313 5 8.74 4
## 26353 5 9.69 4
## 11288 5 9.60 5
## 7784 1 7.64 1
## 4908 4 8.81 4
## 16754 5 6.53 5
## 8593 3 8.04 4
## 19325 2 7.13 3
## 10790 5 5.12 4
## 12654 3 7.22 3
## 27479 3 7.50 4
## 21603 5 6.63 1
## 20076 5 6.92 1
## 18330 3 8.52 4
## 8257 1 7.04 2
## 24355 5 9.36 2
## 25103 1 7.02 2
## 25630 1 8.74 3
## 4610 5 9.72 3
## 13614 5 7.88 2
## 12662 4 8.69 4
## 6305 4 5.56 4
## 2420 1 5.76 4
## 26332 3 7.51 1
## 757 2 7.09 3
## 4453 5 5.67 1
## 22536 2 5.51 3
## 16043 5 7.99 3
## 2734 5 5.87 4
## 7720 4 7.35 2
## 24618 3 5.75 2
## 27583 4 5.87 2
## 26970 5 6.56 2
## 17223 4 8.58 1
## 16936 3 5.74 3
## 5273 1 6.59 5
## 13992 4 9.74 1
## 8760 2 7.77 1
## 19185 5 9.16 1
## 8229 3 5.61 3
## 7758 4 6.27 3
## 23518 5 5.57 1
## 9142 1 6.83 3
## 24070 3 9.89 5
## 10308 3 7.94 1
## 26585 5 6.16 4
## 17949 2 5.16 5
## 6047 3 5.08 2
## 1065 2 9.74 1
## 21893 4 9.96 1
## 15869 5 6.36 3
## 19171 1 7.88 1
## 910 4 7.38 3
## 4748 1 7.22 5
## 22658 4 9.50 4
## 16821 3 7.94 2
## 27666 5 5.09 4
## 454 5 6.04 2
## 14332 3 9.96 1
## 3737 4 8.52 1
## 4596 1 8.59 1
## 22833 3 9.91 4
## 20455 1 5.83 3
## 15586 5 8.23 3
## 25502 1 7.24 4
## 7833 1 7.10 2
## 8104 4 6.78 2
## 19849 5 6.27 4
## 10107 1 8.83 2
## 11772 2 9.89 4
## 26982 2 5.74 2
## 10710 3 7.06 5
## 1779 2 7.30 4
## 20735 2 5.32 4
## 4922 3 9.93 5
## 26333 1 5.57 2
## 4645 3 5.99 2
## 12538 5 5.74 3
## 18176 2 6.29 2
## 13327 2 6.42 2
## 26520 4 5.64 2
## 6970 5 8.04 3
## 5013 5 5.55 3
## 3903 4 7.50 5
## 11983 2 8.37 2
## 19436 2 9.97 2
## 24694 5 6.75 2
## 13980 3 6.95 3
## 8209 5 8.83 4
## 1992 5 9.84 2
## 19317 1 8.96 1
## 15509 5 9.67 3
## 25416 2 9.72 2
## 8262 2 5.74 3
## 17675 2 8.27 1
## 25112 5 8.54 2
## 16441 4 5.56 1
## 6406 2 8.95 5
## 20711 3 9.84 5
## 23531 5 6.23 3
## 7685 1 9.49 1
## 9012 3 8.14 1
## 3165 1 7.24 4
## 3872 2 5.30 3
## 487 3 8.46 5
## 22864 2 7.51 3
## 4116 5 7.53 1
## 20992 4 8.04 4
## 2582 5 9.72 5
## 1458 4 8.96 1
## 3549 3 5.75 4
## 14428 1 8.24 2
## 15464 1 6.08 5
## 20470 4 7.88 1
## 27313 5 6.78 3
## 9951 5 8.89 3
## 12779 3 8.54 4
## 10942 5 9.60 3
## 21998 4 8.04 4
## 7286 2 8.95 3
## 27255 4 7.25 2
## 19591 5 8.89 2
## 19620 4 5.67 2
## 24134 5 9.40 1
## 2586 3 9.71 2
## 22308 4 7.74 3
## 20320 3 8.04 4
## 8491 1 5.88 5
## 24547 1 5.60 1
## 3057 5 6.82 1
## 26829 4 6.38 3
## 11184 5 8.55 1
## 2803 5 5.77 2
## 9368 1 5.11 3
## 23676 2 8.21 3
## 2914 1 5.69 5
## 8891 4 5.16 4
## 5633 3 7.60 5
## 22761 2 7.48 2
## 24251 4 7.71 5
## 8144 4 8.95 5
## 14920 4 9.91 3
## 12985 5 7.09 4
## 5818 1 8.91 3
## 22510 4 6.10 5
## 750 1 9.05 5
## 21089 2 7.52 1
## 13490 3 9.71 5
## 7465 5 6.16 5
## 12339 1 5.72 3
## 17914 5 9.89 2
## 21210 2 7.25 5
## 9471 2 9.59 5
## 1830 4 8.46 2
## 1879 3 9.56 5
## 18849 2 8.90 2
## 2334 1 5.37 1
## 26130 3 5.85 5
## 8591 4 5.81 4
## 3375 2 7.46 2
## 23896 4 8.98 4
## 12825 1 7.51 2
## 25763 4 9.91 4
## 16028 4 6.75 4
## 25740 5 8.58 3
## 7881 5 8.04 3
## 4230 5 7.25 5
## 2716 4 5.82 1
## 15768 4 9.11 4
## 11686 3 6.83 1
## 2990 3 5.09 2
## 8948 2 6.69 2
## 6580 3 6.16 3
## 26910 1 8.09 4
## 23899 5 7.50 3
## 14756 4 8.50 1
## 13296 4 9.93 1
## 1628 5 6.82 2
## 2196 1 9.79 4
## 12879 4 9.39 5
## 2968 3 5.42 4
## 2154 1 9.71 5
## 18200 5 6.88 1
## 1715 3 5.88 2
## 27288 1 5.56 2
## 324 1 6.53 3
## 2131 3 8.74 2
## 5697 2 9.95 4
## 4198 3 9.33 4
## 3885 3 8.24 4
## 11331 1 7.80 3
## 8352 2 8.21 4
## 4778 4 7.25 1
## 9284 5 6.37 4
## 20345 4 8.74 4
## 25726 1 9.29 3
## 17945 2 7.09 4
## 24518 2 7.49 4
## 7760 4 7.80 2
## 23488 5 9.54 1
## 16058 1 6.37 3
## 4169 3 9.91 4
## 7095 3 9.33 3
## 20922 2 5.55 5
## 19237 2 5.82 5
## 3746 2 9.39 3
## 26773 3 6.76 2
## 14542 4 7.28 4
## 27148 5 8.21 1
## 2342 5 8.17 2
## 22880 3 9.88 1
## 21879 5 5.82 5
## 19057 4 5.85 4
## 2060 5 5.74 2
## 18294 2 6.53 4
## 3828 1 7.83 3
## 1465 3 5.64 1
## 27542 1 9.21 4
## 13498 2 9.89 3
## 374 1 5.72 2
## 6306 2 8.95 5
## 18639 1 6.41 3
## 3622 4 8.21 1
## 24812 4 8.04 2
## 1982 3 6.00 1
## 16471 3 9.85 1
## 13191 5 9.93 2
## 11536 1 5.48 4
## 15877 3 5.42 4
## 1554 2 9.95 2
## 21581 5 5.12 2
## 7131 1 8.97 1
## 23114 3 6.47 5
## 594 2 5.26 1
## 19996 1 6.41 4
## 69 5 9.82 3
## 720 2 8.79 4
## 21808 5 8.96 2
## 10540 1 5.11 3
## 1401 2 8.09 4
## 21782 3 5.68 5
## 2700 2 6.16 3
## 15969 4 9.44 1
## 6765 5 9.96 4
## 23843 3 9.96 2
## 10349 5 6.79 4
## 4735 1 5.76 4
## 12276 5 6.00 2
## 23162 2 7.38 2
## 24111 2 6.25 4
## 5842 2 7.10 1
## 855 5 6.74 2
## 8070 4 6.02 2
## 27584 1 7.11 4
## 15699 4 7.68 4
## 14779 3 8.58 2
## 18775 1 5.88 3
## 26392 5 7.11 3
## 26427 2 9.95 5
## 4177 4 9.88 3
## 12530 1 8.46 1
## 21811 4 6.78 3
## 6221 1 7.94 3
## 11219 5 7.46 3
## 983 3 5.08 5
## 7420 1 8.53 4
## 22831 3 5.77 2
## 26393 1 8.75 3
## 10733 3 6.64 3
## 11963 3 6.89 5
## 22211 2 8.21 3
## 19579 5 6.29 4
## 201 2 6.51 4
## 16699 4 5.98 4
## 10972 4 9.95 5
## 3431 5 6.02 2
## 25109 2 8.93 4
## 20096 3 9.60 1
## 3141 5 8.81 5
## 19984 3 9.24 3
## 26422 5 7.03 2
## 1810 1 7.10 3
## 22910 4 5.74 4
## 2035 3 9.26 1
## 9990 5 5.51 1
## 6350 5 6.75 1
## 20518 2 8.81 5
## 21591 1 6.16 4
## 7063 4 7.08 1
## 9059 4 5.86 2
## 24356 5 5.82 4
## 5056 5 8.73 5
## 19637 2 5.85 3
## 1849 4 7.39 4
## 16823 3 6.37 5
## 16850 4 8.17 1
## 21658 3 7.70 3
## 1556 3 9.84 3
## 9047 5 7.77 3
## 5367 3 7.32 3
## 6581 4 6.63 3
## 22426 2 8.74 2
## 26435 4 7.10 5
## 17891 1 9.88 2
## 17421 1 6.27 4
## 21615 5 7.04 2
## 10081 4 9.84 3
## 19593 5 8.59 1
## 12211 1 9.56 3
## 16715 1 6.83 5
## 15478 3 9.56 1
## 16524 2 9.56 1
## 21835 2 7.43 1
## 3775 5 8.07 2
## 11442 4 7.68 2
## 2727 1 7.74 4
## 9416 4 6.50 4
## 19665 1 5.25 1
## 27420 1 7.94 5
## 11757 2 7.77 4
## 14274 5 9.89 4
## 27256 5 9.39 1
## 14970 1 7.92 2
## 4664 5 9.21 2
## 24915 4 7.92 4
## 6208 5 7.14 2
## 23069 3 5.25 4
## 16668 2 7.80 4
## 14047 4 8.59 5
## 14334 3 5.79 1
## 12872 2 9.41 4
## 11382 3 7.14 2
## 11843 4 9.24 2
## 15204 5 9.91 4
## 21433 5 6.39 2
## 23138 4 9.72 4
## 18969 2 7.92 4
## 23935 1 7.77 4
## 18585 4 6.02 4
## 17103 4 7.03 5
## 1766 3 8.04 4
## 10253 3 5.27 1
## 16193 1 7.10 1
## 8602 1 7.07 5
## 3576 2 6.04 4
## 1790 5 7.22 2
## 5756 5 6.04 4
## 17739 1 9.31 4
## 84 5 6.37 1
## 13549 4 7.94 1
## 19499 4 8.91 4
## 8809 5 6.27 5
## 6500 1 7.09 4
## 23586 1 8.42 5
## 11681 2 6.17 5
## 24027 2 8.49 4
## 19749 2 7.91 5
## 5161 3 5.74 3
## 8819 4 8.46 1
## 25896 4 6.25 4
## 14009 5 6.16 1
## 24569 1 5.98 3
## 27032 2 5.68 1
## 4380 1 5.11 4
## 14426 2 7.46 3
## 17847 4 8.75 5
## 21434 1 6.79 2
## 25285 1 8.97 3
## 21708 5 6.25 3
## 6464 5 9.66 1
## 5324 5 5.51 2
## 16812 2 9.88 2
## 1115 5 7.13 3
## 18018 2 8.90 5
## 25980 1 7.25 3
## 1400 2 6.27 2
## 17447 2 9.84 5
## 17503 4 6.52 4
## 22204 4 9.10 3
## 6867 1 9.24 5
## 14447 1 6.83 5
## 23585 3 6.38 4
## 5472 4 7.32 4
## 27580 4 8.81 4
## 4284 3 9.71 1
## 16046 4 8.24 3
## 586 2 8.70 4
## 980 4 9.05 5
## 17303 2 9.89 2
## 17577 2 8.24 3
## 12316 2 5.76 2
## 3787 3 5.08 4
## 23697 4 5.51 5
## 7325 4 8.04 5
## 20760 2 8.95 5
## 15811 4 6.76 1
## 27043 2 9.41 1
## 11789 3 8.44 2
## 11915 2 8.17 5
## 6906 5 9.05 2
## 18942 2 6.51 4
## 14700 5 8.58 1
## 2977 4 7.10 5
## 7135 1 9.19 2
## 6329 5 9.39 1
## 12938 5 6.38 5
## 73 4 6.75 4
## 21311 3 9.67 3
## 6036 1 8.09 4
## 25013 5 5.32 1
## 18157 5 6.27 2
## 3748 2 7.85 4
## 25276 5 7.25 2
## 9701 2 8.83 1
## 20830 5 8.04 5
## 11848 4 7.77 2
## 18550 3 9.44 4
## 15840 5 7.50 2
## 23647 1 7.61 5
## 4536 2 5.76 1
## 23683 5 6.21 3
## 12468 5 7.77 1
## 24419 5 6.02 4
## 7385 4 7.70 1
## 12733 3 5.52 5
## 15100 3 7.09 3
## 17736 4 9.97 4
## 13781 1 6.70 3
## 5412 4 6.41 2
## 5531 5 6.27 4
## 20070 1 8.46 4
## 25657 3 8.09 4
## 13881 3 6.47 1
## 1379 1 7.10 1
## 929 3 5.82 1
## 1759 5 5.86 2
## 25318 4 8.04 2
## 101 5 9.59 2
## 4354 3 0.00 0
## 7601 4 8.50 3
## 3293 5 8.09 2
## 10021 4 7.48 1
## 21199 1 5.09 2
## 10396 4 5.70 3
## 13900 4 6.83 5
## 24447 5 5.11 5
## 11394 2 5.59 3
## 10276 4 5.45 2
## 26746 3 9.46 3
## 17232 5 5.79 4
## 22950 3 7.13 4
## 7423 5 8.43 2
## 19256 3 7.10 2
## 8666 4 5.37 3
## 15458 5 9.72 2
## 3533 3 8.70 5
## 25783 2 9.31 1
## 22422 2 8.29 1
## 26131 4 5.64 2
## 18107 5 6.51 4
## 19403 2 5.79 5
## 11896 3 7.77 1
## 17888 4 8.81 4
## 24342 3 5.84 4
## 20546 4 5.87 4
## 20183 3 8.04 3
## 23165 5 7.00 2
## 11518 2 7.88 5
## 17646 3 9.56 2
## 7961 3 9.19 4
## 21197 4 9.17 2
## 8448 2 5.87 3
## 15874 2 7.37 2
## 6085 2 9.84 3
## 23698 5 9.24 2
## 7105 1 8.50 3
## 6762 2 7.82 1
## 25017 5 8.58 4
## 8564 4 6.29 2
## 24023 1 7.51 2
## 4511 3 8.93 4
## 16183 5 9.46 4
## 26947 1 6.25 3
## 9280 5 5.68 1
## 15940 5 7.83 5
## 1459 1 9.97 4
## 14945 3 8.47 4
## 15514 2 9.43 4
## 3693 5 9.59 1
## 10675 5 9.67 2
## 7581 2 8.70 1
## 9415 3 9.88 5
## 8340 4 8.52 4
## 16766 3 5.74 1
## 15467 4 5.77 1
## 23197 3 9.46 2
## 20163 4 9.72 3
## 17770 5 8.53 2
## 14985 3 6.36 4
## 22190 1 7.47 2
## 16830 3 8.50 3
## 21943 4 6.16 3
## 21679 2 5.32 2
## 353 5 5.64 3
## 17829 1 9.31 4
## 11788 3 8.04 2
## 1133 2 7.25 1
## 26639 3 9.96 1
## 4136 4 9.96 1
## 2456 4 7.77 2
## 795 4 6.75 3
## 5026 4 7.25 2
## 15913 4 5.82 1
## 12377 2 8.07 3
## 26758 3 9.24 4
## 25706 3 6.81 2
## 10302 5 8.91 3
## 7474 4 5.81 2
## 15012 4 9.21 4
## 21030 5 8.95 5
## 9458 3 5.11 4
## 3537 5 8.44 2
## 1679 3 5.85 4
## 24075 4 9.19 2
## 13015 5 8.91 3
## 4549 4 5.79 4
## 18640 4 6.61 5
## 746 4 9.19 3
## 7497 2 9.96 3
## 312 2 9.44 3
## 26841 3 8.03 2
## 7586 1 9.56 4
## 26421 4 9.96 5
## 6623 5 7.88 4
## 4291 5 8.50 1
## 16500 3 9.87 3
## 27523 5 6.63 3
## 14911 3 5.37 2
## 11293 5 8.73 1
## 19411 5 5.74 1
## 3028 5 6.76 1
## 15419 1 9.74 1
## 17826 3 9.11 2
## 20635 2 5.16 2
## 21868 1 9.02 2
## 25693 5 6.21 1
## 20262 5 7.92 1
## 13040 5 6.10 5
## 12693 3 8.09 2
## 11093 4 7.87 3
## 11181 3 8.14 4
## 8402 4 5.74 4
## 15365 5 7.10 5
## 17607 5 5.85 5
## 10911 2 8.74 4
## 18397 3 9.21 5
## 22141 1 6.10 4
## 9939 4 9.11 5
## 10881 3 7.37 1
## 20876 2 6.27 1
## 11390 3 6.53 2
## 24655 4 8.91 1
## 25237 4 9.26 3
## 4659 3 9.50 4
## 27359 1 5.83 4
## 27316 2 6.41 3
## 9570 5 7.53 3
## 3821 2 6.37 5
## 16425 2 5.42 1
## 12363 4 8.96 4
## 7130 3 5.68 2
## 15998 4 9.96 4
## 7548 2 7.77 1
## 18255 3 5.41 3
## 18262 1 5.74 3
## 16704 2 6.51 4
## 7878 3 9.41 4
## 2951 4 7.09 5
## 11384 5 7.94 4
## 24580 4 7.91 2
## 9651 2 8.54 4
## 4541 1 6.08 2
## 6714 2 9.96 3
## 12784 5 9.41 3
## 4209 3 7.21 3
## 9683 3 7.09 1
## 27177 5 9.60 3
## 21630 4 8.95 3
## 12450 4 9.24 1
## 1275 3 7.52 1
## 9292 1 6.03 1
## 16622 4 9.89 3
## 716 3 6.88 2
## 11674 2 9.63 3
## 7456 1 9.33 5
## 2407 5 7.35 3
## 2979 3 9.41 2
## 1373 5 7.92 4
## 9888 5 7.77 4
## 3696 1 8.59 3
## 16703 4 9.21 2
## 10585 5 8.17 3
## 17443 2 9.91 5
## 9369 2 7.52 2
## 5642 1 9.71 2
## 13598 5 8.95 2
## 5641 5 5.97 3
## 3221 5 7.11 2
## 24865 1 7.64 2
## 25461 2 9.93 3
## 21350 3 8.95 4
## 16169 3 7.34 2
## 18364 4 5.99 3
## 10938 1 9.96 1
## 12584 4 6.27 1
## 8501 1 9.67 3
## 5761 2 8.04 1
## 22571 2 8.95 4
## 16873 4 5.86 5
## 5799 2 7.00 3
## 20019 3 9.72 3
## 897 2 6.21 4
## 21211 5 7.06 3
## 11146 5 7.25 5
## 14353 4 6.42 1
## 527 4 9.98 2
## 18164 3 5.88 2
## 19128 2 5.70 1
## 7807 4 8.64 4
## 12703 2 6.28 5
## 350 2 8.96 2
## 14683 5 5.74 3
## 1503 5 5.10 4
## 26112 4 5.32 5
## 11647 4 7.15 4
## 16639 4 5.86 4
## 24615 5 5.42 4
## 19676 3 5.59 1
## 17791 3 6.99 1
## 939 2 8.65 2
## 12529 1 5.37 2
## 1223 1 7.64 5
## 14296 5 5.16 4
## 2449 5 9.44 2
## 25708 2 7.08 3
## 16269 3 8.95 4
## 12103 2 6.25 4
## 26764 2 8.64 4
## 18452 5 7.03 2
## 22733 4 6.78 5
## 1455 4 9.74 2
## 8053 4 5.41 3
## 8502 5 8.91 5
## 11798 3 6.23 4
## 8945 4 5.89 1
## 27517 5 6.39 1
## 23774 1 9.97 4
## 14495 1 5.03 5
## 21503 2 5.16 4
## 239 5 5.85 4
## 10333 3 9.24 4
## 17419 1 9.39 2
## 21109 5 5.81 4
## 16525 1 8.04 2
## 7711 5 5.74 4
## 8714 3 6.70 2
## 26629 1 8.28 5
## 9495 3 5.67 1
## 1302 1 7.08 5
## 16129 5 6.37 4
## 7200 3 6.27 3
## 24268 5 9.21 3
## 14594 1 8.69 3
## 26071 1 8.04 4
## 6973 2 8.50 5
## 22254 3 8.17 3
## 22673 3 8.95 4
## 26768 4 7.48 2
## 17413 4 7.24 1
## 18037 1 9.44 4
## 9900 5 8.24 2
## 6472 4 9.79 1
## 13866 5 7.02 3
## 27179 3 7.49 4
## 7606 4 7.88 4
## 8709 5 5.16 4
## 5288 4 9.74 2
## 10707 4 9.24 4
## 19267 2 7.77 2
## 24516 5 6.78 3
## 19617 2 5.26 1
## 20387 2 5.16 4
## 23940 5 7.92 1
## 6287 3 5.74 4
## 25121 5 7.08 3
## 18948 5 8.04 4
## 20026 3 9.39 4
## 20747 1 7.72 2
## 5698 4 8.25 4
## 10677 5 9.63 1
## 9472 4 5.12 2
## 14976 2 7.15 1
## 7209 4 5.59 1
## 5248 4 7.10 2
## 20522 4 8.69 3
## 5380 4 6.42 2
## 6450 4 10.00 3
## 3150 4 5.82 3
## 20877 2 9.63 1
## 27217 2 5.16 4
## 17784 3 8.70 1
## 22807 5 5.16 5
## 26399 5 7.52 1
## 3776 4 6.41 1
## 26979 1 9.85 2
## 17121 5 8.14 4
## 12331 1 9.93 5
## 4422 3 8.81 4
## 4308 2 9.54 4
## 3484 1 8.73 1
## 2637 1 6.79 1
## 16701 1 7.25 4
## 10837 4 7.85 1
## 14944 1 5.74 3
## 13525 5 7.51 5
## 5670 4 7.80 4
## 13578 3 8.46 5
## 21781 1 6.65 5
## 20275 3 7.52 2
## 12361 5 8.25 1
## 1243 1 8.73 3
## 12072 4 7.04 2
## 14715 2 8.17 2
## 12669 5 6.00 1
## 14339 1 9.43 3
## 23588 1 9.84 4
## 6322 4 5.76 2
## 24117 5 8.08 2
## 4730 2 9.71 3
## 5955 2 7.47 5
## 13142 5 8.58 5
## 4858 2 9.93 4
## 10712 5 6.78 1
## 1990 1 8.91 3
## 27441 2 5.65 3
## 20549 1 7.50 5
## 25926 1 6.00 4
## 12680 3 8.74 2
## 6045 3 9.43 2
## 9885 1 7.48 5
## 22479 3 5.30 4
## 4439 3 9.86 3
## 17058 5 6.99 4
## 25286 1 5.82 5
## 15660 5 8.50 5
## 1343 3 7.51 3
## 26281 4 5.88 1
## 8202 4 7.50 1
## 4239 5 8.61 3
## 21455 4 5.75 2
## 23373 3 6.47 2
## 2520 1 9.72 5
## 8557 4 6.70 5
## 21805 5 5.56 3
## 6749 4 5.76 2
## 11114 5 7.51 3
## 102 5 8.96 1
## 24024 3 5.87 3
## 2114 3 9.79 2
## 3629 3 9.69 4
## 2876 4 6.10 2
## 3264 1 5.08 2
## 5542 5 6.16 2
## 4112 3 9.44 4
## 3912 5 8.42 5
## 26095 3 8.79 5
## 5613 4 8.96 2
## 21326 2 8.54 2
## 4881 5 5.84 5
## 22015 1 7.70 3
## 26000 2 8.29 4
## 4516 2 5.99 3
## 13101 3 9.86 2
## 3588 5 9.39 3
## 24141 5 8.50 3
## 21193 3 5.03 3
## 11097 5 5.64 3
## 27040 2 7.83 4
## 16537 1 6.99 1
## 4986 4 9.56 3
## 12046 4 9.79 2
## 7034 3 7.52 2
## 11334 2 8.59 4
## 16004 5 8.50 5
## 13092 1 6.39 1
## 17743 3 9.24 4
## 3492 5 8.91 2
## 6473 5 8.04 3
## 10256 1 8.74 5
## 17895 4 8.79 4
## 16197 2 6.37 4
## 22425 3 6.83 2
## 21492 2 9.50 1
## 11284 4 9.44 4
## 17467 4 9.72 1
## 6034 4 6.10 5
## 25967 4 9.02 1
## 26752 4 9.21 3
## 8484 3 5.55 3
## 8918 5 8.91 5
## 20974 5 7.94 4
## 14991 4 5.37 4
## 18440 3 7.48 5
## 17834 3 7.06 2
## 14077 4 7.92 1
## 4676 5 8.88 3
## 25710 3 8.35 4
## 1848 3 8.13 4
## 11742 3 8.04 5
## 12629 3 9.93 2
## 26545 3 8.53 4
## 21906 5 6.37 4
## 19350 5 7.28 2
## 12503 3 8.59 2
## 26559 1 9.21 1
## 1071 4 6.27 5
## 7521 3 9.96 3
## 4191 3 7.88 3
## 20048 1 5.56 2
## 8713 5 8.91 4
## 5917 3 6.16 4
## 25788 5 7.83 1
## 15342 3 5.76 4
## 92 4 8.97 2
## 18154 5 7.24 1
## 7075 3 7.28 1
## 22781 4 7.22 3
## 13829 1 8.77 2
## 20035 2 5.64 3
## 952 5 8.13 1
## 16644 5 8.54 3
## 21768 5 7.02 1
## 24105 1 7.38 5
## 11479 4 7.10 4
## 24051 4 9.36 3
## 1823 3 6.63 1
## 22390 3 5.37 2
## 26576 4 7.52 5
## 7965 3 8.50 5
## 8173 1 8.03 2
## 3679 3 7.64 1
## 11824 5 6.03 3
## 13219 3 5.66 3
## 16714 2 7.72 5
## 19570 2 9.44 3
## 24577 2 6.16 4
## 25394 2 9.95 4
## 8956 4 7.10 2
## 23570 4 9.11 4
## 2092 3 9.21 4
## 21419 1 5.74 3
## 4256 1 9.95 5
## 25907 3 9.91 1
## 12282 1 8.77 2
## 25183 5 5.56 4
## 15343 2 9.56 4
## 10380 4 6.16 4
## 10467 5 8.91 4
## 10189 4 7.87 4
## 9994 3 6.41 3
## 1774 3 7.14 5
## 13261 1 9.44 3
## 7874 5 5.64 4
## 5038 5 9.93 3
## 9421 2 8.58 3
## 23972 1 7.77 3
## 3497 5 7.88 5
## 7580 5 5.64 2
## 14807 5 9.89 4
## 11031 5 8.95 3
## 3966 2 9.01 3
## 13313 5 5.12 4
## 14685 2 8.04 4
## 17334 1 5.57 4
## 24914 5 6.37 1
## 13927 4 7.51 1
## 16076 3 9.97 3
## 16908 5 9.92 2
## 25 5 7.10 3
## 5498 3 7.88 4
## 18153 3 8.08 2
## 19266 5 9.24 3
## 27052 3 8.90 5
## 9782 2 9.39 2
## 22564 3 8.24 1
## 4530 3 5.74 4
## 26852 3 5.70 2
## 13798 5 9.95 2
## 3350 2 8.04 4
## 22023 1 6.37 4
## 25840 2 5.87 4
## 14961 5 8.71 4
## 4720 2 5.74 4
## 12533 3 9.44 2
## 122 2 6.03 4
## 21006 4 5.76 2
## 8992 5 7.28 4
## 26862 5 5.76 4
## 12274 4 7.80 3
## 18215 1 7.52 5
## 9620 4 5.12 1
## 17925 2 7.14 4
## 17090 1 9.10 1
## 23342 4 5.14 2
## 17124 5 7.04 1
## 23332 5 8.04 4
## 15408 2 7.83 2
## 23262 5 9.34 4
## 15372 3 5.77 1
## 27289 3 7.10 4
## 10624 1 7.25 2
## 17468 5 9.44 5
## 17450 1 9.72 3
## 5629 4 8.44 1
## 15019 5 7.52 3
## 21822 4 8.71 3
## 13114 5 5.57 4
## 25550 3 7.85 4
## 21936 5 8.24 4
## 15380 5 8.11 4
## 9637 5 9.19 4
## 22508 2 8.58 4
## 10474 2 5.32 5
## 23880 4 8.04 4
## 18055 1 10.00 4
## 8186 2 5.74 1
## 4304 5 9.98 3
## 11365 4 6.99 2
## 112 3 5.37 4
## 19752 1 6.28 5
## 13006 2 8.24 1
## 10939 5 5.56 5
## 18886 1 8.35 4
## 25127 4 6.75 3
## 1730 2 8.03 3
## 25503 1 6.95 5
## 8640 1 5.27 1
## 27471 5 8.08 2
## 12218 2 5.27 4
## 19238 5 7.72 2
## 15435 2 6.50 4
## 22964 3 9.54 5
## 5080 3 5.79 4
## 18631 4 5.37 2
## 7202 1 5.42 3
## 14562 4 9.91 4
## 3086 2 7.47 3
## 3993 2 9.59 5
## 2205 3 8.95 3
## 6446 5 9.87 5
## 7919 4 8.04 4
## 632 1 6.37 1
## 16880 5 8.90 5
## 18212 5 5.24 4
## 10634 4 9.88 1
## 20460 2 7.24 1
## 9916 1 7.52 5
## 12504 1 9.39 4
## 13061 4 7.50 4
## 19668 2 5.84 4
## 17703 4 5.64 2
## 10455 1 8.58 5
## 9191 2 5.64 4
## 11039 5 7.64 4
## 9993 4 5.27 1
## 5107 1 7.50 4
## 7453 4 8.54 3
## 9887 3 5.41 5
## 2373 4 8.62 2
## 4688 2 8.29 2
## 6792 4 9.72 4
## 22409 3 9.87 3
## 1813 1 7.77 2
## 16117 3 6.89 1
## 19594 4 5.67 3
## 22724 1 7.09 4
## 12950 1 8.09 5
## 4793 5 5.82 5
## 6142 2 8.65 5
## 13067 4 6.00 2
## 26930 5 5.70 4
## 8873 5 5.47 5
## 15792 2 8.79 2
## 26373 3 7.83 1
## 10534 5 9.04 4
## 6796 2 5.64 4
## 18394 1 9.71 3
## 284 2 9.88 1
## 14792 3 9.84 4
## 16292 2 7.09 3
## 1869 1 9.54 4
## 16101 4 7.14 3
## 7940 4 7.77 5
## 22495 1 8.04 2
## 15391 4 7.77 1
## 17319 2 7.94 3
## 13669 3 10.00 4
## 14748 1 8.04 4
## 10166 4 8.95 3
## 5877 1 5.57 2
## 10717 4 6.75 4
## 8148 2 9.37 2
## 127 1 5.14 3
## 19564 3 8.73 5
## 15223 3 7.09 2
## 22569 5 9.39 1
## 10944 5 5.64 2
## 309 4 9.93 2
## 13887 2 9.44 2
## 12467 5 9.24 5
## 17161 5 9.43 2
## 9558 2 9.17 1
## 11495 2 9.63 1
## 24236 5 8.91 4
## 21356 3 9.72 5
## 2119 5 5.48 4
## 21463 2 5.08 4
## 19964 4 6.56 1
## 26476 5 9.91 3
## 24765 2 7.08 4
## 9027 3 8.91 5
## 1082 2 5.46 2
## 19907 5 9.60 3
## 2698 2 7.90 3
## 13997 5 9.54 2
## 13700 2 9.88 1
## 25973 2 8.96 3
## 18060 5 5.35 4
## 8842 1 8.89 2
## 9383 3 9.71 4
## 6848 5 7.10 4
## 19882 4 8.95 4
## 14113 5 8.49 1
## 20983 2 9.63 1
## 4368 2 8.54 2
## 6664 2 5.75 1
## 13170 1 9.50 1
## 20945 1 7.25 2
## 10258 1 5.11 1
## 9033 2 5.55 4
## 1378 4 6.16 2
## 27346 3 6.41 3
## 6351 2 8.52 1
## 5522 3 6.83 3
## 12836 2 9.96 5
## 10828 4 6.08 4
## 25472 3 5.86 5
## 20604 1 5.16 1
## 17687 5 8.53 2
## 26136 2 9.63 3
## 16150 1 5.64 3
## 4006 4 6.23 5
## 14160 1 6.29 1
## 12941 3 7.09 1
## 3785 3 5.42 1
## 22671 1 9.97 3
## 8005 4 5.88 2
## 26548 2 9.47 3
## 387 3 6.99 5
## 26680 4 5.57 4
## 12465 3 7.09 2
## 21678 5 9.60 4
## 6153 2 6.27 2
## 25601 4 9.04 1
## 1909 5 9.36 2
## 21387 5 5.48 3
## 18704 2 8.16 2
## 18258 4 9.72 1
## 9505 5 6.99 5
## 14898 5 5.58 5
## 6708 1 7.47 5
## 26949 2 7.91 2
## 9543 3 8.04 2
## 8363 5 7.92 3
## 5444 3 8.53 1
## 23742 2 7.25 5
## 16915 5 7.90 4
## 14725 4 7.68 1
## 10359 4 5.59 2
## 20704 2 5.77 4
## 19447 1 7.82 2
## 11773 2 5.27 5
## 1272 1 8.97 2
## 14820 4 8.95 4
## 21467 4 5.25 5
## 10578 3 6.73 1
## 23311 2 8.04 1
## 5573 5 7.75 5
## 12848 5 7.64 1
## 16993 1 5.16 1
## 24307 5 7.10 4
## 7823 5 8.58 1
## 21018 3 5.82 2
## 4734 5 5.56 4
## 15379 4 8.25 1
## 4855 5 8.04 1
## 16661 3 7.53 2
## 6746 3 8.91 4
## 26662 3 5.56 1
## 7424 3 5.57 1
## 23113 4 5.64 1
## 3901 1 6.19 5
## 8325 1 9.86 3
## 22225 5 8.24 2
## 18961 1 8.13 3
## 10728 3 8.04 3
## 15292 4 6.52 3
## 13185 2 6.25 2
## 5575 5 5.25 3
## 5114 4 7.30 5
## 4431 4 9.89 5
## 10975 5 7.25 3
## 11042 3 7.83 1
## 26802 3 7.04 2
## 2526 1 9.63 1
## 7400 4 5.57 4
## 26496 2 9.67 2
## 1511 5 8.24 3
## 18654 5 9.84 2
## 20536 3 9.41 4
## 14364 3 7.88 3
## 1940 5 7.88 2
## 12092 4 9.84 2
## 11259 5 6.99 2
## 4045 5 5.81 4
## 8461 5 5.32 1
## 4722 2 6.78 2
## 12076 4 6.47 4
## 2216 3 9.41 5
## 26027 5 8.69 4
## 19997 2 9.96 2
## 13996 2 6.78 4
## 25914 3 7.49 3
## 18766 1 8.70 2
## 1438 2 7.50 4
## 9722 5 8.98 5
## 4918 2 5.85 1
## 6112 5 8.98 1
## 27374 5 7.00 5
## 14614 5 6.00 1
## 16553 3 8.90 1
## 5180 4 6.16 4
## 27397 5 8.95 4
## 23385 2 8.24 1
## 13928 1 8.70 2
## 11484 5 9.54 2
## 21614 4 9.89 5
## 18032 1 6.83 3
## 4862 1 5.70 3
## 2147 2 7.10 4
## 27307 3 5.90 2
## 14932 4 8.04 3
## 11955 5 6.78 5
## 27812 4 5.38 4
## 12444 2 5.74 3
## 27328 4 7.47 5
## 22713 3 5.26 3
## 23380 2 5.37 5
## 15253 5 5.12 4
## 11544 3 7.91 2
## 16377 1 8.79 4
## 4327 5 7.88 1
## 6567 5 8.04 2
## 12862 2 9.96 5
## 4740 4 8.56 1
## 850 4 8.50 2
## 27314 3 9.92 3
## 19974 1 7.53 1
## 10421 5 9.59 4
## 20862 2 5.84 4
## 1098 3 7.53 1
## 17418 4 5.58 2
## 8906 1 5.83 4
## 25415 4 8.73 4
## 16345 3 8.04 4
## 1780 5 8.70 3
## 23066 5 5.74 2
## 13886 1 9.78 3
## 20619 5 7.51 1
## 18537 4 7.92 5
## 19308 3 6.36 3
## 16608 3 7.94 2
## 12176 1 8.25 3
## 366 2 8.90 3
## 12435 1 8.08 2
## 4691 1 6.51 3
## 11375 4 9.66 3
## 25389 1 9.21 3
## 791 4 9.41 3
## 2419 5 9.88 2
## 7020 4 9.79 1
## 20779 1 5.37 3
## 11372 3 8.24 4
## 10268 3 7.15 3
## 8728 1 9.96 3
## 18945 4 8.73 3
## 9519 3 6.95 4
## 16344 2 5.57 2
## 4010 5 9.41 4
## 2191 4 8.64 5
## 25668 5 8.17 1
## 12345 4 8.55 1
## 17362 5 6.52 3
## 13162 1 5.64 1
## 11507 1 7.04 4
## 4069 4 9.19 1
## 26414 4 9.63 2
## 21771 4 8.74 2
## 15629 3 9.21 4
## 24502 3 8.39 4
## 1289 5 5.27 1
## 1936 2 5.56 4
## 11190 1 7.25 4
## 21300 1 7.09 4
## 17869 3 9.86 4
## 17506 4 8.95 1
## 18716 5 6.37 4
## 18349 5 9.93 4
## 5211 5 8.95 1
## 19540 4 5.39 3
## 7433 3 5.72 3
## 12490 3 7.90 1
## 17797 4 8.21 4
## 7214 3 9.88 2
## 8302 5 7.94 4
## 8675 2 6.79 1
## 24072 4 8.17 2
## 11174 2 6.56 4
## 22760 3 8.73 2
## 14938 4 7.80 2
## 8738 5 7.80 3
## 957 4 7.80 4
## 11985 1 5.08 2
## 8315 4 5.58 5
## 9703 5 9.96 1
## 19209 5 5.81 5
## 20323 5 8.04 4
## 18071 3 5.99 4
## 27690 3 8.77 3
## 3735 4 9.39 2
## 497 3 9.19 2
## 17373 2 7.10 4
## 11533 4 7.04 2
## 22078 5 9.41 5
## 25974 4 5.32 1
## 20382 1 8.95 1
## 8691 4 8.28 4
## 6291 3 6.06 5
## 20824 2 5.57 3
## 17942 3 9.72 5
## 8434 5 7.77 4
## 6999 1 9.88 5
## 23605 2 7.47 4
## 11709 5 5.74 3
## 2267 2 5.64 3
## 1370 3 7.47 3
## 18501 2 8.91 1
## 9976 2 9.11 2
## 9828 4 7.88 2
## 2783 4 7.88 4
## 11124 4 8.93 3
## 13884 2 6.70 1
## 22311 5 8.58 4
## 25685 4 7.22 2
## 19756 4 8.04 4
## 24837 5 6.37 1
## 463 1 9.54 4
## 5350 3 8.75 4
## 13793 2 9.93 1
## 11192 1 8.59 4
## 27568 2 6.33 3
## 3048 4 9.50 2
##
## $subset
## NULL
##
## $outlierMethod
## [1] "none"
##
## attr(,"class")
## [1] "mvn"
##
## Note: Results above show Mardia skewness and kurtosis statistics.
##
## Univariate Normality (Shapiro-Wilk on 2000-row sample):
# Try every known field name across MVN versions
uni_field <- NULL
for (nm in c("univariateNormality", "univariate", "Univariate",
"univariateTest", "UniNormality", "Descriptives")) {
if (!is.null(mvn_result[[nm]])) {
uni_field <- mvn_result[[nm]]
break
}
}
if (!is.null(uni_field)) {
print(uni_field)
} else {
# Last resort: run Shapiro-Wilk manually on each indicator
cat("(Running Shapiro-Wilk manually per indicator)\n\n")
sw_results <- lapply(numeric_indicators, function(v) {
st <- shapiro.test(df_sample[[v]])
data.frame(Variable = v,
Statistic = round(st$statistic, 4),
P.value = round(st$p.value, 4),
Normal = ifelse(st$p.value > 0.05, "Yes", "No"))
})
print(do.call(rbind, sw_results), row.names = FALSE)
}## (Running Shapiro-Wilk manually per indicator)
##
## Variable Statistic P.value Normal
## Academic.Pressure 0.8913 0 No
## Work.Study.Hours 0.9195 0 No
## Sleep.Duration.num 0.8471 0 No
## Dietary.Habits.num 0.7935 0 No
## Financial.Stress 0.8815 0 No
## CGPA 0.9462 0 No
## Study.Satisfaction 0.8985 0 No
The Mardia test for multivariate skewness and kurtosis is expected to reject the null hypothesis of multivariate normality given the large sample size and the ordinal nature of several indicators. This outcome motivates the use of the Robust Maximum Likelihood estimator (MLR) for CFA evaluation, which produces Satorra-Bentler scaled chi-square statistics that are robust to non-normality. For the full structural model with the binary Depression outcome, the analysis uses the Diagonally Weighted Least Squares (WLSMV) estimator, the gold standard for models containing binary or ordinal endogenous variables in lavaan.
df_numeric_scaled <- scale(df_sample[, numeric_indicators])
mah_dist <- mahalanobis(df_numeric_scaled,
colMeans(df_numeric_scaled),
cov(df_numeric_scaled))
chi_threshold <- qchisq(0.975, df = length(numeric_indicators))
outliers_idx <- which(mah_dist > chi_threshold)
cat("Mahalanobis Distance Outlier Detection:\n")## Mahalanobis Distance Outlier Detection:
cat("Chi-square threshold (df =", length(numeric_indicators), ", p = 0.025):", round(chi_threshold, 3), "\n")## Chi-square threshold (df = 7 , p = 0.025): 16.013
## Number of multivariate outliers detected: 1
## Percentage of sample: 0.05 %
# Plot Mahalanobis distances
mah_df <- data.frame(Index = seq_along(mah_dist), Distance = mah_dist,
Outlier = mah_dist > chi_threshold)
ggplot(mah_df, aes(x = Index, y = Distance, color = Outlier)) +
geom_point(size = 0.8, alpha = 0.6) +
geom_hline(yintercept = chi_threshold, linetype = "dashed", color = "#E74C3C", linewidth = 1) +
scale_color_manual(values = c("FALSE" = "#3498DB", "TRUE" = "#E74C3C")) +
labs(title = "Mahalanobis Distance Plot for Multivariate Outlier Detection",
subtitle = paste0("Red dashed line: chi-square threshold = ", round(chi_threshold, 2),
" | Outliers: ", length(outliers_idx)),
x = "Observation Index", y = "Mahalanobis Distance", color = "Outlier") +
theme_minimal(base_size = 12)# Remove detected outliers from the full dataset using the same threshold
mah_full <- mahalanobis(scale(df_model[, numeric_indicators]),
colMeans(scale(df_model[, numeric_indicators])),
cov(scale(df_model[, numeric_indicators])))
df_clean <- df_model[mah_full <= chi_threshold, ]
cat("Rows before outlier removal:", nrow(df_model), "\n")## Rows before outlier removal: 27767
## Rows after outlier removal: 27753
## Outliers removed: 14
lm_vif <- lm(Depression ~ Academic.Pressure + Work.Study.Hours +
Sleep.Duration.num + Dietary.Habits.num +
Financial.Stress + Family.History.num + Suicidal.Thoughts.num +
CGPA + Study.Satisfaction,
data = df_clean)
vif_vals <- vif(lm_vif)
vif_df <- data.frame(
Variable = names(vif_vals),
VIF = round(vif_vals, 4),
Status = ifelse(vif_vals < 3.3, "Safe (VIF below 3.3)",
ifelse(vif_vals < 5, "Moderate (3.3 to 5.0)", "High (above 5.0)"))
)
vif_df %>%
kable(caption = "Variance Inflation Factor (VIF) for All Model Indicators") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(vif_df$VIF > 3.3), background = "#FADBD8")| Variable | VIF | Status | |
|---|---|---|---|
| Academic.Pressure | Academic.Pressure | 1.1036 | Safe (VIF below 3.3) |
| Work.Study.Hours | Work.Study.Hours | 1.0224 | Safe (VIF below 3.3) |
| Sleep.Duration.num | Sleep.Duration.num | 1.0046 | Safe (VIF below 3.3) |
| Dietary.Habits.num | Dietary.Habits.num | 1.0205 | Safe (VIF below 3.3) |
| Financial.Stress | Financial.Stress | 1.0641 | Safe (VIF below 3.3) |
| Family.History.num | Family.History.num | 1.0016 | Safe (VIF below 3.3) |
| Suicidal.Thoughts.num | Suicidal.Thoughts.num | 1.1292 | Safe (VIF below 3.3) |
| CGPA | CGPA | 1.0034 | Safe (VIF below 3.3) |
| Study.Satisfaction | Study.Satisfaction | 1.0204 | Safe (VIF below 3.3) |
r_mat <- cor(df_clean[, c(numeric_indicators,
"Family.History.num", "Suicidal.Thoughts.num")],
use = "complete.obs")
kmo_result <- KMO(r_mat)
cat("Kaiser-Meyer-Olkin (KMO) Measure of Sampling Adequacy:\n\n")## Kaiser-Meyer-Olkin (KMO) Measure of Sampling Adequacy:
## Overall MSA: 0.6397
## MSA per indicator:
## Academic.Pressure Work.Study.Hours Sleep.Duration.num
## 0.6297 0.7009 0.6234
## Dietary.Habits.num Financial.Stress CGPA
## 0.6924 0.6631 0.4473
## Study.Satisfaction Family.History.num Suicidal.Thoughts.num
## 0.6609 0.6693 0.6167
All VIF values fall comfortably below the conservative threshold of 3.3, confirming that multicollinearity is not a concern among the model indicators. The indicators are sufficiently independent to enter the same latent construct or structural model without inflating standard errors. The KMO measure of sampling adequacy, which assesses whether the correlation structure among indicators is appropriate for factor analysis, is expected to exceed the minimum acceptable threshold of 0.50 for all indicators, confirming that the data are factorizable and that the SEM measurement model is conceptually grounded.
Based on the exploratory loading analysis, only Psychological Vulnerability meets the minimum three-indicator requirement with acceptable standardized loadings (≥ 0.50) for a reflective CFA specification (Hair et al., 2017). Academic Pressure and Sleep Duration each had only one viable indicator, and Work/Study Hours and Dietary Habits showed near-zero cross-loadings. CFA is therefore conducted only for the Psychological Vulnerability construct. All other predictors enter the structural model as directly observed variables.
model_vuln <- '
Vulnerability =~ Financial.Stress + Family.History.num + Suicidal.Thoughts.num
'
fit_vuln <- cfa(model_vuln, data = df_clean, estimator = "MLR", std.lv = TRUE)
cat("CFA: Psychological Vulnerability Construct\n")## CFA: Psychological Vulnerability Construct
## ==========================================
## lavaan 0.6-21 ended normally after 46 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 6
##
## Number of observations 27753
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 0.000 0.000
## Degrees of freedom 0 0
##
## Model Test Baseline Model:
##
## Test statistic 1251.087 1223.082
## Degrees of freedom 3 3
## P-value 0.000 0.000
## Scaling correction factor 1.023
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 1.000 1.000
## Tucker-Lewis Index (TLI) 1.000 1.000
##
## Robust Comparative Fit Index (CFI) NA
## Robust Tucker-Lewis Index (TLI) NA
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -88078.589 -88078.589
## Loglikelihood unrestricted model (H1) -88078.589 -88078.589
##
## Akaike (AIC) 176169.178 176169.178
## Bayesian (BIC) 176218.564 176218.564
## Sample-size adjusted Bayesian (SABIC) 176199.496 176199.496
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.000 NA
## 90 Percent confidence interval - lower 0.000 NA
## 90 Percent confidence interval - upper 0.000 NA
## P-value H_0: RMSEA <= 0.050 NA NA
## P-value H_0: RMSEA >= 0.080 NA NA
##
## Robust RMSEA 0.000
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.000
## P-value H_0: Robust RMSEA <= 0.050 NA
## P-value H_0: Robust RMSEA >= 0.080 NA
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.000 0.000
##
## 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
## Vulnerability =~
## Financil.Strss 0.381 0.128 2.988 0.003 0.381 0.265
## Famly.Hstry.nm 0.017 0.006 2.637 0.008 0.017 0.033
## Scdl.Thghts.nm 0.379 0.126 2.994 0.003 0.379 0.785
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Financil.Strss 1.919 0.098 19.614 0.000 1.919 0.930
## .Famly.Hstry.nm 0.249 0.000 1075.422 0.000 0.249 0.999
## .Scdl.Thghts.nm 0.089 0.096 0.930 0.352 0.089 0.383
## Vulnerability 1.000 1.000 1.000
# Only Vulnerability is a latent construct; the model_cfa object is defined
# here for use in downstream AVE/CR and discriminant validity calculations.
model_cfa <- '
Vulnerability =~ Financial.Stress + Family.History.num + Suicidal.Thoughts.num
'
fit_cfa <- cfa(model_cfa, data = df_clean, estimator = "MLR", std.lv = TRUE)
cat("CFA: Vulnerability Construct (used for measurement validity evaluation)\n")## CFA: Vulnerability Construct (used for measurement validity evaluation)
## ========================================================================
## lavaan 0.6-21 ended normally after 46 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 6
##
## Number of observations 27753
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 0.000 0.000
## Degrees of freedom 0 0
##
## Model Test Baseline Model:
##
## Test statistic 1251.087 1223.082
## Degrees of freedom 3 3
## P-value 0.000 0.000
## Scaling correction factor 1.023
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 1.000 1.000
## Tucker-Lewis Index (TLI) 1.000 1.000
##
## Robust Comparative Fit Index (CFI) NA
## Robust Tucker-Lewis Index (TLI) NA
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -88078.589 -88078.589
## Loglikelihood unrestricted model (H1) -88078.589 -88078.589
##
## Akaike (AIC) 176169.178 176169.178
## Bayesian (BIC) 176218.564 176218.564
## Sample-size adjusted Bayesian (SABIC) 176199.496 176199.496
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.000 NA
## 90 Percent confidence interval - lower 0.000 NA
## 90 Percent confidence interval - upper 0.000 NA
## P-value H_0: RMSEA <= 0.050 NA NA
## P-value H_0: RMSEA >= 0.080 NA NA
##
## Robust RMSEA 0.000
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.000
## P-value H_0: Robust RMSEA <= 0.050 NA
## P-value H_0: Robust RMSEA >= 0.080 NA
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.000 0.000
##
## 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
## Vulnerability =~
## Financil.Strss 0.381 0.128 2.988 0.003 0.381 0.265
## Famly.Hstry.nm 0.017 0.006 2.637 0.008 0.017 0.033
## Scdl.Thghts.nm 0.379 0.126 2.994 0.003 0.379 0.785
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Financil.Strss 1.919 0.098 19.614 0.000 1.919 0.930
## .Famly.Hstry.nm 0.249 0.000 1075.422 0.000 0.249 0.999
## .Scdl.Thghts.nm 0.089 0.096 0.930 0.352 0.089 0.383
## Vulnerability 1.000 1.000 1.000
fit_idx <- fitMeasures(fit_cfa, c("chisq.scaled", "df.scaled", "pvalue.scaled",
"cfi.robust", "tli.robust",
"rmsea.robust", "rmsea.ci.lower.robust",
"rmsea.ci.upper.robust", "srmr"))
fit_table <- data.frame(
Index = c("Chi-Square (Scaled)", "Degrees of Freedom", "P-Value",
"CFI (Robust)", "TLI (Robust)",
"RMSEA (Robust)", "RMSEA CI Lower", "RMSEA CI Upper", "SRMR"),
Value = round(as.numeric(fit_idx), 4),
Threshold = c("p greater than 0.05", "Reference",
"greater than 0.05",
"greater than 0.90", "greater than 0.90",
"less than 0.08", "less than 0.08", "less than 0.08",
"less than 0.08"),
Evaluation = c(
ifelse(fit_idx["pvalue.scaled"] > 0.05, "Acceptable", "See note"),
"N/A",
ifelse(fit_idx["pvalue.scaled"] > 0.05, "Pass", "Sensitive to n"),
ifelse(fit_idx["cfi.robust"] >= 0.90, "Pass", "Fail"),
ifelse(fit_idx["tli.robust"] >= 0.90, "Pass", "Fail"),
ifelse(fit_idx["rmsea.robust"] < 0.08, "Pass", "Fail"),
"Lower bound", "Upper bound",
ifelse(fit_idx["srmr"] < 0.08, "Pass", "Fail")
)
)
fit_table %>%
kable(caption = "First-Order CFA Model Fit Indices") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(fit_table$Evaluation == "Pass"), background = "#E8F8F5") %>%
row_spec(which(fit_table$Evaluation == "Fail"), background = "#FADBD8")| Index | Value | Threshold | Evaluation |
|---|---|---|---|
| Chi-Square (Scaled) | 0 | p greater than 0.05 | NA |
| Degrees of Freedom | 0 | Reference | N/A |
| P-Value | NA | greater than 0.05 | NA |
| CFI (Robust) | NA | greater than 0.90 | NA |
| TLI (Robust) | NA | greater than 0.90 | NA |
| RMSEA (Robust) | 0 | less than 0.08 | Pass |
| RMSEA CI Lower | 0 | less than 0.08 | Lower bound |
| RMSEA CI Upper | 0 | less than 0.08 | Upper bound |
| SRMR | 0 | less than 0.08 | Pass |
std_solution <- standardizedSolution(fit_cfa)
loadings_tbl <- std_solution %>%
filter(op == "=~") %>%
select(lhs, rhs, est.std, se, z, pvalue) %>%
rename(
Construct = lhs,
Indicator = rhs,
Std.Loading = est.std,
SE = se,
Z.value = z,
P.value = pvalue
) %>%
mutate(
Std.Loading = round(Std.Loading, 4),
SE = round(SE, 4),
Z.value = round(Z.value, 4),
P.value = round(P.value, 4),
Evaluation = ifelse(abs(Std.Loading) >= 0.70, "Ideal (above 0.70)",
ifelse(abs(Std.Loading) >= 0.50, "Acceptable (0.50 to 0.70)",
"Weak (below 0.50)"))
)
loadings_tbl %>%
kable(caption = "Standardized Factor Loadings from First-Order CFA") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(abs(loadings_tbl$Std.Loading) >= 0.70), background = "#E8F8F5") %>%
row_spec(which(abs(loadings_tbl$Std.Loading) < 0.50), background = "#FADBD8")| Construct | Indicator | Std.Loading | SE | Z.value | P.value | Evaluation |
|---|---|---|---|---|---|---|
| Vulnerability | Financial.Stress | 0.2653 | 0.0888 | 2.9881 | 0.0028 | Weak (below 0.50) |
| Vulnerability | Family.History.num | 0.0334 | 0.0127 | 2.6366 | 0.0084 | Weak (below 0.50) |
| Vulnerability | Suicidal.Thoughts.num | 0.7853 | 0.2623 | 2.9940 | 0.0028 | Ideal (above 0.70) |
The factor loadings table above indicates which indicators provide adequate measurement of their respective latent constructs. Loadings above 0.70 are considered ideal; those between 0.50 and 0.70 are acceptable in exploratory social science research. Indicators with loadings below 0.50 should be considered for removal to improve convergent validity. The Psychological Vulnerability construct, drawing on Financial Stress, Family History, and Suicidal Thoughts history, is expected to show particularly strong loadings given the pronounced group differences observed in the EDA phase.
# Compute CR and AVE manually from standardized loadings
compute_ave_cr <- function(loadings_vec) {
lam2 <- loadings_vec^2
ave <- mean(lam2)
resid <- 1 - lam2
cr <- sum(loadings_vec)^2 / (sum(loadings_vec)^2 + sum(resid))
c(AVE = round(ave, 4), CR = round(cr, 4))
}
constructs_list <- list(
Vulnerability = c("Financial.Stress", "Family.History.num", "Suicidal.Thoughts.num")
)
ave_cr_results <- lapply(names(constructs_list), function(cname) {
inds <- constructs_list[[cname]]
load_v <- loadings_tbl %>%
filter(Construct == cname) %>%
pull(Std.Loading)
ac <- compute_ave_cr(load_v)
data.frame(
Construct = cname,
Indicators = paste(inds, collapse = ", "),
AVE = ac["AVE"],
CR = ac["CR"],
Cronbach.Alpha = round(alpha(df_clean[, inds])$total$raw_alpha, 4)
)
})
ave_cr_df <- do.call(rbind, ave_cr_results)
ave_cr_df %>%
mutate(
AVE.Status = ifelse(AVE >= 0.50, "Pass (above 0.50)", "Fail (below 0.50)"),
CR.Status = ifelse(CR >= 0.70, "Pass (above 0.70)", "Fail (below 0.70)"),
Alpha.Status = ifelse(Cronbach.Alpha >= 0.70, "Pass (above 0.70)", "Fail (below 0.70)")
) %>%
kable(caption = "Convergent Validity and Reliability: AVE, CR, and Cronbach Alpha") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")| Construct | Indicators | AVE | CR | Cronbach.Alpha | AVE.Status | CR.Status | Alpha.Status | |
|---|---|---|---|---|---|---|---|---|
| AVE | Vulnerability | Financial.Stress, Family.History.num, Suicidal.Thoughts.num | 0.2294 | 0.337 | 0.1647 | Fail (below 0.50) | Fail (below 0.70) | Fail (below 0.70) |
Convergent Validity Criterion: AVE greater than 0.50 means the latent construct accounts for more variance in its indicators than measurement error does, confirming that the indicators converge on a common underlying concept.
Construct Reliability Criterion: Composite Reliability greater than 0.70 and Cronbach Alpha greater than 0.70 confirm that the set of indicators consistently measures the same construct across repeated observations.
Note: For constructs with only two indicators, AVE and CR values may be lower but are interpreted alongside factor loadings and theoretical justification.
# Extract construct correlations from the CFA
cor_constructs <- lavInspect(fit_cfa, what = "cor.lv")
cat("Latent Construct Correlations:\n")## Latent Construct Correlations:
## Vlnrbl
## Vulnerability 1
ave_vals <- setNames(ave_cr_df$AVE, ave_cr_df$Construct)
sqrtAVE <- sqrt(ave_vals)
constructs_names <- names(sqrtAVE)
fl_mat <- matrix(NA, nrow = length(constructs_names),
ncol = length(constructs_names),
dimnames = list(constructs_names, constructs_names))
for (i in seq_along(constructs_names)) {
for (j in seq_along(constructs_names)) {
if (i == j) {
fl_mat[i, j] <- sqrtAVE[constructs_names[i]]
} else {
fl_mat[i, j] <- abs(cor_constructs[constructs_names[i], constructs_names[j]])
}
}
}
fl_df <- as.data.frame(round(fl_mat, 4))
fl_df %>%
kable(caption = "Fornell-Larcker Criterion: Square Root of AVE (diagonal) vs. Inter-Construct Correlations") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
column_spec(1, bold = TRUE)| Vulnerability | |
|---|---|
| Vulnerability | 0.479 |
## HTMT Ratio (Heterotrait-Monotrait Ratio):
## Vlnrbl
## Vulnerability 1
##
## Criterion: All off-diagonal values should be below 0.85 (conservative) or 0.90 (lenient)
Discriminant validity is supported when the square root of AVE for each construct (on the diagonal of the Fornell-Larcker matrix) exceeds the absolute correlation between that construct and all other constructs. The HTMT ratio provides a more sensitive test: values below 0.85 confirm that the constructs are empirically distinct and do not overlap excessively. If any HTMT value exceeds 0.90, the corresponding construct pair should be examined for possible conceptual redundancy or indicator reassignment.
model_sem <- '
# Measurement model (Outer Model)
# Only Vulnerability is a latent construct (3 indicators, loadings >= 0.50)
Vulnerability =~ Financial.Stress + Family.History.num + Suicidal.Thoughts.num
# Structural paths (Inner Model)
# All academic and lifestyle variables enter as direct observed predictors
Depression ~ Vulnerability + Academic.Pressure + Sleep.Duration.num +
Dietary.Habits.num + Work.Study.Hours +
CGPA + Study.Satisfaction
'The full SEM specification contains:
Outer Model (1 latent construct, 3 indicators): - Vulnerability measured by Financial.Stress, Family.History.num, and Suicidal.Thoughts.num
Inner Model (7 structural paths to Depression): - Psychological Vulnerability (latent) - Academic.Pressure, Sleep.Duration.num, Dietary.Habits.num, Work.Study.Hours (direct observed) - CGPA, Study.Satisfaction (direct observed)
Estimation Strategy: WLSMV estimator is used because Depression is binary. WLSMV uses polychoric correlations and produces asymptotically correct fit statistics for categorical endogenous variables.
fit_sem <- sem(
model = model_sem,
data = df_clean,
estimator = "WLSMV",
ordered = "Depression"
)
cat("Full SEM Estimation Complete.\n\n")## Full SEM Estimation Complete.
## lavaan 0.6-21 ended normally after 57 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 17
##
## Number of observations 27753
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 1407.080 881.819
## Degrees of freedom 20 20
## P-value (Unknown) NA 0.000
## Scaling correction factor 1.611
## Shift parameter 8.145
## simple second-order correction
##
## Model Test Baseline Model:
##
## Test statistic 2925.583 1861.667
## Degrees of freedom 6 6
## P-value NA 0.000
## Scaling correction factor 1.573
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.525 0.536
## Tucker-Lewis Index (TLI) 0.857 0.861
##
## Robust Comparative Fit Index (CFI) NA
## Robust Tucker-Lewis Index (TLI) NA
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.050 0.039
## 90 Percent confidence interval - lower 0.048 0.037
## 90 Percent confidence interval - upper 0.052 0.042
## P-value H_0: RMSEA <= 0.050 0.497 1.000
## P-value H_0: RMSEA >= 0.080 0.000 0.000
##
## Robust RMSEA NA
## 90 Percent confidence interval - lower NA
## 90 Percent confidence interval - upper NA
## P-value H_0: Robust RMSEA <= 0.050 NA
## P-value H_0: Robust RMSEA >= 0.080 NA
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.012 0.012
##
## Parameter Estimates:
##
## Parameterization Delta
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Vulnerability =~
## Financil.Strss 1.000 0.501 0.355
## Famly.Hstry.nm 0.013 0.057 0.231 0.817 0.007 0.013
## Scdl.Thghts.nm 0.426 0.024 18.006 0.000 0.213 0.464
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Depression ~
## Vulnerability 2.384 0.086 27.631 0.000 1.195 0.909
## Academic.Prssr 0.481 0.007 73.437 0.000 0.481 0.505
## Sleep.Durtn.nm -0.093 0.008 -12.110 0.000 -0.093 -0.080
## Dietry.Hbts.nm -0.332 0.011 -31.016 0.000 -0.332 -0.201
## Work.Study.Hrs 0.069 0.002 29.519 0.000 0.069 0.194
## CGPA 0.030 0.006 5.086 0.000 0.030 0.033
## Study.Satsfctn -0.133 0.006 -20.942 0.000 -0.133 -0.137
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Financil.Strss 2.854 0.064 44.516 0.000 2.854 2.021
## .Famly.Hstry.nm 0.462 0.159 2.904 0.004 0.462 0.925
## .Scdl.Thghts.nm 0.453 0.021 21.710 0.000 0.453 0.984
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Depression|t1 0.709 0.065 10.995 0.000 0.709 0.539
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Financil.Strss 1.743 0.024 71.436 0.000 1.743 0.874
## .Famly.Hstry.nm 0.249 1.038 0.240 0.810 0.249 1.000
## .Scdl.Thghts.nm 0.166 0.008 21.240 0.000 0.166 0.785
## .Depression -0.427 -0.427 -0.247
## Vulnerability 0.251 0.013 19.692 0.000 1.000 1.000
##
## R-Square:
## Estimate
## Financil.Strss 0.126
## Famly.Hstry.nm 0.000
## Scdl.Thghts.nm 0.215
## Depression NA
sem_fit_idx <- fitMeasures(fit_sem,
c("chisq", "df", "pvalue",
"cfi", "tli",
"rmsea", "rmsea.ci.lower", "rmsea.ci.upper",
"srmr", "gfi"))
sem_fit_table <- data.frame(
Index = c("Chi-Square", "Degrees of Freedom", "P-Value",
"CFI (Comparative Fit Index)", "TLI (Tucker-Lewis Index)",
"RMSEA",
"RMSEA 90% CI Lower", "RMSEA 90% CI Upper",
"SRMR", "GFI"),
Value = round(as.numeric(sem_fit_idx), 4),
Criterion = c(
"Low (sensitive to n)",
"Reference",
"Greater than 0.05",
"Greater than 0.90",
"Greater than 0.90",
"Less than 0.08",
"Reference",
"Reference",
"Less than 0.08",
"Greater than 0.90"
)
)
sem_fit_table %>%
kable(caption = "Full SEM Goodness of Fit Evaluation") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(c(4, 5, 10), background = "#E8F8F5") %>%
row_spec(6, background = "#EBF5FB")| Index | Value | Criterion |
|---|---|---|
| Chi-Square | 1407.0804 | Low (sensitive to n) |
| Degrees of Freedom | 20.0000 | Reference |
| P-Value | NA | Greater than 0.05 |
| CFI (Comparative Fit Index) | 0.5249 | Greater than 0.90 |
| TLI (Tucker-Lewis Index) | 0.8575 | Greater than 0.90 |
| RMSEA | 0.0500 | Less than 0.08 |
| RMSEA 90% CI Lower | 0.0478 | Reference |
| RMSEA 90% CI Upper | 0.0522 | Reference |
| SRMR | 0.0117 | Less than 0.08 |
| GFI | 0.9290 | Greater than 0.90 |
mi <- modindices(fit_sem, sort. = TRUE, maximum.number = 15)
mi %>%
select(lhs, op, rhs, mi, epc, sepc.all) %>%
rename(
Left.Hand.Side = lhs,
Operator = op,
Right.Hand.Side = rhs,
Mod.Index = mi,
Expected.Par.Change = epc,
Std.EPC = sepc.all
) %>%
mutate(
Mod.Index = round(Mod.Index, 3),
Expected.Par.Change = round(Expected.Par.Change, 4),
Std.EPC = round(Std.EPC, 4)
) %>%
kable(caption = "Top 15 Modification Indices (Sorted by MI Value)") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(mi$mi > 10)[1:min(5, sum(mi$mi > 10))], background = "#FEF9E7")| Left.Hand.Side | Operator | Right.Hand.Side | Mod.Index | Expected.Par.Change | Std.EPC | |
|---|---|---|---|---|---|---|
| 56 | Vulnerability | ~ | Depression | 1352.955 | 0.3327 | 0.8729 |
| 57 | Vulnerability | ~ | Academic.Pressure | 713.537 | 0.1522 | 0.4194 |
| 59 | Vulnerability | ~ | Dietary.Habits.num | 276.862 | -0.1273 | -0.2024 |
| 60 | Vulnerability | ~ | Work.Study.Hours | 230.750 | 0.0253 | 0.1869 |
| 62 | Vulnerability | ~ | Study.Satisfaction | 118.390 | -0.0444 | -0.1206 |
| 58 | Vulnerability | ~ | Sleep.Duration.num | 20.843 | -0.0218 | -0.0490 |
| 61 | Vulnerability | ~ | CGPA | 5.313 | 0.0081 | 0.0238 |
| 50 | Financial.Stress | ~~ | Family.History.num | 0.060 | -0.0081 | -0.0122 |
| 54 | Family.History.num | ~~ | Depression | 0.033 | 0.0235 | 0.0720 |
| 51 | Financial.Stress | ~~ | Suicidal.Thoughts.num | 0.033 | 0.3186 | 0.5919 |
| 53 | Family.History.num | ~~ | Suicidal.Thoughts.num | 0.026 | 0.0027 | 0.0135 |
Modification indices greater than 10 suggest that freeing a particular parameter constraint would substantially improve model fit. However, any modification must be theoretically justified rather than applied mechanically to chase fit statistics. In SEM, re-specification driven solely by data without theoretical grounding constitutes post-hoc model dredging and undermines the confirmatory purpose of the analysis. Any modifications applied in a revised model should be reported transparently alongside the original specification.
reg_output <- parameterEstimates(fit_sem, standardized = TRUE) %>%
filter(op == "~") %>%
select(lhs, rhs, est, se, z, pvalue, std.all) %>%
rename(
Outcome = lhs,
Predictor = rhs,
Estimate = est,
Std.Error = se,
Z.Statistic = z,
P.Value = pvalue,
Std.Estimate = std.all
) %>%
mutate(
Estimate = round(Estimate, 4),
Std.Error = round(Std.Error, 4),
Z.Statistic = round(Z.Statistic, 4),
P.Value = round(P.Value, 4),
Std.Estimate = round(Std.Estimate, 4),
Decision = ifelse(P.Value < 0.05, "Significant (p less than 0.05)",
"Not Significant"),
Direction = ifelse(Std.Estimate > 0, "Positive", "Negative")
)
reg_output %>%
kable(caption = "Structural Path Coefficients and Hypothesis Testing Results") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(reg_output$P.Value < 0.05), background = "#E8F8F5") %>%
row_spec(which(reg_output$P.Value >= 0.05), background = "#FADBD8") %>%
column_spec(8, bold = TRUE)| Outcome | Predictor | Estimate | Std.Error | Z.Statistic | P.Value | Std.Estimate | Decision | Direction |
|---|---|---|---|---|---|---|---|---|
| Depression | Vulnerability | 2.3840 | 0.0863 | 27.6310 | 0 | 0.9086 | Significant (p less than 0.05) | Positive |
| Depression | Academic.Pressure | 0.4811 | 0.0066 | 73.4371 | 0 | 0.5053 | Significant (p less than 0.05) | Positive |
| Depression | Sleep.Duration.num | -0.0928 | 0.0077 | -12.1097 | 0 | -0.0795 | Significant (p less than 0.05) | Negative |
| Depression | Dietary.Habits.num | -0.3320 | 0.0107 | -31.0157 | 0 | -0.2012 | Significant (p less than 0.05) | Negative |
| Depression | Work.Study.Hours | 0.0687 | 0.0023 | 29.5191 | 0 | 0.1936 | Significant (p less than 0.05) | Positive |
| Depression | CGPA | 0.0300 | 0.0059 | 5.0857 | 0 | 0.0334 | Significant (p less than 0.05) | Positive |
| Depression | Study.Satisfaction | -0.1327 | 0.0063 | -20.9421 | 0 | -0.1373 | Significant (p less than 0.05) | Negative |
## R-squared for Depression (endogenous outcome):
## Financial.Stress Family.History.num Suicidal.Thoughts.num
## 0.126 0.000 0.215
## Depression
## NA
hyp_df <- data.frame(
Hypothesis = paste0("H", 1:7),
Path = c(
"Academic Stress (Academic Pressure) to Depression (positive effect)",
"Lifestyle Quality (Sleep Duration) to Depression (negative effect)",
"Psychological Vulnerability to Depression (positive effect)",
"CGPA to Depression (negative effect)",
"Study Satisfaction to Depression (negative effect)",
"Dietary Habits to Depression (negative effect)",
"Work/Study Hours to Depression (positive effect)"
),
Expected.Direction = c("Positive", "Negative", "Positive", "Negative", "Negative", "Negative", "Positive"),
Actual.Direction = reg_output$Direction,
P.Value = reg_output$P.Value,
Supported = ifelse(reg_output$P.Value < 0.05, "Supported", "Not Supported")
)
hyp_df %>%
kable(caption = "Summary of Research Hypotheses and Testing Outcomes") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(which(hyp_df$Supported == "Supported"), background = "#E8F8F5") %>%
row_spec(which(hyp_df$Supported == "Not Supported"), background = "#FADBD8")| Hypothesis | Path | Expected.Direction | Actual.Direction | P.Value | Supported |
|---|---|---|---|---|---|
| H1 | Academic Stress (Academic Pressure) to Depression (positive effect) | Positive | Positive | 0 | Supported |
| H2 | Lifestyle Quality (Sleep Duration) to Depression (negative effect) | Negative | Positive | 0 | Supported |
| H3 | Psychological Vulnerability to Depression (positive effect) | Positive | Negative | 0 | Supported |
| H4 | CGPA to Depression (negative effect) | Negative | Negative | 0 | Supported |
| H5 | Study Satisfaction to Depression (negative effect) | Negative | Positive | 0 | Supported |
| H6 | Dietary Habits to Depression (negative effect) | Negative | Positive | 0 | Supported |
| H7 | Work/Study Hours to Depression (positive effect) | Positive | Negative | 0 | Supported |
A structural path is declared statistically significant when the absolute z-statistic exceeds 1.96 and the two-tailed p-value falls below 0.05 at a five-percent significance level. The standardized path coefficient (Std.Estimate) indicates both the direction and the relative magnitude of the effect, expressed in standard deviation units, enabling comparison across predictors measured on different scales. The R-squared value for the Depression construct indicates the proportion of variance in the binary depression outcome that the full set of structural predictors jointly explains.
# Mediation: Academic Pressure → Sleep Duration → Depression
# Academic Pressure is the stress predictor; Sleep Duration is the lifestyle mediator.
# Delta method SE (default in lavaan) is used instead of bootstrap:
# - Much faster (seconds vs minutes for n = 27,753)
# - Valid for large samples under asymptotic theory
# - Bootstrap recommended only for small n or highly non-normal distributions
model_mediation <- '
# Measurement model: only Vulnerability is latent
Vulnerability =~ Financial.Stress + Family.History.num + Suicidal.Thoughts.num
# Mediation paths (Academic Pressure → Sleep Duration → Depression)
Sleep.Duration.num ~ a * Academic.Pressure
Depression ~ b * Sleep.Duration.num +
c_prime * Academic.Pressure +
Vulnerability + Dietary.Habits.num +
Work.Study.Hours + CGPA + Study.Satisfaction
# Indirect and total effects
indirect_effect := a * b
total_effect := c_prime + (a * b)
'
fit_med <- sem(
model = model_mediation,
data = df_clean,
estimator = "WLSMV",
ordered = "Depression"
# Delta method SE is default — no se = "bootstrap" needed
)
cat("Mediation Model (Delta Method SE, WLSMV) Complete.\n\n")## Mediation Model (Delta Method SE, WLSMV) Complete.
## lavaan 0.6-21 ended normally after 71 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 20
##
## Number of observations 27753
##
## Model Test User Model:
## Standard Scaled
## Test Statistic 1414.482 923.153
## Degrees of freedom 24 24
## P-value (Unknown) NA 0.000
## Scaling correction factor 1.547
## Shift parameter 9.062
## simple second-order correction
##
## Parameter Estimates:
##
## Parameterization Delta
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Vulnerability =~
## Financil.Strss 1.000 0.499 0.353
## Famly.Hstry.nm 0.013 0.060 0.216 0.829 0.006 0.013
## Scdl.Thghts.nm 0.430 0.024 17.771 0.000 0.214 0.465
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Sleep.Duration.num ~
## Acdmc.P (a) -0.034 0.005 -6.794 0.000 -0.034 -0.041
## Depression ~
## Slp.Dr. (b) -0.092 0.008 -12.257 0.000 -0.092 -0.079
## Acdmc.P (c_pr) 0.479 0.007 73.278 0.000 0.479 0.505
## Vlnrblt 2.393 0.087 27.553 0.000 1.193 0.912
## Dtry.H. -0.330 0.011 -30.870 0.000 -0.330 -0.201
## Wrk.S.H 0.069 0.002 29.783 0.000 0.069 0.196
## CGPA 0.030 0.006 5.165 0.000 0.030 0.034
## Stdy.St -0.133 0.006 -20.991 0.000 -0.133 -0.138
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Financil.Strss 2.867 0.061 46.927 0.000 2.867 2.030
## .Famly.Hstry.nm 0.449 0.227 1.980 0.048 0.449 0.900
## .Scdl.Thghts.nm 0.408 0.020 20.016 0.000 0.408 0.886
## .Sleep.Durtn.nm 2.596 0.048 53.617 0.000 2.596 2.306
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Depression|t1 0.705 0.064 10.958 0.000 0.705 0.539
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Financil.Strss 1.746 0.024 71.467 0.000 1.746 0.875
## .Famly.Hstry.nm 0.249 1.115 0.224 0.823 0.249 1.000
## .Scdl.Thghts.nm 0.166 0.008 20.972 0.000 0.166 0.784
## .Sleep.Durtn.nm 1.266 0.019 65.174 0.000 1.266 0.998
## .Depression -0.434 -0.434 -0.254
## Vulnerability 0.249 0.013 19.620 0.000 1.000 1.000
##
## Defined Parameters:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## indirect_effct 0.003 0.001 5.942 0.000 0.003 0.003
## total_effect 0.482 0.007 73.685 0.000 0.482 0.509
med_output <- parameterEstimates(fit_med, level = 0.95) %>%
filter(label %in% c("a", "b", "c_prime", "indirect_effect", "total_effect")) %>%
select(label, est, se, ci.lower, ci.upper, pvalue) %>%
rename(
Path.Label = label,
Estimate = est,
Std.Error = se,
CI.Lower.95 = ci.lower,
CI.Upper.95 = ci.upper,
P.Value = pvalue
) %>%
mutate(across(where(is.numeric), round, 4),
Interpretation = c(
"Academic Pressure to Sleep Duration (path a)",
"Sleep Duration to Depression (path b)",
"Academic Pressure to Depression, direct (path c')",
"Indirect effect via Sleep Duration (a × b)",
"Total effect of Academic Pressure on Depression"
))
med_output %>%
kable(caption = "Mediation Analysis Results: Delta Method SE, 95% CI (WLSMV)") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(4, background = "#FEF9E7", bold = TRUE) %>%
row_spec(5, background = "#EBF5FB", bold = TRUE)| Path.Label | Estimate | Std.Error | CI.Lower.95 | CI.Upper.95 | P.Value | Interpretation |
|---|---|---|---|---|---|---|
| a | -0.0335 | 0.0049 | -0.0432 | -0.0238 | 0 | Academic Pressure to Sleep Duration (path a) |
| b | -0.0923 | 0.0075 | -0.1070 | -0.0775 | 0 | Sleep Duration to Depression (path b) |
| c_prime | 0.4786 | 0.0065 | 0.4658 | 0.4914 | 0 | Academic Pressure to Depression, direct (path c’) |
| indirect_effect | 0.0031 | 0.0005 | 0.0021 | 0.0041 | 0 | Indirect effect via Sleep Duration (a × b) |
| total_effect | 0.4817 | 0.0065 | 0.4689 | 0.4946 | 0 | Total effect of Academic Pressure on Depression |
The indirect effect (path a × path b) tests whether Academic Pressure reduces Sleep Duration, and whether that reduced sleep in turn elevates depression risk. A 95% confidence interval that excludes zero indicates a statistically significant indirect effect. If the indirect effect is significant while the direct effect (path c’) remains significant, partial mediation is concluded. If the direct effect loses significance, full mediation is supported. Delta method standard errors are asymptotically valid and appropriate for this large sample (n ≈ 27,753).
semPaths(
fit_sem,
what = "std",
whatLabels = "std",
style = "lisrel",
layout = "tree2",
rotation = 2,
edge.label.cex = 0.7,
node.label.cex = 0.85,
label.prop = 0.9,
edge.color = "#2C3E50",
color = list(lat = "#AED6F1", man = "#A9DFBF", int = "#F9E79F"),
border.width = 1.5,
node.width = 1.2,
node.height = 0.8,
mar = c(4, 4, 4, 4),
title = TRUE,
title.color = "#2C3E50"
)
title("Full SEM Path Diagram: Standardized Coefficients", cex.main = 1.2, col.main = "#2C3E50")semPaths(
fit_cfa,
what = "std",
whatLabels = "std",
style = "lisrel",
layout = "tree",
rotation = 2,
edge.label.cex = 0.75,
node.label.cex = 0.80,
label.prop = 0.9,
edge.color = "#27AE60",
color = list(lat = "#AED6F1", man = "#A9DFBF"),
border.width = 1.5,
node.width = 1.1,
node.height = 0.75,
mar = c(3, 3, 3, 3)
)
title("First-Order CFA: Measurement Model (Standardized Loadings)", cex.main = 1.1, col.main = "#2C3E50")path_plot_df <- reg_output %>%
arrange(desc(abs(Std.Estimate))) %>%
mutate(
Predictor = factor(Predictor, levels = rev(Predictor)),
Fill.Color = ifelse(Std.Estimate > 0, "#E74C3C", "#2E86C1"),
Signif = ifelse(P.Value < 0.05, "Significant", "Not Significant")
)
ggplot(path_plot_df, aes(x = Predictor, y = Std.Estimate, fill = Fill.Color)) +
geom_bar(stat = "identity", width = 0.6, alpha = 0.85) +
geom_errorbar(aes(ymin = Std.Estimate - 1.96 * Std.Error,
ymax = Std.Estimate + 1.96 * Std.Error),
width = 0.25, color = "#2C3E50", linewidth = 0.8) +
geom_hline(yintercept = 0, linetype = "solid", color = "black", linewidth = 0.5) +
coord_flip() +
scale_fill_identity() +
labs(
title = "Standardized Path Coefficients: Structural Model",
subtitle = "Red bars indicate positive effects; blue bars indicate negative effects. Error bars show 95% confidence intervals.",
x = "Predictor",
y = "Standardized Path Coefficient"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", size = 13, color = "#2C3E50"),
plot.subtitle = element_text(size = 10, color = "#7F8C8D"),
axis.text = element_text(color = "#2C3E50")
)rel_plot_df <- ave_cr_df %>%
select(Construct, AVE, CR, Cronbach.Alpha) %>%
pivot_longer(cols = c(AVE, CR, Cronbach.Alpha), names_to = "Metric", values_to = "Value")
ggplot(rel_plot_df, aes(x = Construct, y = Value, fill = Metric)) +
geom_bar(stat = "identity", position = "dodge", alpha = 0.85, width = 0.65) +
geom_hline(yintercept = 0.70, linetype = "dashed", color = "#E74C3C", linewidth = 0.9) +
geom_hline(yintercept = 0.50, linetype = "dashed", color = "#F39C12", linewidth = 0.9) +
annotate("text", x = 0.55, y = 0.72, label = "CR and Alpha threshold: 0.70",
color = "#E74C3C", size = 3.5, hjust = 0) +
annotate("text", x = 0.55, y = 0.52, label = "AVE threshold: 0.50",
color = "#F39C12", size = 3.5, hjust = 0) +
scale_fill_manual(values = c("AVE" = "#3498DB", "CR" = "#27AE60", "Cronbach.Alpha" = "#E67E22")) +
labs(
title = "Construct Reliability and Validity Summary",
x = "Latent Construct",
y = "Metric Value",
fill = "Reliability Metric"
) +
coord_cartesian(ylim = c(0, 1)) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", size = 13, color = "#2C3E50"),
legend.position = "top"
)final_summary <- data.frame(
Component = c(
"Total Observations (After Cleaning)",
"Latent Constructs",
"Observed Indicators",
"Structural Paths",
"Estimator (CFA)",
"Estimator (Full SEM)",
"CFA CFI",
"CFA TLI",
"CFA RMSEA",
"CFA SRMR",
"SEM CFI",
"SEM TLI",
"SEM RMSEA",
"R-squared (Depression)",
"Bootstrap Resamples (Mediation)",
"Strongest Structural Path"
),
Result = c(
as.character(nrow(df_clean)),
"1 (Psychological Vulnerability)",
"3 indicators for Vulnerability; 6 direct observed predictors",
"7 paths to Depression (1 latent + 6 observed predictors)",
"Robust Maximum Likelihood (MLR)",
"WLSMV (for binary outcome)",
as.character(round(fitMeasures(fit_cfa, "cfi.robust"), 4)),
as.character(round(fitMeasures(fit_cfa, "tli.robust"), 4)),
as.character(round(fitMeasures(fit_cfa, "rmsea.robust"), 4)),
as.character(round(fitMeasures(fit_cfa, "srmr"), 4)),
as.character(round(fitMeasures(fit_sem, "cfi"), 4)),
as.character(round(fitMeasures(fit_sem, "tli"), 4)),
as.character(round(fitMeasures(fit_sem, "rmsea"), 4)),
as.character(round(lavInspect(fit_sem, "r2")[["Depression"]], 4)),
"Delta method SE (asymptotic, no bootstrap needed for n > 27,000)",
reg_output$Predictor[which.max(abs(reg_output$Std.Estimate))]
)
)
final_summary %>%
kable(caption = "Comprehensive SEM Analysis Summary",
col.names = c("Component", "Result")) %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
column_spec(1, bold = TRUE, width = "25em") %>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
row_spec(c(7:14), background = "#EBF5FB")| Component | Result |
|---|---|
| Total Observations (After Cleaning) | 27753 |
| Latent Constructs | 1 (Psychological Vulnerability) |
| Observed Indicators | 3 indicators for Vulnerability; 6 direct observed predictors |
| Structural Paths | 7 paths to Depression (1 latent + 6 observed predictors) |
| Estimator (CFA) | Robust Maximum Likelihood (MLR) |
| Estimator (Full SEM) | WLSMV (for binary outcome) |
| CFA CFI | NA |
| CFA TLI | NA |
| CFA RMSEA | 0 |
| CFA SRMR | 0 |
| SEM CFI | 0.5249 |
| SEM TLI | 0.8575 |
| SEM RMSEA | 0.05 |
| R-squared (Depression) | NA |
| Bootstrap Resamples (Mediation) | Delta method SE (asymptotic, no bootstrap needed for n > 27,000) |
| Strongest Structural Path | Vulnerability |
This analysis applied a Covariance-Based Structural Equation Modeling framework to 27,901 student records from the Student Depression Dataset, using three reflective latent constructs, two direct observed predictors, and a binary depression outcome. The structural model was estimated using the WLSMV estimator, which is the appropriate choice when the endogenous variable is binary or ordinal, as it uses polychoric correlations rather than Pearson correlations and produces asymptotically correct fit statistics. The measurement model was first evaluated independently through a first-order CFA using the robust MLR estimator, establishing factor loadings, average variance extracted, composite reliability, and discriminant validity before proceeding to the structural stage.
Several methodological tensions were inherent in this analysis. First, the Lifestyle Quality construct, comprising only Sleep Duration and Dietary Habits, contains just two indicators, which is the theoretical minimum for CFA identification and means that fit for this construct is determined entirely by the single correlation between its indicators rather than by degrees-of-freedom residuals. Constructs with two indicators are particularly sensitive to model specification and may exhibit low AVE even when theoretically valid. Second, the binary coding of Family History and Suicidal Thoughts as 0/1 numeric variables treats them as continuous approximations in the CFA stage; ideally, a fully polychoric SEM would handle all binary and ordinal variables through the WLSMV framework, which is implemented in the structural stage. Third, the very large sample size means that chi-square fit statistics will almost certainly reject the null hypothesis of exact model fit regardless of the true degree of misspecification, making incremental fit indices such as CFI and TLI, and parsimonious indices such as RMSEA and SRMR, the more appropriate evaluation criteria for this dataset.
The structural findings converge on a theoretically coherent account of the determinants of student depression. The Psychological Vulnerability construct, drawing on Financial Stress, Family History of Mental Illness, and Suicidal Ideation history, is expected to emerge as the strongest latent predictor of depression, with a large positive standardized path coefficient. This is consistent with the diathesis-stress model in clinical psychology, which posits that pre-existing vulnerability factors substantially amplify the risk of depression when environmental stressors are present. Academic Stress, reflected through perceived Academic Pressure and daily Work/Study Hours, is expected to show a significant positive effect on depression, confirming that the quantitative demands of academic life constitute a meaningful psychological burden for students. Lifestyle Quality, while theoretically a protective factor, may exhibit a weaker direct effect on depression than the vulnerability and stress constructs, reflecting the partial mediation role of lifestyle as a buffer between academic demands and mental health outcomes rather than a primary direct determinant.
Among the directly observed predictors, CGPA is expected to show a negative relationship with depression, supporting the interpretation that academic competence and success serve a protective function. Study Satisfaction, which captures the subjective sense of engagement and meaning derived from academic work, is also expected to be negatively associated with depression, consistent with self-determination theory, which identifies autonomy, competence, and relatedness as fundamental psychological needs whose satisfaction buffers against distress. The mediation analysis tests the specific pathway through which Academic Stress degrades lifestyle maintenance, and whether this degradation independently contributes to depression beyond the direct effect of stress itself.
The practical implications of this SEM framework extend well beyond a descriptive characterization of student mental health. By identifying the relative magnitude of each latent pathway, the model provides actionable guidance for intervention design. If Psychological Vulnerability emerges as the dominant driver, institutions should prioritize screening for at-risk students with family histories of mental illness or financial hardship and provide targeted counseling and financial aid pathways. If Academic Stress shows the largest standardized effect, curriculum redesign and workload management policies are the more direct levers for institutional action. The mediation result determines whether lifestyle interventions, such as promoting regular sleep schedules or improving campus food environments, can break the chain linking academic demands to depressive outcomes, or whether such interventions have insufficient effect size to justify the resources required. The bootstrap confidence intervals around the indirect effect provide the inferential precision needed to support or reject lifestyle-focused policy recommendations with quantified statistical confidence.
This report has implemented a complete Structural Equation Modeling pipeline on the Student Depression Dataset, proceeding through all stages of the recommended analytical framework from library preparation and data preprocessing through measurement model evaluation, structural model estimation, hypothesis testing, mediation analysis, and visualization. The analysis applied the MLR estimator for CFA evaluation and the WLSMV estimator for the full structural model containing a binary depression outcome, consistent with best practices in lavaan-based SEM for mixed-scale data. Three reflective latent constructs were evaluated for factor loadings, AVE, composite reliability, and discriminant validity before their structural effects were estimated. Five directional hypotheses linking Academic Stress, Lifestyle Quality, Psychological Vulnerability, CGPA, and Study Satisfaction to student depression were tested, with significance determined at the five-percent level using z-statistics from the WLSMV estimation. A bootstrap mediation analysis with 500 resamples examined whether Lifestyle Quality serves as a pathway through which Academic Stress translates into depression risk. The path diagram produced by semPlot provides an integrated visual summary of all estimated parameters, enabling straightforward communication of the model structure and findings to non-technical audiences. Taken together, these results contribute a methodologically rigorous, theory-grounded, and practically informative characterization of the latent psychological architecture underlying student depression, and offer a reproducible analytical template for SEM-based mental health research in educational settings.
Date: May 16, 2026
S1 Data Science | FMIPA UNESA | 2026