knitr::opts_chunk$set(echo = TRUE, comment="")
library(readxl)
Durias <- read_excel("D:/MARV BS MATH/Marv 4th year, 1st sem/Regression Analysis/Data.xlsx", 
    col_types = c("numeric", "text", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "text", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "text", "numeric", "text", "numeric", 
        "text", "numeric", "numeric", "numeric", 
        "numeric", "numeric", "text", "numeric", 
        "text", "numeric", "text"))
New names:
• `Relax3` -> `Relax3...40`
• `Relax3` -> `Relax3...41`
• `Education` -> `Education...50`
• `` -> `...51`
• `Income` -> `Income...52`
• `` -> `...71`
• `Education` -> `Education...72`
• `` -> `...73`
• `` -> `...74`
• `` -> `...75`
• `Income` -> `Income...76`
• `` -> `...77`
• `` -> `...79`
• `` -> `...80`
• `` -> `...81`
• `` -> `...82`
Durias
library(dplyr)
Warning: package 'dplyr' was built under R version 4.2.2

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
Durias%>%
  mutate(Agecode=ifelse(age<=50, "at most 50 years old", "More than 50 years old"))%>%
  group_by(Agecode)%>%
  summarise(count=n())%>%
  mutate(Percentage =round((count/sum(count)*100),2))

Socio-Demographic Profile

Gender

library(dplyr)
Durias%>%
  group_by(Gender)%>%
  summarise(count=n())%>%
  mutate(Percentage =round((count/sum(count)*100),2))

Education

library(tidyverse)
Warning: package 'tidyverse' was built under R version 4.2.2
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.4.0     ✔ purrr   0.3.4
✔ tibble  3.1.8     ✔ stringr 1.4.1
✔ tidyr   1.2.1     ✔ forcats 0.5.2
✔ readr   2.1.2     
Warning: package 'ggplot2' was built under R version 4.2.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
library(ggpubr)
Warning: package 'ggpubr' was built under R version 4.2.2
library(rstatix)
Warning: package 'rstatix' was built under R version 4.2.2

Attaching package: 'rstatix'
The following object is masked from 'package:stats':

    filter
Durias$Education<-Durias$Education...72
Durias1<-Durias%>%
  mutate(Educationcode = recode(`Education`,
                           "Colege graduate" = "College graduate", "Ementary level" = "Elementary level", "High schoo graduate" = "High school graduate", "High School graduate" = "High school graduate", "High sschool graduate" = "High school graduate", "High scool level" = "High school level", "Highschool level " = "High school level", "Highschool level" = "High school level", "Highschool level " = "High school level", "High chool graduate" = "High school graduate"))
Durias1<-Durias1%>%
   reorder_levels(Educationcode, order = c("Elementary level", "Elementary graduate", "High school level", "High school graduate","College level", "College graduate"))
Durias1
library(dplyr)
Durias1%>%
  group_by(Educationcode)%>%
  summarise(count=n())%>%
  mutate(Percentage =round((count/sum(count)*100),2))

Income

Durias1$Income<-Durias1$Income...76
Durias1$Income<-as.factor(Durias1$Income)
library(dplyr)
Durias1%>%
  group_by(Income)%>%
  summarise(count=n())%>%
  mutate(Percentage =round((count/sum(count)*100),2))

1. What is the respondent’s level of stress and anxiety as measured by Depression, Anxiety, and Stress Scale (DASS-21)?

Durias1<-Durias%>%
  mutate(Stress1 = recode(`Stress`,
                           "mild" = "Mild"))
Durias1<-Durias1%>%
   reorder_levels(Stress1, order = c("Normal", "Mild", "Moderate", "Severe","Extremely severe", "College graduate"))
Durias1
Durias1<-Durias1%>%
   reorder_levels(Stress1, order = c("Normal", "Mild", "Moderate", "Severe","Extremely severe", "College graduate"))
Durias1%>%
  group_by(Stress1)%>%
  summarise(count=n())%>%
  mutate(Percentage =round((count/sum(count)*100),2))
Durias1<-Durias%>%
  mutate(Anxiety1 = recode(`Anxiety`,
                           "mild" = "Mild"))
Durias1<-Durias1%>%
   reorder_levels(Anxiety1, order = c("Normal", "Mild", "Moderate", "Severe","Extremely severe"))
Durias1%>%
  group_by(Anxiety1)%>%
  summarise(count=n())%>%
  mutate(Percentage =round((count/sum(count)*100),2))
Durias2<-Durias1%>%
  gather(key = "Coping", value = "Score", ReappraisalMean, SocialSupportMean, ProbSolvingMean, RelMean, TolMean, Emomean, OveracMean, RelaxMean,Subsmean) %>%
  convert_as_factor(Coping)
Durias2
#Summary statistics
Durias2%>%
  group_by(Coping) %>%
   get_summary_stats(Score, type = "mean_sd")

3.1 Is there a significant relationship between respondent’s level of stress and coping mechanisms?

library(performance)
multiple <- lm(StTotal ~ ReappraisalMean + SocialSupportMean +ProbSolvingMean + RelMean + TolMean + Emomean + OveracMean + RelaxMean + Subsmean, data = Durias1)
summary(multiple)

Call:
lm(formula = StTotal ~ ReappraisalMean + SocialSupportMean + 
    ProbSolvingMean + RelMean + TolMean + Emomean + OveracMean + 
    RelaxMean + Subsmean, data = Durias1)

Residuals:
     Min       1Q   Median       3Q      Max 
-12.2452  -4.1688   0.1868   3.0768  20.7605 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)  
(Intercept)         7.6781     4.8332   1.589   0.1145  
ReappraisalMean     0.5264     1.1958   0.440   0.6605  
SocialSupportMean   1.1563     1.0585   1.092   0.2766  
ProbSolvingMean    -2.5310     1.3180  -1.920   0.0569 .
RelMean             0.8649     1.2815   0.675   0.5009  
TolMean            -0.3901     0.9907  -0.394   0.6943  
Emomean             1.9311     1.3611   1.419   0.1583  
OveracMean          0.8203     1.3734   0.597   0.5513  
RelaxMean          -1.2134     1.2422  -0.977   0.3304  
Subsmean            3.9883     1.6741   2.382   0.0186 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 5.868 on 135 degrees of freedom
Multiple R-squared:  0.1216,    Adjusted R-squared:  0.063 
F-statistic: 2.076 on 9 and 135 DF,  p-value: 0.03584

As shown in the above results, it shows that the model is better than a model with only the intercept because at least one coefficient β is significantly different from 0 with a p -value = 0.03584. It also shows that substance-use significantly predict stress with a p-value results of 0.0186. The coefficient of substance-use is 3.9883, this means that higher substance-use score indicates higher stress level. On, the average, a one unit increase in substance-use increases its stress level by 3.9883.

check_model(multiple)

3.2 Is there a significant relationship between respondent’s level of stress and coping mechanisms?

multiple <- lm(AnTotal ~ ReappraisalMean + SocialSupportMean +ProbSolvingMean + RelMean + TolMean + Emomean + OveracMean + RelaxMean + Subsmean, data = Durias1)
summary(multiple)

Call:
lm(formula = AnTotal ~ ReappraisalMean + SocialSupportMean + 
    ProbSolvingMean + RelMean + TolMean + Emomean + OveracMean + 
    RelaxMean + Subsmean, data = Durias1)

Residuals:
   Min     1Q Median     3Q    Max 
-8.640 -3.572 -1.267  2.766 20.594 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)   
(Intercept)       -0.79897    4.46615  -0.179  0.85829   
ReappraisalMean    1.60382    1.10498   1.451  0.14897   
SocialSupportMean  1.31082    0.97808   1.340  0.18243   
ProbSolvingMean   -1.97803    1.21791  -1.624  0.10668   
RelMean           -0.32183    1.18417  -0.272  0.78621   
TolMean            0.24674    0.91544   0.270  0.78793   
Emomean            0.77602    1.25779   0.617  0.53829   
OveracMean         1.75879    1.26915   1.386  0.16809   
RelaxMean         -0.05083    1.14784  -0.044  0.96475   
Subsmean           4.47935    1.54695   2.896  0.00442 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 5.423 on 135 degrees of freedom
Multiple R-squared:  0.1414,    Adjusted R-squared:  0.08411 
F-statistic: 2.469 on 9 and 135 DF,  p-value: 0.01223

As shown in the above results, it shows that the model is better than a model with only the intercept because at least one coefficient β is significantly different from 0 with a p -value = 0.006703. It also shows that substance-use significantly predict anxiety with a p-value result of 0.00387. The coefficient of substance-use is 4.4680, this means that higher substance-use score indicates higher anxiety level. On, the average, a one unit increase in substance-use increases its anxiety level by 4.680.

Checking of Assumptions

check_model(multiple)

3. Is there a significant relationship between stress and anxiety?

cor.test(Durias1$StTotal, Durias$AnTotal)

    Pearson's product-moment correlation

data:  Durias1$StTotal and Durias$AnTotal
t = 9.743, df = 143, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.5224234 0.7204693
sample estimates:
      cor 
0.6316421 

Based on the results above, it shows that there is a positive correlation between anxiety and anxiety with a correlation value of 0.6316421. It further shows that there is a signification relationship between anxiety and stress with a p-value result of 2.2e-16, that is, 0.00000000000000022.