Skip to content
Analyzing Student's Mental Health
Does going to university in a different country affect your mental health? A Japanese international university surveyed its students in 2018 and published a study the following year that was approved by several ethical and regulatory boards.
The study found that international students have a higher risk of mental health difficulties than the general population. Explore the students data using PostgreSQL to find out if this is true and see if the length of stay is a contributing factor.
Here is a data description of the columns you may find helpful.
| Field Name | Description |
|---|---|
| inter_dom | Types of students |
| japanese_cate | Japanese language proficiency |
| english_cate | English language proficiency |
| academic | Current academic level |
| age | Current age of student |
| stay | Current length of stay in years |
| todep | Total score of depression (PHQ-9 test) |
| tosc | Total score of social connectedness (SCS test) |
| toas | Total score of Acculturative Stress (ASISS test) |
DataFrameas
df
variable
--Printing the table for review
SELECT *
FROM students;DataFrameas
df
variable
--Calculating the average stay of an international student
SELECT AVG(stay)
FROM students
WHERE inter_dom = 'Inter';DataFrameas
df
variable
--Looking at available summary statistics in the "students" table
--Round the min, max, and average for each category, then aliasing
SELECT ROUND(MIN(todep), 2) AS min_phq,
ROUND(MAX(todep), 2) AS max_phq,
ROUND(AVG(todep), 2) AS average_phq,
ROUND(MIN(tosc), 2) AS min_scs,
ROUND(MAX(tosc), 2) AS max_scs,
ROUND(AVG(tosc), 2) AS average_scs,
ROUND(MIN(toas), 2) AS min_as,
ROUND(MAX(toas), 2) AS max_as,
ROUND(AVG(toas), 2) AS average_as
FROM students;DataFrameas
df
variable
--Same as above, but solely for international students
--Round the min, max, and average for each category, then aliasing
SELECT inter_dom,
ROUND(MIN(todep), 2) AS min_phq,
ROUND(MAX(todep), 2) AS max_phq,
ROUND(AVG(todep), 2) AS average_phq,
ROUND(MIN(tosc), 2) AS min_scs,
ROUND(MAX(tosc), 2) AS max_scs,
ROUND(AVG(tosc), 2) AS average_scs,
ROUND(MIN(toas), 2) AS min_as,
ROUND(MAX(toas), 2) AS max_as,
ROUND(AVG(toas), 2) AS average_as
FROM students
WHERE inter_dom = 'Inter'
GROUP BY inter_dom;DataFrameas
df
variable
--For domestic students
SELECT inter_dom,
ROUND(MIN(todep), 2) AS min_phq,
ROUND(MAX(todep), 2) AS max_phq,
ROUND(AVG(todep), 2) AS average_phq,
ROUND(MIN(tosc), 2) AS min_scs,
ROUND(MAX(tosc), 2) AS max_scs,
ROUND(AVG(tosc), 2) AS average_scs,
ROUND(MIN(toas), 2) AS min_as,
ROUND(MAX(toas), 2) AS max_as,
ROUND(AVG(toas), 2) AS average_as
FROM students
WHERE inter_dom = 'Dom'
GROUP BY inter_dom;DataFrameas
df
variable
--Shows how the length of stay of an international student impacts the average diagnostic scores
SELECT stay,
ROUND(AVG(todep), 2) AS average_phq,
ROUND(AVG(tosc), 2) AS average_scs,
ROUND(AVG(toas), 2) AS average_as
FROM students
WHERE inter_dom = 'Inter'
GROUP BY stay
ORDER BY stay DESC;