Load packages

library(tidyverse) ## Wrangling data
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.6
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.1     ✔ tibble    3.3.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(psych) ## basic statistics
## 
## Attaching package: 'psych'
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(rio) ## import and export datasets
library(DescTools) ## calculate Mode
## 
## Attaching package: 'DescTools'
## 
## The following objects are masked from 'package:psych':
## 
##     AUC, ICC, SD
library(readr)

import dataset

MediaMarketingDataset <- read_csv("MediaMarketingDataset.csv") 
## Rows: 20 Columns: 28
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (8): Full_Name, Background, Country, Ethnicity, Disability, Education_L...
## dbl (20): Student_ID, Age, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
head(MediaMarketingDataset)
## # A tibble: 6 × 28
##   Student_ID Full_Name   Background Country Ethnicity Disability Education_Level
##        <dbl> <chr>       <chr>      <chr>   <chr>     <chr>      <chr>          
## 1          1 Alex Johns… Urban      USA     White     None       Undergraduate  
## 2          2 Maria Chen  Internati… China   Asian     None       Graduate       
## 3          3 David Kim   Urban      USA     Asian     None       Undergraduate  
## 4          4 Sarah Ahmed Internati… UAE     Middle E… None       Graduate       
## 5          5 James Smith Rural      USA     White     None       Undergraduate  
## 6          6 Emily Davis Urban      USA     Black     None       Undergraduate  
## # ℹ 21 more variables: Age <dbl>, `Major/Field_of_Study` <chr>, Gender <chr>,
## #   Q1 <dbl>, Q2 <dbl>, Q3 <dbl>, Q4 <dbl>, Q5 <dbl>, Q6 <dbl>, Q7 <dbl>,
## #   Q8 <dbl>, Q9 <dbl>, Q10 <dbl>, Q11 <dbl>, Q12 <dbl>, Q13 <dbl>, Q14 <dbl>,
## #   Q15 <dbl>, Q16 <dbl>, Q17 <dbl>, Q18 <dbl>
response_data <- MediaMarketingDataset %>%
  select(Q1:Q18)
response_data %>%
  describe()
##     vars  n mean   sd median trimmed  mad min max range  skew kurtosis   se
## Q1     1 20 3.50 1.19    4.0    3.50 1.48   2   5     3 -0.09    -1.61 0.27
## Q2     2 20 3.30 0.98    3.0    3.25 1.48   2   5     3  0.06    -1.22 0.22
## Q3     3 20 3.35 0.67    3.0    3.44 1.48   2   4     2 -0.47    -0.93 0.15
## Q4     4 20 3.95 1.15    4.0    4.06 1.48   2   5     3 -0.51    -1.33 0.26
## Q5     5 20 4.25 0.85    4.5    4.31 0.74   3   5     2 -0.46    -1.53 0.19
## Q6     6 20 4.30 0.86    5.0    4.38 0.00   3   5     2 -0.57    -1.48 0.19
## Q7     7 20 4.20 1.01    4.5    4.38 0.74   2   5     3 -0.97    -0.30 0.22
## Q8     8 20 3.55 1.43    4.0    3.69 1.48   1   5     4 -0.45    -1.35 0.32
## Q9     9 20 4.05 1.05    4.0    4.19 1.48   2   5     3 -0.61    -1.05 0.23
## Q10   10 20 3.30 0.98    3.0    3.25 1.48   2   5     3  0.06    -1.22 0.22
## Q11   11 20 3.35 0.67    3.0    3.44 1.48   2   4     2 -0.47    -0.93 0.15
## Q12   12 20 2.55 1.15    3.0    2.56 1.48   1   4     3 -0.12    -1.50 0.26
## Q13   13 20 4.45 0.76    5.0    4.56 0.00   3   5     2 -0.87    -0.81 0.17
## Q14   14 20 4.55 0.76    5.0    4.69 0.00   3   5     2 -1.19    -0.27 0.17
## Q15   15 20 2.30 0.47    2.0    2.25 0.00   2   3     1  0.81    -1.41 0.11
## Q16   16 20 1.50 0.51    1.5    1.50 0.74   1   2     1  0.00    -2.10 0.11
## Q17   17 20 2.40 0.50    2.0    2.38 0.00   2   3     1  0.38    -1.95 0.11
## Q18   18 20 2.10 1.12    2.0    2.00 1.48   1   4     3  0.46    -1.30 0.25

Mode

response_data %>%
  pull(Q12) %>%
  Mode()
## [1] 3
## attr(,"freq")
## [1] 6

Histogram

response_data %>%
  pull(Q12) %>%
  hist()

Boxplot

response_data %>%
  pull(Q12) %>%
  boxplot()

Reliability

MediaMarketingDataset %>%
  select(Q1:Q18) %>%
  alpha ()
## Warning in cor.smooth(r): Matrix was not positive definite, smoothing was done
## 
## Reliability analysis   
## Call: alpha(x = .)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase mean   sd median_r
##       0.97      0.97       1      0.63  31 0.0073  3.4 0.75     0.76
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.95  0.97  0.99
## Duhachek  0.95  0.97  0.98
## 
##  Reliability if an item is dropped:
##     raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## Q1       0.97      0.97    1.00      0.63  29   0.0081 0.087  0.76
## Q2       0.97      0.97    1.00      0.62  28   0.0081 0.087  0.75
## Q3       0.97      0.97    1.00      0.62  28   0.0079 0.091  0.75
## Q4       0.96      0.96    0.99      0.62  27   0.0085 0.087  0.74
## Q5       0.97      0.97    1.00      0.62  28   0.0081 0.089  0.75
## Q6       0.97      0.97    1.00      0.62  28   0.0080 0.091  0.74
## Q7       0.97      0.97    1.00      0.62  28   0.0078 0.093  0.76
## Q8       0.97      0.96    1.00      0.62  27   0.0090 0.090  0.74
## Q9       0.96      0.97    1.00      0.62  28   0.0083 0.087  0.75
## Q10      0.97      0.97    1.00      0.62  28   0.0081 0.087  0.75
## Q11      0.97      0.97    0.99      0.63  28   0.0080 0.087  0.75
## Q12      0.97      0.97    1.00      0.62  28   0.0083 0.088  0.74
## Q13      0.97      0.97    1.00      0.62  28   0.0079 0.092  0.75
## Q14      0.97      0.97    0.99      0.64  30   0.0073 0.095  0.79
## Q15      0.97      0.97    1.00      0.69  38   0.0068 0.063  0.79
## Q16      0.97      0.97    1.00      0.64  30   0.0076 0.092  0.79
## Q17      0.97      0.97    0.99      0.68  37   0.0068 0.072  0.79
## Q18      0.97      0.97    1.00      0.67  35   0.0057 0.085  0.80
## 
##  Item statistics 
##      n raw.r std.r r.cor r.drop mean   sd
## Q1  20  0.91  0.88  0.88   0.89  3.5 1.19
## Q2  20  0.92  0.90  0.89   0.91  3.3 0.98
## Q3  20  0.90  0.91  0.91   0.89  3.4 0.67
## Q4  20  0.97  0.96  0.97   0.97  4.0 1.15
## Q5  20  0.92  0.91  0.92   0.91  4.2 0.85
## Q6  20  0.91  0.92  0.92   0.90  4.3 0.86
## Q7  20  0.89  0.90  0.90   0.87  4.2 1.01
## Q8  20  0.98  0.98  0.98   0.98  3.5 1.43
## Q9  20  0.95  0.94  0.94   0.94  4.0 1.05
## Q10 20  0.92  0.90  0.89   0.91  3.3 0.98
## Q11 20  0.91  0.90  0.90   0.90  3.4 0.67
## Q12 20  0.94  0.92  0.92   0.93  2.5 1.15
## Q13 20  0.90  0.90  0.90   0.89  4.5 0.76
## Q14 20  0.73  0.75  0.75   0.71  4.5 0.76
## Q15 20  0.22  0.27  0.27   0.18  2.3 0.47
## Q16 20  0.80  0.80  0.80   0.78  1.5 0.51
## Q17 20  0.29  0.34  0.34   0.25  2.4 0.50
## Q18 20  0.47  0.46  0.45   0.40  2.1 1.12
## 
## Non missing response frequency for each item
##        1    2    3    4    5 miss
## Q1  0.00 0.30 0.15 0.30 0.25    0
## Q2  0.00 0.25 0.30 0.35 0.10    0
## Q3  0.00 0.10 0.45 0.45 0.00    0
## Q4  0.00 0.15 0.20 0.20 0.45    0
## Q5  0.00 0.00 0.25 0.25 0.50    0
## Q6  0.00 0.00 0.25 0.20 0.55    0
## Q7  0.00 0.10 0.10 0.30 0.50    0
## Q8  0.10 0.20 0.10 0.25 0.35    0
## Q9  0.00 0.10 0.20 0.25 0.45    0
## Q10 0.00 0.25 0.30 0.35 0.10    0
## Q11 0.00 0.10 0.45 0.45 0.00    0
## Q12 0.25 0.20 0.30 0.25 0.00    0
## Q13 0.00 0.00 0.15 0.25 0.60    0
## Q14 0.00 0.00 0.15 0.15 0.70    0
## Q15 0.00 0.70 0.30 0.00 0.00    0
## Q16 0.50 0.50 0.00 0.00 0.00    0
## Q17 0.00 0.60 0.40 0.00 0.00    0
## Q18 0.40 0.25 0.20 0.15 0.00    0