R Markdown

library(readxl)
mydata <- read_xlsx("./dataset copy.xlsx")
## New names:
## • `Q22a_1` -> `Q22a_1...26`
## • `Q22b_1` -> `Q22b_1...27`
## • `Q22c_1` -> `Q22c_1...28`
## • `Q22d_1` -> `Q22d_1...29`
## • `Q22e_1` -> `Q22e_1...30`
## • `Q22a_1` -> `Q22a_1...32`
## • `Q22b_1` -> `Q22b_1...33`
## • `Q22c_1` -> `Q22c_1...34`
## • `Q22d_1` -> `Q22d_1...72`
## • `Q22e_1` -> `Q22e_1...73`
mydata <- mydata[-1, ]


head(mydata)
## # A tibble: 6 × 73
##   Q8    Q66   Q10   Q12   Q11   Q48   Q48_5_text Q14a  Q14b  Q14c  Q14d  Q14e 
##   <chr> <chr> <chr> <chr> <chr> <chr> <chr>      <chr> <chr> <chr> <chr> <chr>
## 1 1     3     3     6     2     -2    -2         0     1     0     0     0    
## 2 1     2     5     6     1     1     -2         0     1     0     0     0    
## 3 1     6     5     6     1     3     -2         0     1     0     1     0    
## 4 1     2     5     6     2     -2    -2         1     0     1     1     0    
## 5 1     2     2     6     2     -2    -2         0     1     0     0     0    
## 6 1     6     7     7     2     -2    -2         0     1     0     0     0    
## # ℹ 61 more variables: Q14e_text <chr>, Q15 <chr>, Q16 <chr>, Q17 <chr>,
## #   Q18 <chr>, Q25a <chr>, Q25b <chr>, Q25c <chr>, Q25d <chr>, Q25e <chr>,
## #   Q25f <chr>, Q25g <chr>, Q25h <chr>, Q22a_1...26 <dbl>, Q22b_1...27 <dbl>,
## #   Q22c_1...28 <dbl>, Q22d_1...29 <dbl>, Q22e_1...30 <dbl>, Q24 <chr>,
## #   Q22a_1...32 <dbl>, Q22b_1...33 <dbl>, Q22c_1...34 <dbl>, Q13 <chr>,
## #   Q20 <chr>, Q46 <chr>, Q1a_1 <dbl>, Q1b_1 <dbl>, Q1c_1 <dbl>, Q1d_1 <dbl>,
## #   Q1e_1 <dbl>, Q1f_1 <dbl>, Q2a_1 <dbl>, Q2b_1 <dbl>, Q2c_1 <dbl>, …
mydata$Q39 <- factor(mydata$Q39,
                        levels = c(1,2),
                        labels = c("Male", "Female"))

mydata$Q37 <- factor(mydata$Q37, 
                        levels = c(1, 2, 3, 4, 5, 6, 7),
                        labels = c("Less than 1,000", "1,001 - 1,300", "1,301 - 1,700", "1,701 - 2,500", "2,501 - 3,300", "More than 3,000", "Pension"))

mydata$Q41 <- factor(mydata$Q41,
                           levels = c(1, 2, 3, 4, 5, 6, 7),
                           labels = c("Unfinished Elementary", "Finished Elementary", "Vocational School", "General High School", "Undergraduate Degree", "Master's Degree", "PhD"))


 
mydata$Q42 <- factor(mydata$Q42,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Employed", "Self-Employed", "Retired", "Unemployed", "Other"))  

mydata$Q43 <- factor(mydata$Q43,
                            levels = c(1, 2, 3, 4, 5),
                            labels = c("Physical Work", "Service", "Office", "Public Sector", "Creative"))

                     


mydata$Q44 <- factor(mydata$Q44,
                             levels = c(1, 2, 3),
                             labels = c("Urban", "Suburban", "Rural"))
                             
mydata$Q45 <- factor(mydata$Q45,
                      levels = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                      labels = c("NLB", "OTP", "Unicredit", "Raiffaisen", "Gorenjska banka", "Intesa Sanpaolo", "Delavska hranilnica", "Revolut", "N26", "Other"))     

mydata$Q11 <- factor(mydata$Q11,
                                    levels = c(1, 2),
                                    labels = c("No", "Yes"))   
mydata$Q13 <- factor(mydata$Q13,
                      levels = c(1, 2, 3, 4, 5, 6, 7),
                      labels = c("Never", "Less than once a month", "Once a month", "2-3 times a month", "Once a week", "2-3 times a week","Every day"))  

mydata$Q20 <- factor(mydata$Q20,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Less than 50", "50-100", "101-300", "301-500", "More than 500"))
mydata$Q40 <- as.numeric(as.character(mydata$Q40))



mydata$Q40 <- 2025 - mydata$Q40
head(mydata)
## # A tibble: 6 × 73
##   Q8    Q66   Q10   Q12   Q11   Q48   Q48_5_text Q14a  Q14b  Q14c  Q14d  Q14e 
##   <chr> <chr> <chr> <chr> <fct> <chr> <chr>      <chr> <chr> <chr> <chr> <chr>
## 1 1     3     3     6     Yes   -2    -2         0     1     0     0     0    
## 2 1     2     5     6     No    1     -2         0     1     0     0     0    
## 3 1     6     5     6     No    3     -2         0     1     0     1     0    
## 4 1     2     5     6     Yes   -2    -2         1     0     1     1     0    
## 5 1     2     2     6     Yes   -2    -2         0     1     0     0     0    
## 6 1     6     7     7     Yes   -2    -2         0     1     0     0     0    
## # ℹ 61 more variables: Q14e_text <chr>, Q15 <chr>, Q16 <chr>, Q17 <chr>,
## #   Q18 <chr>, Q25a <chr>, Q25b <chr>, Q25c <chr>, Q25d <chr>, Q25e <chr>,
## #   Q25f <chr>, Q25g <chr>, Q25h <chr>, Q22a_1...26 <dbl>, Q22b_1...27 <dbl>,
## #   Q22c_1...28 <dbl>, Q22d_1...29 <dbl>, Q22e_1...30 <dbl>, Q24 <chr>,
## #   Q22a_1...32 <dbl>, Q22b_1...33 <dbl>, Q22c_1...34 <dbl>, Q13 <fct>,
## #   Q20 <fct>, Q46 <chr>, Q1a_1 <dbl>, Q1b_1 <dbl>, Q1c_1 <dbl>, Q1d_1 <dbl>,
## #   Q1e_1 <dbl>, Q1f_1 <dbl>, Q2a_1 <dbl>, Q2b_1 <dbl>, Q2c_1 <dbl>, …
mydata$Q25a <- factor(mydata$Q25a,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25b <- factor(mydata$Q25b,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25c <- factor(mydata$Q25c,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25d <- factor(mydata$Q25d,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25e <- factor(mydata$Q25e,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25f <- factor(mydata$Q25f,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25g <- factor(mydata$Q25g,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
mydata$Q25h <- factor(mydata$Q25h,
                      levels = c(1, 2, 3, 4, 5),
                      labels = c("Cash only", "Mostly cash","Half-half", "Mostly digital","Digital only"))
summary(mydata[c(35,36,62,63,65,66,68,69,70)])
##                      Q13                Q20         Q39          Q40       
##  Never                 : 3   Less than 50 :88   Male  :63   Min.   :20.00  
##  Less than once a month:40   50-100       :43   Female:89   1st Qu.:26.00  
##  Once a month          :45   101-300      :20               Median :38.00  
##  2-3 times a month     :39   301-500      : 0               Mean   :39.02  
##  Once a week           :11   More than 500: 1               3rd Qu.:49.00  
##  2-3 times a week      :11                                  Max.   :65.00  
##  Every day             : 3                                                 
##                     Q41                Q42                 Q43    
##  Unfinished Elementary: 0   Employed     :118   Physical Work:14  
##  Finished Elementary  : 2   Self-Employed: 25   Service      :25  
##  Vocational School    : 9   Retired      :  0   Office       :48  
##  General High School  :43   Unemployed   :  9   Public Sector:29  
##  Undergraduate Degree :55   Other        :  0   Creative     : 2  
##  Master's Degree      :35                       NA's         :34  
##  PhD                  : 8                                         
##        Q44                      Q45    
##  Urban   :77   NLB                :56  
##  Suburban:43   OTP                :40  
##  Rural   :32   Intesa Sanpaolo    :19  
##                Unicredit          :11  
##                Delavska hranilnica:10  
##                Revolut            : 8  
##                (Other)            : 8
mydata$Q46 <- as.numeric(as.character(mydata$Q46))

summary(mydata[, c(32,33,34,72,73,37,63)])
##   Q22a_1...32     Q22b_1...33     Q22c_1...34     Q22d_1...72   
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:4.000   1st Qu.:5.000   1st Qu.:3.000   1st Qu.:3.000  
##  Median :5.000   Median :5.500   Median :4.000   Median :5.000  
##  Mean   :4.967   Mean   :5.217   Mean   :4.211   Mean   :4.632  
##  3rd Qu.:6.000   3rd Qu.:7.000   3rd Qu.:5.000   3rd Qu.:6.000  
##  Max.   :7.000   Max.   :7.000   Max.   :7.000   Max.   :7.000  
##   Q22e_1...73         Q46              Q40       
##  Min.   :1.000   Min.   :  1.00   Min.   :20.00  
##  1st Qu.:5.000   1st Qu.: 66.50   1st Qu.:26.00  
##  Median :6.000   Median : 79.50   Median :38.00  
##  Mean   :5.421   Mean   : 72.51   Mean   :39.02  
##  3rd Qu.:7.000   3rd Qu.: 88.50   3rd Qu.:49.00  
##  Max.   :7.000   Max.   :100.00   Max.   :65.00

Q22:Kako pomembni so naslednji dejavniki za uporabo digitalnih plačil? (1-7)

Q22a_1…32:Cashback

Ho: Cashback does not influence the use of digital payments.

H1: Cashback positively influence the use of digital payments.

We reject the null hypotheses. p-value < 0.001

#cashback
mydata$Q22a_1...32 <- as.numeric(as.character(mydata$Q22a_1...32))
shapiro.test(mydata$Q22a_1...32)
## 
##  Shapiro-Wilk normality test
## 
## data:  mydata$Q22a_1...32
## W = 0.89678, p-value = 7.351e-09
wilcox_test_result <- wilcox.test(mydata$Q22a_1...32, 
                                  mu = 4, 
                                  alternative = "greater", 
                                  correct = FALSE)


print(wilcox_test_result)
## 
##  Wilcoxon signed rank test
## 
## data:  mydata$Q22a_1...32
## V = 7673, p-value = 1.034e-09
## alternative hypothesis: true location is greater than 4
library(effectsize)
effectsize(wilcox.test(mydata$Q22a_1...32,
              mu=4,
              alternative = "greater",
              correct=FALSE))
## r (rank biserial) |       95% CI
## --------------------------------
## 0.58              | [0.46, 1.00]
## 
## - Deviation from a difference of 4.
## - One-sided CIs: upper bound fixed at [1.00].
interpret_rank_biserial(0.58, rules="funder2019")
## [1] "very large"
## (Rules: funder2019)

Q22b_1…33:Workshops about digital payments

Ho:Workshops about digital payments does not influence the use of digital payments.

H1:Workshops about digital payments positively influence the use of digital payments.

We reject the null hypotheses. p-value < 0.001

#workshops
mydata$Q22b_1...33 <- as.numeric(as.character(mydata$Q22b_1...33))
shapiro.test(mydata$Q22b_1...33)
## 
##  Shapiro-Wilk normality test
## 
## data:  mydata$Q22b_1...33
## W = 0.85167, p-value = 4.361e-11
wilcox_test_result <- wilcox.test(mydata$Q22b_1...33, 
                                  mu = 4, 
                                  alternative = "greater", 
                                  correct = FALSE)


print(wilcox_test_result)
## 
##  Wilcoxon signed rank test
## 
## data:  mydata$Q22b_1...33
## V = 8561.5, p-value = 6.524e-12
## alternative hypothesis: true location is greater than 4
effectsize(wilcox.test(mydata$Q22b_1...33,
              mu=4,
              alternative = "greater",
              correct=FALSE))
## r (rank biserial) |       95% CI
## --------------------------------
## 0.64              | [0.54, 1.00]
## 
## - Deviation from a difference of 4.
## - One-sided CIs: upper bound fixed at [1.00].
interpret_rank_biserial(0.64, rules="funder2019")
## [1] "very large"
## (Rules: funder2019)

Q22c_1…34:Loyalty programs

Ho:Loyalty programs does not influence the use of digital payments.

H1:Loyalty programs positively influence the use of digital payments.

We reject the null hypotheses. p-value < 0.071

#frequent purchase
mydata$Q22c_1...34 <- as.numeric(as.character(mydata$Q22c_1...34))
shapiro.test(mydata$Q22c_1...34)
## 
##  Shapiro-Wilk normality test
## 
## data:  mydata$Q22c_1...34
## W = 0.94141, p-value = 5.926e-06
wilcox_test_result <- wilcox.test(mydata$Q22c_1...34, 
                                  mu = 4, 
                                  alternative = "greater", 
                                  correct = FALSE)


print(wilcox_test_result)
## 
##  Wilcoxon signed rank test
## 
## data:  mydata$Q22c_1...34
## V = 4876.5, p-value = 0.07099
## alternative hypothesis: true location is greater than 4
effectsize(wilcox.test(mydata$Q22c_1...34,
              mu=4,
              alternative = "greater",
              correct=FALSE))
## r (rank biserial) |        95% CI
## ---------------------------------
## 0.15              | [-0.02, 1.00]
## 
## - Deviation from a difference of 4.
## - One-sided CIs: upper bound fixed at [1.00].
interpret_rank_biserial(0.15, rules="funder2019")
## [1] "small"
## (Rules: funder2019)

Q22d_1…72:Special discounts

Ho:Special discounts does not influence the use of digital payments.

H1:Special discounts positively influence the use of digital payments.

We reject the null hypotheses. p-value < 0.001

#warranty, mercator
mydata$Q22d_1...72 <- as.numeric(as.character(mydata$Q22d_1...72))
shapiro.test(mydata$Q22d_1...72)
## 
##  Shapiro-Wilk normality test
## 
## data:  mydata$Q22d_1...72
## W = 0.89361, p-value = 4.913e-09
wilcox_test_result <- wilcox.test(mydata$Q22d_1...72, 
                                  mu = 4, 
                                  alternative = "greater", 
                                  correct = FALSE)


print(wilcox_test_result)
## 
##  Wilcoxon signed rank test
## 
## data:  mydata$Q22d_1...72
## V = 6861, p-value = 5.215e-05
## alternative hypothesis: true location is greater than 4
effectsize(wilcox.test(mydata$Q22d_1...72,
              mu=4,
              alternative = "greater",
              correct=FALSE))
## r (rank biserial) |       95% CI
## --------------------------------
## 0.37              | [0.23, 1.00]
## 
## - Deviation from a difference of 4.
## - One-sided CIs: upper bound fixed at [1.00].
interpret_rank_biserial(0.37, rules="funder2019")
## [1] "large"
## (Rules: funder2019)

Q22e_1…73:Improved security

Ho:Improved security does not influence the use of digital payments.

H1:Improved security positively influence the use of digital payments.

We reject the null hypotheses. p-value < 0.001

#better security
mydata$Q22e_1...73 <- as.numeric(as.character(mydata$Q22e_1...73))
shapiro.test(mydata$Q22e_1...73)
## 
##  Shapiro-Wilk normality test
## 
## data:  mydata$Q22e_1...73
## W = 0.81335, p-value = 1.201e-12
wilcox_test_result <- wilcox.test(mydata$Q22e_1...73, 
                                  mu = 4, 
                                  alternative = "greater", 
                                  correct = FALSE)
print(wilcox_test_result)
## 
##  Wilcoxon signed rank test
## 
## data:  mydata$Q22e_1...73
## V = 8884.5, p-value = 5.76e-14
## alternative hypothesis: true location is greater than 4
effectsize(wilcox.test(mydata$Q22e_1...73,
              mu=4,
              alternative = "greater",
              correct=FALSE))
## r (rank biserial) |       95% CI
## --------------------------------
## 0.70              | [0.61, 1.00]
## 
## - Deviation from a difference of 4.
## - One-sided CIs: upper bound fixed at [1.00].
interpret_rank_biserial(0.70, rules="funder2019")
## [1] "very large"
## (Rules: funder2019)

Q46:Usage of digital payments relative to cash(0-100)

Q39:Gender (0-Male,1-Female)

Ho:There is no significant difference in usage of digital payments between male and female.

H1:Male use more digital payments than female, compared to cash usage.

We do not reject the null hypotheses. p-value > 0.10

#gender, digital%
wilcox_test_result <- wilcox.test(Q46 ~ Q39, 
                                  data = mydata, 
                                  alternative = "greater", 
                                  exact = FALSE)

print(wilcox_test_result)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Q46 by Q39
## W = 2501.5, p-value = 0.8713
## alternative hypothesis: true location shift is greater than 0

Q43:What is your occupation? (Office based, Physical work, Public sector)

Ho:There is no difference in usage of digital payments among different occupations.

H1:There is a significant difference in usage of digital payments among different occupations.

We reject the null hypotheses. p-value < 0.058

Office based occupations use significantly more digital payments as physical work occupations. p-value < 0.012

kruskal.test(Q46 ~ Q43, data = mydata)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  Q46 by Q43
## Kruskal-Wallis chi-squared = 9.1442, df = 4, p-value = 0.05759
library(rstatix)
## 
## Attaching package: 'rstatix'
## The following objects are masked from 'package:effectsize':
## 
##     cohens_d, eta_squared
## The following object is masked from 'package:stats':
## 
##     filter
kruskal_effsize(Q46 ~ Q43,
                data = mydata)
## # A tibble: 1 × 5
##   .y.       n effsize method  magnitude
## * <chr> <int>   <dbl> <chr>   <ord>    
## 1 Q46     152  0.0350 eta2[H] small
library(coin)
## Loading required package: survival
## 
## Attaching package: 'coin'
## The following objects are masked from 'package:rstatix':
## 
##     chisq_test, friedman_test, kruskal_test, sign_test, wilcox_test
mydata$Q46 <- as.numeric(as.character(mydata$Q46))


pairwise_results <- pairwise_wilcox_test(Q46 ~ Q43, 
                                         paired=FALSE,
                                         data = mydata, 
                                         p.adjust.method = "bonferroni")
print(pairwise_results)
## # A tibble: 10 × 9
##    .y.   group1        group2        n1    n2 statistic     p p.adj p.adj.signif
##  * <chr> <chr>         <chr>      <int> <int>     <dbl> <dbl> <dbl> <chr>       
##  1 Q46   Physical Work Service       14    25      189  0.692 1     ns          
##  2 Q46   Physical Work Office        14    48      224  0.06  0.599 ns          
##  3 Q46   Physical Work Public Se…    14    29      154. 0.203 1     ns          
##  4 Q46   Physical Work Creative      14     2       14  1     1     ns          
##  5 Q46   Service       Office        25    48      378  0.01  0.099 ns          
##  6 Q46   Service       Public Se…    25    29      260. 0.078 0.78  ns          
##  7 Q46   Service       Creative      25     2       24  0.963 1     ns          
##  8 Q46   Office        Public Se…    48    29      785  0.351 1     ns          
##  9 Q46   Office        Creative      48     2       67  0.358 1     ns          
## 10 Q46   Public Sector Creative      29     2       35  0.658 1     ns