Pay paper draft

Author

Ole Aasvik

Published

Invalid Date

My project here we go

Først må vi laste inn datan og pakkene

library(haven)
library(dplyr)

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
library(psych)
library(car)
Loading required package: carData

Attaching package: 'car'
The following object is masked from 'package:psych':

    logit
The following object is masked from 'package:dplyr':

    recode
library(apaTables)
library(sjPlot)
library(lm.beta)
library(kableExtra)

Attaching package: 'kableExtra'
The following object is masked from 'package:dplyr':

    group_rows
raw_dataset = read_sav("data/4999 - experimental MERGE.sav")

På tide å filtrere

#Lager vector for å se på de som så social seating
raw_dataset <- raw_dataset %>%
  mutate(social_seating = ifelse(Atildeling_grupper_8 == 1 | Atildeling_grupper_8 == 2 | Atildeling_grupper_8 == 3| Atildeling_grupper_8 == 4, 1, 0))

#Lager vector for å se på de som så selvkjørende
raw_dataset <- raw_dataset %>%
  mutate(autonomous_driving = ifelse(Atildeling_grupper_8 == 1 | Atildeling_grupper_8 == 2 | Atildeling_grupper_8 == 5| Atildeling_grupper_8 == 6, 1, 0))

#Lager vector for å se på de som så ulik hudfarge
raw_dataset <- raw_dataset %>%
  mutate(ethnicity = ifelse(Atildeling_grupper_8 == 2 | Atildeling_grupper_8 == 4 | Atildeling_grupper_8 == 6| Atildeling_grupper_8 == 8, 1, 0))

#Lage tidsvariabel for filtrering
raw_dataset <-  raw_dataset %>% 
  mutate(tid = Atid_slutt.1 - Astarttid.1)

raw_dataset$tid <- abs(raw_dataset$tid) #Gjøre alle positive, noen gikk over midnatt og ble negative
raw_dataset <- raw_dataset %>% #Gjøre til numeric for å bruke i filter
  mutate(
    ASjekkSeter = as.numeric(ASjekkSeter)
  )

#Filter basert på attention check og tid brukt
filtered_data <- raw_dataset %>%
  dplyr::filter((raw_dataset$ASjekkSeter == 1 & raw_dataset$social_seating == 1) | (raw_dataset$ASjekkSeter == 2 & raw_dataset$social_seating == 0)) 
#tidfilter
filtered_data <- filtered_data %>%
  filter(tid >= 500 & tid <= 6000)
#Kjønnsfilter
filtered_data <- filtered_data %>%
  filter(Akjonn != 3)

Gi nye navn og lage indekser

#Rename columns
renamed_dataset <- filtered_data %>%
  rename(
    PAY_fast_arrival = AbetaleEkstraN1,
    PAY_PUhouse = AbetaleEkstraN2,
    PAY_sitting_alone = AbetaleEkstraN3,
    PAY_steward_onboard = AbetaleEkstraN4,
    PAY_driven_all_the_way = AbetaleEkstraN5,
    age = AAlder,
    gender = Akjonn, #kanskje må det filtreres ut helt de som svart "annet" på kjønn. check
    public_transport = AvanligKollektiv
  )


#Lister for rekoding og generell rekoding
recode6to3 <- c("PAY_fast_arrival", "PAY_PUhouse", "PAY_sitting_alone", "PAY_steward_onboard", "PAY_driven_all_the_way","AMAVA2N16", "AMAVA2N17", "AMAVA2N18")
recode3toNA <- c("gender")

renamed_dataset$AbrukeACC <- ifelse(renamed_dataset$AbrukeACC == 6, 1, renamed_dataset$AbrukeACC)
renamed_dataset$AbrukeACC <- ifelse(renamed_dataset$AbrukeACC == NA, 1, renamed_dataset$AbrukeACC)

renamed_dataset$AbrukeADAS <- ifelse(renamed_dataset$AbrukeADAS == 6, 1, renamed_dataset$AbrukeADAS)
renamed_dataset$AbrukeADAS <- ifelse(renamed_dataset$AbrukeADAS == NA, 1, renamed_dataset$AbrukeADAS)

renamed_dataset$gender <- ifelse(renamed_dataset$gender == 2, 0, renamed_dataset$gender)


# Recode the value 6 to 3 for the specified columns
renamed_dataset <- renamed_dataset %>%
  mutate(across(all_of(recode6to3), ~ ifelse(. == 6, 3, .)))

#Recode 3 to NA
renamed_dataset <- renamed_dataset %>%
  mutate(across(all_of(recode3toNA), ~ ifelse(. == 3, NA, .)))

#Reverse items
renamed_dataset$AKjenneForsok_rev <- rev(renamed_dataset$AKjenneForsok)
renamed_dataset$not_use_rev <- rev(renamed_dataset$AMAVA2N18)

#Standardize items
renamed_dataset$AKjenneForsok_rev <- scale(renamed_dataset$AKjenneForsok_rev)
renamed_dataset$ATechy <- scale(renamed_dataset$ATechy)
renamed_dataset$AfolgeUtviklingN1 <- scale(renamed_dataset$AfolgeUtviklingN1)
renamed_dataset$AbrukeACC <- scale(renamed_dataset$AbrukeACC)
renamed_dataset$AbrukeADAS <- scale(renamed_dataset$AbrukeADAS)
renamed_dataset$Autdanning <- scale(renamed_dataset$Autdanning)
renamed_dataset$Ainntekt <- scale(renamed_dataset$Ainntekt)

#Public transport use
renamed_dataset$public_transport[is.na(renamed_dataset$public_transport)] <- 0
renamed_dataset$public_transport <- ifelse(renamed_dataset$public_transport > 0, 1, 0)

#Tech-savviness index
renamed_dataset <- renamed_dataset %>%
  mutate(
    tech_savviness = rowMeans(select(., ATechy, AfolgeUtviklingN1, AKjenneForsok_rev, AbrukeACC, AbrukeADAS), na.rm = TRUE)
  )

#intention to use SAVs index
renamed_dataset <- renamed_dataset %>%
  mutate(
    intention_to_use = rowMeans(select(., AMAVA2N16, AMAVA2N17, not_use_rev), na.rm = TRUE)
  )

#Socioeconomic indicator
renamed_dataset <- renamed_dataset %>%
  mutate(
    socioeconomic_indicator = rowMeans(select(., Autdanning, Ainntekt), na.rm = TRUE)
  )

#PAY mean, index of all 5 pay items
renamed_dataset <- renamed_dataset %>%
  mutate(
    pay_mean = rowMeans(select(., PAY_fast_arrival, PAY_PUhouse, PAY_sitting_alone, PAY_steward_onboard, PAY_driven_all_the_way), na.rm = TRUE)
  )

Descriptives

vars n mean sd median trimmed mad min max range skew kurtosis se
tid 1 1723 1636.69 1510.86 996.00 1320.95 406.23 501.0 5961.0 5460.0 1.72 1.30 36.40
gender 2 1723 0.64 0.48 1.00 0.68 0.00 0.0 1.0 1.0 -0.59 -1.65 0.01
age 3 1723 5.09 1.46 5.00 5.14 1.48 1.0 8.0 7.0 -0.25 -0.64 0.04
public_transport 4 1723 0.49 0.50 0.00 0.49 0.00 0.0 1.0 1.0 0.02 -2.00 0.01
tech_savviness 5 1723 0.00 0.64 0.07 0.00 0.52 -1.8 1.9 3.7 0.07 0.01 0.02
socioeconomic_indicator 6 1723 0.00 0.79 -0.16 0.04 0.89 -2.1 1.1 3.2 -0.38 -0.48 0.02
intention_to_use 7 1723 3.22 0.78 3.33 3.26 0.49 1.0 5.0 4.0 -0.52 0.19 0.02
PAY_fast_arrival 8 1723 2.95 1.07 3.00 2.97 1.48 1.0 5.0 4.0 -0.15 -0.38 0.03
PAY_PUhouse 9 1723 2.93 1.07 3.00 2.94 1.48 1.0 5.0 4.0 -0.06 -0.37 0.03
PAY_sitting_alone 10 1723 2.18 1.08 2.00 2.06 1.48 1.0 5.0 4.0 0.67 -0.17 0.03
PAY_steward_onboard 11 1723 2.48 1.22 2.00 2.37 1.48 1.0 5.0 4.0 0.44 -0.67 0.03
PAY_driven_all_the_way 12 1723 3.22 1.01 3.00 3.25 1.48 1.0 5.0 4.0 -0.30 0.02 0.02

Correlations



Means, standard deviations, and correlations with confidence intervals
 

  Variable                                  M    SD   1          2         
  1. renamed_dataset.PAY_fast_arrival       2.95 1.07                      
                                                                           
  2. renamed_dataset.PAY_PUhouse            2.93 1.07 .48**                
                                                      [.44, .51]           
                                                                           
  3. renamed_dataset.PAY_sitting_alone      2.18 1.08 .37**      .36**     
                                                      [.33, .41] [.32, .40]
                                                                           
  4. renamed_dataset.PAY_steward_onboard    2.48 1.22 .19**      .20**     
                                                      [.15, .24] [.16, .25]
                                                                           
  5. renamed_dataset.PAY_driven_all_the_way 3.22 1.01 .55**      .69**     
                                                      [.52, .58] [.66, .71]
                                                                           
  3          4         
                       
                       
                       
                       
                       
                       
                       
                       
  .25**                
  [.21, .29]           
                       
  .35**      .26**     
  [.31, .39] [.21, .30]
                       

Note. M and SD are used to represent mean and standard deviation, respectively.
Values in square brackets indicate the 95% confidence interval.
The confidence interval is a plausible range of population correlations 
that could have caused the sample correlation (Cumming, 2014).
 * indicates p < .05. ** indicates p < .01.
 

Multivariate

Hierarchical??

  PAY_fast_arrival
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 3.51 0.00 3.32 – 3.70 -0.05 – 0.05 <0.001
gender 0.04 0.02 -0.06 – 0.15 -0.03 – 0.07 0.442
Hva er din alder? -0.13 -0.17 -0.16 – -0.09 -0.22 – -0.13 <0.001
public_transport 0.10 0.05 0.00 – 0.20 0.00 – 0.10 0.042
Observations 1723
R2 / R2 adjusted 0.032 / 0.030
  PAY_fast_arrival
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 3.52 0.00 3.32 – 3.71 -0.05 – 0.05 <0.001
gender -0.02 -0.01 -0.12 – 0.09 -0.06 – 0.04 0.782
Hva er din alder? -0.12 -0.16 -0.15 – -0.08 -0.21 – -0.12 <0.001
public_transport 0.10 0.04 -0.00 – 0.19 -0.00 – 0.09 0.060
tech_savviness 0.17 0.10 0.09 – 0.25 0.05 – 0.15 <0.001
Observations 1723
R2 / R2 adjusted 0.041 / 0.039
  PAY_fast_arrival
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 2.39 0.00 2.10 – 2.67 -0.04 – 0.04 <0.001
gender -0.02 -0.01 -0.12 – 0.09 -0.06 – 0.04 0.716
Hva er din alder? -0.11 -0.15 -0.14 – -0.07 -0.19 – -0.10 <0.001
public_transport 0.03 0.01 -0.07 – 0.12 -0.03 – 0.06 0.613
tech_savviness 0.08 0.05 0.01 – 0.16 0.00 – 0.10 0.036
intention_to_use 0.34 0.25 0.28 – 0.41 0.20 – 0.30 <0.001
Observations 1723
R2 / R2 adjusted 0.100 / 0.097
Analysis of Variance Table

Model 1: PAY_fast_arrival ~ gender + age + public_transport
Model 2: PAY_fast_arrival ~ gender + age + public_transport + tech_savviness
Model 3: PAY_fast_arrival ~ gender + age + public_transport + tech_savviness + 
    intention_to_use
  Res.Df  RSS Df Sum of Sq     F  Pr(>F)    
1   1719 1909                               
2   1718 1890  1      19.2  18.6 1.7e-05 ***
3   1717 1775  1     114.7 111.0 < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ANOVA Model Comparison
Row Res.Df RSS Df Sum.of.Sq F Pr..F.
1 1719 1908.80 NA NA NA NA
2 1718 1889.62 1 19.18 18.55 0.00
3 1717 1774.88 1 114.75 111.00 0.00

Multiple, onemodel

# "PAY_fast_arrival", "PAY_PUhouse", "PAY_sitting_alone", "PAY_steward_onboard", "PAY_driven_all_the_way"

modelFA <- lm(PAY_fast_arrival  ~ gender + age + socioeconomic_indicator + public_transport + tech_savviness + intention_to_use, renamed_dataset)
  tab_model(modelFA, show.ci = 0.95, show.se = FALSE,show.std = TRUE, show.p = TRUE,show.fstat = TRUE, show.r2 = TRUE)
  PAY_fast_arrival
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 2.39 0.00 2.11 – 2.67 -0.04 – 0.04 <0.001
gender -0.02 -0.01 -0.12 – 0.09 -0.05 – 0.04 0.775
Hva er din alder? -0.10 -0.14 -0.13 – -0.07 -0.18 – -0.09 <0.001
socioeconomic_indicator 0.08 0.06 0.02 – 0.14 0.01 – 0.10 0.014
public_transport 0.02 0.01 -0.08 – 0.12 -0.04 – 0.06 0.671
tech_savviness 0.08 0.05 -0.00 – 0.15 -0.00 – 0.09 0.063
intention_to_use 0.33 0.24 0.27 – 0.40 0.20 – 0.29 <0.001
Observations 1723
R2 / R2 adjusted 0.103 / 0.100
modelPUH <- lm(PAY_PUhouse  ~ gender + age + socioeconomic_indicator + public_transport + tech_savviness + intention_to_use, renamed_dataset)
  tab_model(modelPUH, show.ci = 0.95, show.se = FALSE,show.std = TRUE, show.p = TRUE,show.fstat = TRUE, show.r2 = TRUE)
  PAY_PUhouse
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 2.01 0.00 1.72 – 2.29 -0.05 – 0.05 <0.001
gender -0.11 -0.05 -0.22 – -0.00 -0.10 – -0.00 0.042
Hva er din alder? -0.03 -0.04 -0.06 – 0.01 -0.08 – 0.01 0.122
socioeconomic_indicator 0.00 0.00 -0.06 – 0.07 -0.04 – 0.05 0.938
public_transport -0.03 -0.01 -0.13 – 0.07 -0.06 – 0.03 0.538
tech_savviness 0.09 0.05 0.01 – 0.17 0.00 – 0.10 0.036
intention_to_use 0.36 0.26 0.29 – 0.42 0.21 – 0.31 <0.001
Observations 1723
R2 / R2 adjusted 0.079 / 0.076
modelSA <- lm(PAY_sitting_alone  ~ gender + age + socioeconomic_indicator + public_transport + tech_savviness + intention_to_use, renamed_dataset)
  tab_model(modelSA, show.ci = 0.95, show.se = FALSE,show.std = TRUE, show.p = TRUE,show.fstat = TRUE, show.r2 = TRUE)
  PAY_sitting_alone
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 2.72 0.00 2.43 – 3.01 -0.05 – 0.05 <0.001
gender 0.10 0.05 -0.00 – 0.21 -0.00 – 0.09 0.060
Hva er din alder? -0.12 -0.17 -0.16 – -0.09 -0.22 – -0.12 <0.001
socioeconomic_indicator -0.02 -0.02 -0.09 – 0.04 -0.07 – 0.03 0.455
public_transport 0.01 0.01 -0.09 – 0.11 -0.04 – 0.05 0.824
tech_savviness 0.15 0.09 0.06 – 0.23 0.04 – 0.14 <0.001
intention_to_use 0.01 0.00 -0.06 – 0.07 -0.04 – 0.05 0.847
Observations 1723
R2 / R2 adjusted 0.039 / 0.036
modelSO <- lm(PAY_steward_onboard  ~ gender + age + socioeconomic_indicator + public_transport + tech_savviness + intention_to_use, renamed_dataset)
  tab_model(modelSO, show.ci = 0.95, show.se = FALSE,show.std = TRUE, show.p = TRUE,show.fstat = TRUE, show.r2 = TRUE)
  PAY_steward_onboard
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 2.87 -0.00 2.55 – 3.20 -0.05 – 0.05 <0.001
gender -0.62 -0.24 -0.74 – -0.50 -0.29 – -0.20 <0.001
Hva er din alder? 0.04 0.04 -0.00 – 0.08 -0.00 – 0.09 0.066
socioeconomic_indicator -0.16 -0.11 -0.24 – -0.09 -0.15 – -0.06 <0.001
public_transport 0.17 0.07 0.06 – 0.29 0.02 – 0.12 0.003
tech_savviness 0.00 0.00 -0.09 – 0.09 -0.05 – 0.05 0.971
intention_to_use -0.08 -0.05 -0.16 – -0.01 -0.10 – -0.01 0.030
Observations 1723
R2 / R2 adjusted 0.082 / 0.079
modelDatW <- lm(PAY_driven_all_the_way  ~ gender + age + socioeconomic_indicator + public_transport + tech_savviness + intention_to_use, renamed_dataset)
  tab_model(modelDatW, show.ci = 0.95, show.se = FALSE,show.std = TRUE, show.p = TRUE,show.fstat = TRUE, show.r2 = TRUE)
  PAY_driven_all_the_way
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 2.32 0.00 2.05 – 2.59 -0.05 – 0.05 <0.001
gender -0.12 -0.06 -0.22 – -0.02 -0.10 – -0.01 0.022
Hva er din alder? -0.02 -0.03 -0.06 – 0.01 -0.08 – 0.01 0.157
socioeconomic_indicator 0.04 0.03 -0.01 – 0.10 -0.01 – 0.08 0.142
public_transport -0.00 -0.00 -0.09 – 0.09 -0.05 – 0.05 0.988
tech_savviness 0.04 0.02 -0.04 – 0.11 -0.02 – 0.07 0.328
intention_to_use 0.34 0.26 0.28 – 0.40 0.21 – 0.31 <0.001
Observations 1723
R2 / R2 adjusted 0.081 / 0.077
# Q-Q plot for Model 1
qqnorm(residuals(modelFA), main = "Q-Q Plot for Model 1")
qqline(residuals(modelFA), col = "red")

plot(modelFA)