Skip to content

Instantly share code, notes, and snippets.

@vanatteveldt
Last active February 22, 2023 08:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vanatteveldt/4892f92e2c53b155993dc2317d94e491 to your computer and use it in GitHub Desktop.
Save vanatteveldt/4892f92e2c53b155993dc2317d94e491 to your computer and use it in GitHub Desktop.
* Encoding: UTF-8.
DATASET ACTIVATE DataSet1.
FREQUENCIES VARIABLES=Q14 Q37 A4.1_ A4.2_ A4.3_ Q37_1 Q37_2 Q37_3 Q37_4 Q37_5 Q37_6 Q37_7 Q37_8
Q38_1 Q38_2 Q38_3 Q38_4 Q38_5 Q38_6 Q38_7 Q38_8 Q38_9 Q40_1 Q40_2 Q40_3 Q40_4 Q40_5 Q40_6 Q40_7
Q40_8 Q15
/STATISTICS=MEAN MEDIAN MODE
/ORDER=ANALYSIS.
*** hieronder de variabele veranderd (andere naam)
RENAME VARIABLES
Q37= Controle_vraag
A4.1_= Leeftijd.
A4.2_ = Gender.
RENAME VARIABLES
A4.3_ = Opleidingsniveau.
RENAME VARIABLES
Q37_1 = Vertrouwen_1.
RENAME VARIABLES
Q37_2 = Vertrouwen_2
Q37_3 = Vertrouwen_3.
RENAME VARIABLES
Q37_4 = Vertrouwen_4
Q37_5 = Vertrouwen_5
Q37_6 = Vertrouwen_6
Q37_7 = Vertrouwen_7
Q37_8 = Vertrouwen_8.
RENAME VARIABLES
Q38_1 = Privacygevoeligheid_1
Q38_2 = Privacygevoeligheid_2
Q38_3 = Privacygevoeligheid_3
Q38_4 = Privacygevoeligheid_4.
RENAME VARIABLES
Q38_5 = Privacygevoeligheid_5
Q38_6 = Privacygevoeligheid_6
Q38_7 = Privacygevoeligheid_7
Q38_8 = Privacygevoeligheid_8
Q38_9 = Privacygevoeligheid_9.
RENAME VARIABLES
Q40_1 = Perceptie_medewerkers_1
Q40_2 = Perceptie_medewerkers_2
Q40_3 = Perceptie_medewerkers_3
Q40_4 = Perceptie_medewerkers_4
Q40_5 = Perceptie_medewerkers_5
Q40_6 = Perceptie_medewerkers_6
Q40_7 = Perceptie_medewerkers_7
Q40_8 = Perceptie_medewerkers_8.
** hierboven namen veranderd.
DATASET ACTIVATE DataSet3.
RELIABILITY
/VARIABLES=Vertrouwen_1 Vertrouwen_2 Vertrouwen_3 Vertrouwen_4 Vertrouwen_5 Vertrouwen_6
Vertrouwen_7 Vertrouwen_8
/SCALE('ALL VARIABLES') ALL
/MODEL=ALPHA
/STATISTICS=SCALE
/SUMMARY=TOTAL.
** betrouwbaarheidsanalyse 'vertrouwen' cronbach's alpha .897
RELIABILITY
/VARIABLES=Privacygevoeligheid_1 Privacygevoeligheid_2 Privacygevoeligheid_3
Privacygevoeligheid_4 Privacygevoeligheid_5 Privacygevoeligheid_6 Privacygevoeligheid_7
Privacygevoeligheid_8 Privacygevoeligheid_9
/SCALE('ALL VARIABLES') ALL
/MODEL=ALPHA
/STATISTICS=SCALE
/SUMMARY=TOTAL.
*** betrouwbaarheidsanalyse 'privacygevoeligheid' cronbach's alpha .849
RELIABILITY
/VARIABLES=Perceptie_medewerkers_1 Perceptie_medewerkers_2 Perceptie_medewerkers_3
Perceptie_medewerkers_4 Perceptie_medewerkers_5 Perceptie_medewerkers_6 Perceptie_medewerkers_7
Perceptie_medewerkers_8
/SCALE('ALL VARIABLES') ALL
/MODEL=ALPHA
/STATISTICS=SCALE
/SUMMARY=TOTAL.
** betrouwbaarheidsanalyse 'perceptie medewerkers' cronbach's alpha .887
COMPUTE vertrouwen=MEAN(Vertrouwen_1,Vertrouwen_2,Vertrouwen_3,Vertrouwen_4,Vertrouwen_5,
Vertrouwen_6,Vertrouwen_7,Vertrouwen_8).
EXECUTE.
** schaal van vertrouwen
FREQUENCIES VARIABLES=vetrouwen
/STATISTICS=STDDEV MEAN MEDIAN MODE
/ORDER=ANALYSIS.
**uitrekenen van het gemiddelde etc vertrouwen (met de juiste schaal, onderaan te vinden in de variable view)
COMPUTE privacygevoeligheid=MEAN(Privacygevoeligheid_1,Privacygevoeligheid_2,Privacygevoeligheid_3,
Privacygevoeligheid_4,Privacygevoeligheid_5,Privacygevoeligheid_6,Privacygevoeligheid_7,
Privacygevoeligheid_8,Privacygevoeligheid_9).
EXECUTE.
** schaal van privacy gevoeligheid
FREQUENCIES VARIABLES=privacygevoeligheid
/STATISTICS=STDDEV MEAN MEDIAN MODE
/ORDER=ANALYSIS.
**uitrekenen gemiddelde van privacy (met de juiste schaal, onderaan te vinden in de variable view)
COMPUTE perceptie_medewerkers=MEAN(Perceptie_medewerkers_1,Perceptie_medewerkers_2,
Perceptie_medewerkers_3,Perceptie_medewerkers_4,Perceptie_medewerkers_5,Perceptie_medewerkers_6,
Perceptie_medewerkers_7,Perceptie_medewerkers_8).
EXECUTE.
** schaal van perceptie
FREQUENCIES VARIABLES=perceptie_medewerkers
/STATISTICS=STDDEV MEAN MEDIAN MODE
/ORDER=ANALYSIS.
** uitrekenen gemiddelde etc van perceptie medewerkers (met de juiste schaal, onderaan te vinden in de variable view)
DATASET ACTIVATE DataSet1.
CORRELATIONS
/VARIABLES=Vertrouwen_1 Vertrouwen_2 Vertrouwen_3 Vertrouwen_4 Vertrouwen_5 Vertrouwen_6
Vertrouwen_7 Vertrouwen_8 Privacygevoeligheid_1 Privacygevoeligheid_2 Privacygevoeligheid_3
Privacygevoeligheid_4 Privacygevoeligheid_5 Privacygevoeligheid_6 Privacygevoeligheid_7
Privacygevoeligheid_8 Privacygevoeligheid_9 Perceptie_medewerkers_1 Perceptie_medewerkers_2
Perceptie_medewerkers_3 Perceptie_medewerkers_4 Perceptie_medewerkers_5 Perceptie_medewerkers_6
Perceptie_medewerkers_7 Perceptie_medewerkers_8
/PRINT=TWOTAIL NOSIG FULL
/STATISTICS DESCRIPTIVES
/MISSING=PAIRWISE.
** correlatiematrix poging --> mislukt
CORRELATIONS
/VARIABLES=privacygevoeligheid vertrouwen perceptie_medewerkers
/PRINT=TWOTAIL NOSIG FULL
/STATISTICS DESCRIPTIVES
/MISSING=PAIRWISE.
** correlatiematrix van de schalen
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS CI(95) R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT vertrouwen
/METHOD=ENTER privacygevoeligheid perceptie_medewerkers.
** regressieanalyse poging --> gelukt
DATASET ACTIVATE DataSet1.
CORRELATIONS
/VARIABLES=vertrouwen privacygevoeligheid perceptie_medewerkers Gender Opleidingsniveau
/PRINT=TWOTAIL NOSIG FULL
/STATISTICS DESCRIPTIVES
/MISSING=PAIRWISE.
** correlatiematrix incl gender + opleidingsniveau
CORRELATIONS
/VARIABLES=vertrouwen privacygevoeligheid perceptie_medewerkers Leeftijd Gender Opleidingsniveau
/PRINT=TWOTAIL NOSIG FULL
/STATISTICS DESCRIPTIVES
/MISSING=PAIRWISE.
** nieuwe correlatiematrix incl leeftijd
DATASET ACTIVATE DataSet1.
DESCRIPTIVES VARIABLES=Leeftijd
/STATISTICS=MEAN STDDEV MIN MAX.
** gemiddelde leeftijd berekend
T-TEST GROUPS=Gender(1 2)
/MISSING=ANALYSIS
/VARIABLES=vertrouwen
/ES DISPLAY(TRUE)
/CRITERIA=CI(.95).
** t-test uitgevoerd gender vergelijken met vertrouwen.
# The goal: OLS regression of vertrouwen ~ privacygevoeligheid + perceptie_medewerkers
# Steps to be taken
# - read in data
# - data cleaning: select and rename columns
# - check reliability (cronbach's alpha) and create scales
# - compute pairwise correlations
# - regression analysis
# Read in data
library(haven)
d = read_sav("~/Downloads/Project 2 GGD_February 21, 2023_03.46.sav")
View(d)
# (1) Data cleaning
# RENAME VARIABLES
# Q37_1 = Vertrouwen_1.
# Q37_2 = Vertrouwen_2
# Q37_3 = Vertrouwen_3.
# Q37_4 = Vertrouwen_4
# Q37_5 = Vertrouwen_5
# Q37_6 = Vertrouwen_6
# Q37_7 = Vertrouwen_7
# Q37_8 = Vertrouwen_8.
# RENAME VARIABLES
# Q38_1 = Privacygevoeligheid_1
# Q38_2 = Privacygevoeligheid_2
# Q38_3 = Privacygevoeligheid_3
# Q38_4 = Privacygevoeligheid_4.
# Q38_5 = Privacygevoeligheid_5
# Q38_6 = Privacygevoeligheid_6
# Q38_7 = Privacygevoeligheid_7
# Q38_8 = Privacygevoeligheid_8
# Q38_9 = Privacygevoeligheid_9.
# RENAME VARIABLES
# Q40_1 = Perceptie_medewerkers_1
# Q40_2 = Perceptie_medewerkers_2
# Q40_3 = Perceptie_medewerkers_3
# Q40_4 = Perceptie_medewerkers_4
# Q40_5 = Perceptie_medewerkers_5
# Q40_6 = Perceptie_medewerkers_6
# Q40_7 = Perceptie_medewerkers_7
# Q40_8 = Perceptie_medewerkers_8.
library(tidyverse)
# Filter on status:
cleaned = filter(d, Status != 1)
# Note: equivalent with pipelines:
cleaned = d |> filter(status != 1)
# The 'traditional' way: Rename one by one
cleaned = select(cleaned, ResponseId,
Vertrouwen_1 = Q37_1, Vertrouwen_2 = Q37_2, Vertrouwen_3 = Q37_3, Vertrouwen_4 = Q37_4,
Vertrouwen_5 = Q37_5, Vertrouwen_6 = Q37_6, Vertrouwen_7 = Q37_7, Vertrouwen_8 = Q37_8,
Privacygevoeligheid_1 = Q38_1, Privacygevoeligheid_2 = Q38_2,Privacygevoeligheid_3 = Q38_3,Privacygevoeligheid_4 = Q38_4,
Privacygevoeligheid_5 = Q38_5, Privacygevoeligheid_6 = Q38_6,Privacygevoeligheid_7 = Q38_7,Privacygevoeligheid_8 = Q38_8, Privacygevoeligheid_9 = Q38_9,
Perceptie_medewerkers_1 = Q40_1, Perceptie_medewerkers_2 = Q40_2, Perceptie_medewerkers_3 = Q40_3, Perceptie_medewerkers_4 = Q40_4,
Perceptie_medewerkers_5 = Q40_5, Perceptie_medewerkers_6 = Q40_6, Perceptie_medewerkers_7 = Q40_7, Perceptie_medewerkers_8 = Q40_8)
# Alternatively, automatically rename and select based on prefix
cleaned = cleaned |>
rename_with(~str_replace(., "Q37", "Vertrouwen"), starts_with("Q37")) |>
rename_with(~str_replace(., "Q38", "Privacygevoeligheid"), starts_with("Q38")) |>
rename_with(~str_replace(., "Q40", "Perceptie_medewerkers"), starts_with("Q40")) |>
select(ResponseId, starts_with("Vertrouwen_"), starts_with("Privacy"), starts_with("Perceptie"))
# (2) Reliability and scale construction
# RELIABILITY /VARIABLES=Vertrouwen_1 Vertrouwen_2 Vertrouwen_3 Vertrouwen_4 Vertrouwen_5 Vertrouwen_6 Vertrouwen_7 Vertrouwen_8
# /SCALE('ALL VARIABLES') ALL
# /MODEL=ALPHA
# /STATISTICS=SCALE
# /SUMMARY=TOTAL.
# askgpt::askgpt("How do I compute cronbach's alpha in R?")
library(psych)
cleaned |> select(starts_with("Vertrouwen")) |> alpha()
cleaned |> select(starts_with("Privacygevoeligheid")) |> alpha()
cleaned |> select(starts_with("Perceptie_medewerkers")) |>alpha()
# COMPUTE vertrouwen=MEAN(Vertrouwen_1,Vertrouwen_2,Vertrouwen_3,Vertrouwen_4,Vertrouwen_5,
# Vertrouwen_6,Vertrouwen_7,Vertrouwen_8).
# etc for other variables
# The 'traditional' way:
scaled = cleaned |> mutate(
Vertrouwen = (Vertrouwen_1 + Vertrouwen_2 + Vertrouwen_3 + Vertrouwen_4 + Vertrouwen_5 + Vertrouwen_6 + Vertrouwen_7 + Vertrouwen_8)/8,
Privacygevoeligheid = (Privacygevoeligheid_1 + Privacygevoeligheid_2 + Privacygevoeligheid_3 + Privacygevoeligheid_4 +
Privacygevoeligheid_5 + Privacygevoeligheid_6 + Privacygevoeligheid_7 + Privacygevoeligheid_8 + Privacygevoeligheid_9)/9,
Perceptie_medewerkers = (Perceptie_medewerkers_1 + Perceptie_medewerkers_2 + Perceptie_medewerkers_3 + Perceptie_medewerkers_4 +
Perceptie_medewerkers_5 + Perceptie_medewerkers_6 + Perceptie_medewerkers_7 + Perceptie_medewerkers_8)
) |>
select(ResponseId, Vertrouwen, Privacygevoeligheid, Perceptie_medewerkers) |>
arrange(ResponseId)
# Using rowwise operations (needed because by default, mean takes mean across whole column)
scaled = cleaned |>
rowwise() |>
mutate(Vertrouwen=mean(c_across(Vertrouwen_1:Vertrouwen_8)),
Privacygevoeligheid=mean(c_across(Privacygevoeligheid_1:Privacygevoeligheid_9)),
Perceptie_medewerkers=mean(c_across(Perceptie_medewerkers_1:Perceptie_medewerkers_8))
) |>
select(ResponseId, Vertrouwen, Privacygevoeligheid, Perceptie_medewerkers) |>
arrange(ResponseId)
# And as another alternative, use pivoting
scaled = cleaned |>
pivot_longer(-ResponseId) |>
mutate(scale=str_remove_all(name, "_\\d")) |>
group_by(ResponseId, scale) |>
summarize(value=mean(value)) |>
pivot_wider(names_from=scale) |>
arrange(ResponseId)
# (3) Pairwise correlations
#CORRELATIONS
#/VARIABLES=privacygevoeligheid vertrouwen perceptie_medewerkers
#/PRINT=TWOTAIL NOSIG FULL
#/STATISTICS DESCRIPTIVES
#/MISSING=PAIRWISE.
scaled |> select(-ResponseId) |> cor(use = "pairwise")
cor.test(scaled$Vertrouwen, scaled$Privacygevoeligheid)
library(corrplot)
cleaned |>
select(-ResponseId) |>
cor(use = "pairwise") |>
corrplot(diag = F)
# (4) Regression
#REGRESSION
#/MISSING LISTWISE
#/STATISTICS COEFF OUTS CI(95) R ANOVA
#/CRITERIA=PIN(.05) POUT(.10)
#/NOORIGIN
#/DEPENDENT vertrouwen
#/METHOD=ENTER privacygevoeligheid perceptie_medewerkers.
m = lm(Vertrouwen ~ Privacygevoeligheid + Perceptie_medewerkers, data=scaled)
summary(m)
library(sjPlot)
sjPlot::tab_model(m, show.std=T, show.ci=F)
library(psych)
library(tidyverse)
library(haven)
d = read_sav("~/Downloads/Project 2 GGD_February 21, 2023_03.46.sav")
cleaned = d |> filter(status != 1) |>
rename_with(~str_replace(., "Q37", "Vertrouwen"), starts_with("Q37")) |>
rename_with(~str_replace(., "Q38", "Privacygevoeligheid"), starts_with("Q38")) |>
rename_with(~str_replace(., "Q40", "Perceptie_medewerkers"), starts_with("Q40")) |>
select(ResponseId, starts_with("Vertrouwen_"), starts_with("Privacy"), starts_with("Perceptie"))
cleaned |> select(starts_with("Vertrouwen")) |> alpha()
cleaned |> select(starts_with("Privacygevoeligheid")) |> alpha()
cleaned |> select(starts_with("Perceptie_medewerkers")) |>alpha()
scaled = cleaned |>
rowwise() |>
mutate(Vertrouwen=mean(c_across(Vertrouwen_1:Vertrouwen_8)),
Privacygevoeligheid=mean(c_across(Privacygevoeligheid_1:Privacygevoeligheid_9)),
Perceptie_medewerkers=mean(c_across(Perceptie_medewerkers_1:Perceptie_medewerkers_8))
) |>
select(ResponseId, Vertrouwen, Privacygevoeligheid, Perceptie_medewerkers) |>
arrange(ResponseId)
scaled |> select(-ResponseId) |> cor(use = "pairwise")
cor.test(scaled$Vertrouwen, scaled$Privacygevoeligheid)
library(corrplot)
cleaned |>
select(-ResponseId) |>
cor(use = "pairwise") |>
corrplot(diag = F)
m = lm(Vertrouwen ~ Privacygevoeligheid + Perceptie_medewerkers, data=scaled)
summary(m)
library(sjPlot)
sjPlot::tab_model(m, show.std=T, show.ci=F)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment