# Pakete laden
pacman::p_load(tidyverse
,haven
,psych
,corx
,labelled
,desctable
,sjPlot
,lubridate
,car
,lavaan
,lavaanPlot
,emmeans
,lmerTest
,jtools) # Hier werden die Pakete geladen
# Daten importieren
load("Data/d_incl_scores.Rda")
# erleichternde Funktionen:
cor_apa <- function(d) {
d %>%
as.matrix() %>%
corx(
triangle = "lower",
stars = c(.05, .01, .001),
describe = c("mean", "sd")
) %>%
as.data.frame(.["apa"])
}
drop_labels <- function(d) {
d %>% mutate(across(where(is.labelled), as.numeric))
}
# Nochmalige Datenbereinigung vor der Auswertung, damit keine ungeeigneten Datensätze in die Berechnungen/Hypothesenprüfung eingehen:
# zusätzlich: Variable für Klimaangst (insgesamt = Mittelwert der Mittelwerte)
d <- d %>%
mutate(
anx_gesamt = rowMeans(
select(., anx_v_aff_mean, anx_v_bee_mean, anx_v_beh_mean,
anx_v_cog_mean, anx_v_phy_mean),
na.rm = TRUE
)
)
summary(d$anx_gesamt)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.000 2.000 2.700 2.802 3.550 7.000 4
d %>%
filter(is.na(anx_gesamt))
# A tibble: 4 × 124
lfdn duration.t1 sona_surveycode consent_participation klima_wiss1
<dbl> <dbl> <chr> <dbl+lbl> <dbl+lbl>
1 646 376 "" 1 [Ja] 1 [correct]
2 801 459 "" 1 [Ja] NA
3 950 299 "" 1 [Ja] NA
4 1065 NA "" 1 [Ja] NA
# ℹ 119 more variables: klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>,
# klima_eins1 <dbl+lbl>, klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>,
# klima_eins4 <dbl+lbl>, anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>,
# anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>,
# anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>,
# anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>, anx_v_beh_3 <dbl+lbl>,
# anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>, anx_v_phy_2 <dbl+lbl>, …
# 4 Teilnehmende haben keins der Items zu Klimaangst beantwortet. Da Klimaangst ein wesentlicher Bestandteil der Untersuchung ist, schließen wir diese Teilnehmenden von der weiteren Auswertung aus, selbst wenn sie andere Fragen, z.B. zu Umweltidentität oder Sozialen Normen, umfassend beantwortet haben.
d <- d %>%
filter(!is.na(anx_gesamt))
# d hat jetzt noch 1029 obs
# Krit1 - Antworttendenzen: bei den Likert-skalierten zu mehr als 90% Antwort "1" gewählt oder max (5 oder 7)
d_Likert <- select(d,klima_eins1:karr_unt_p4, karr_entsc1:klima_verh3)
structure(d_Likert)
# A tibble: 1,029 × 63
klima_eins1 klima_eins2 klima_eins3 klima_eins4 anx_v_aff_1 anx_v_aff_2
<dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl>
1 5 [voll zu] 5 [gar nic… 5 [gar ni… 3 [unents… 4 [ab und… 2 [sehr s…
2 5 [voll zu] 1 [voll zu] 1 [voll z… 5 [voll z… NA NA
3 5 [voll zu] NA NA NA NA NA
4 5 [voll zu] 5 [gar nic… 5 [gar ni… 4 [eher z… 6 [sehr o… 6 [sehr o…
5 5 [voll zu] 4 [eher ni… 5 [gar ni… 4 [eher z… 3 [selten] 5 [oft]
6 1 [gar nicht zu] 1 [voll zu] 1 [voll z… 1 [gar ni… 1 [nie] 1 [nie]
7 4 [eher zu] 4 [eher ni… 3 [unents… 2 [eher n… 4 [ab und… 5 [oft]
8 4 [eher zu] 3 [unentsc… 4 [eher n… 2 [eher n… 2 [sehr s… 1 [nie]
9 4 [eher zu] 2 [eher zu] 4 [eher n… 5 [voll z… 3 [selten] 4 [ab und…
10 5 [voll zu] 5 [gar nic… 5 [gar ni… 5 [voll z… 7 [immer] 6 [sehr o…
# ℹ 1,019 more rows
# ℹ 57 more variables: anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>,
# anx_v_cog_1 <dbl+lbl>, anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>,
# anx_v_cog_4 <dbl+lbl>, anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>,
# anx_v_beh_3 <dbl+lbl>, anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>,
# anx_v_phy_2 <dbl+lbl>, anx_v_phy_3 <dbl+lbl>, anx_v_phy_4 <dbl+lbl>,
# anx_v_bee_1 <dbl+lbl>, anx_v_bee_2 <dbl+lbl>, anx_v_bee_3 <dbl+lbl>, …
# 63 Variablen, range 1 bis 7, es soll bei mindestens 10% der Items (=6) mindestens Antwort 2 gewählt sein. 57 + 12 = 69
d_Likert$sum <- rowSums(d_Likert, na.rm = TRUE #fehlende Werte sollen nicht als Antworttendenz angesehen werden
)
summary(d_Likert$sum)
Min. 1st Qu. Median Mean 3rd Qu. Max.
70.0 167.0 191.0 191.9 219.0 301.0
filter(d_Likert, d_Likert$sum < 70)
# A tibble: 0 × 64
# ℹ 64 variables: klima_eins1 <dbl+lbl>, klima_eins2 <dbl+lbl>,
# klima_eins3 <dbl+lbl>, klima_eins4 <dbl+lbl>, anx_v_aff_1 <dbl+lbl>,
# anx_v_aff_2 <dbl+lbl>, anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>,
# anx_v_cog_1 <dbl+lbl>, anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>,
# anx_v_cog_4 <dbl+lbl>, anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>,
# anx_v_beh_3 <dbl+lbl>, anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>,
# anx_v_phy_2 <dbl+lbl>, anx_v_phy_3 <dbl+lbl>, anx_v_phy_4 <dbl+lbl>, …
# ergibt 0 Reihen
# besonders hohe Werte? Maximal erreichbar sind 320, 90% = 288
filter(d_Likert, d_Likert$sum > 288)
# A tibble: 3 × 64
klima_eins1 klima_eins2 klima_eins3 klima_eins4 anx_v_aff_1 anx_v_aff_2
<dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl>
1 5 [voll zu] 3 [unentschieden] 5 [gar nich… 5 [voll zu] 6 [sehr of… 7 [immer]
2 5 [voll zu] 5 [gar nicht zu] 5 [gar nich… 5 [voll zu] 7 [immer] 7 [immer]
3 4 [eher zu] 2 [eher zu] 1 [voll zu] 4 [eher zu] 5 [oft] 6 [sehr of…
# ℹ 58 more variables: anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>,
# anx_v_cog_1 <dbl+lbl>, anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>,
# anx_v_cog_4 <dbl+lbl>, anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>,
# anx_v_beh_3 <dbl+lbl>, anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>,
# anx_v_phy_2 <dbl+lbl>, anx_v_phy_3 <dbl+lbl>, anx_v_phy_4 <dbl+lbl>,
# anx_v_bee_1 <dbl+lbl>, anx_v_bee_2 <dbl+lbl>, anx_v_bee_3 <dbl+lbl>,
# anx_v_bee_4 <dbl+lbl>, umw_ident_1 <dbl+lbl>, umw_ident_2 <dbl+lbl>, …
# 3 Reihen, die aber keine offensichtlichen Antworttendenzen aufweisen, daher kein Ausschluss
# Krit2 - bei den für uns relevanten Variablen für Klimaangst, Karriereabsichten, Umweltverhalten, soziale Normen, Umweltidentität wurde (jeweils) keine Antwort gegeben
.2*124
[1] 24.8
# 20 % von 124 vars = 24.8
d <- d %>%
mutate(n_missing = rowSums(is.na(across(everything()))))
hist(d$n_missing)
d %>%
filter(n_missing > 24)
# A tibble: 3 × 124
lfdn duration.t1 sona_surveycode consent_participation klima_wiss1
<dbl> <dbl> <chr> <dbl+lbl> <dbl+lbl>
1 129 78 "" 1 [Ja] 0 [incorrect or don't…
2 131 75 "" 1 [Ja] 0 [incorrect or don't…
3 1110 430 "" 1 [Ja] 0 [incorrect or don't…
# ℹ 119 more variables: klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>,
# klima_eins1 <dbl+lbl>, klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>,
# klima_eins4 <dbl+lbl>, anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>,
# anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>,
# anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>,
# anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>, anx_v_beh_3 <dbl+lbl>,
# anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>, anx_v_phy_2 <dbl+lbl>, …
# sind diese Werte für uns relevant?
# 3 Reihen, es sind aber keine Teilnehmenden dabei, die keine der für uns relevanten Fragen beantwortet haben. Bei der #Berechnung der Mittelwerte war es ausreichend, wenn mindestens ein Item beantwortet war. Sie werden daher (zunächst) im Datensatz belassen.
# Krit3 - logischer Widerspruch
# Antworten auf "d$norm_injun2" und "d_norm_injun3" ergeben einen logischen Widerspruch
d %>%
select(norm_injun2,norm_injun3)
# A tibble: 1,029 × 2
norm_injun2 norm_injun3
<dbl+lbl> <dbl+lbl>
1 3 [Teils/teils] 5 [Sehr unwahrscheinlich]
2 NA NA
3 5 [Sehr wahrscheinlich] NA
4 4 [Wahrscheinlich] 5 [Sehr unwahrscheinlich]
5 3 [Teils/teils] 3 [Teils/teils]
6 1 [Sehr unwahrscheinlich] 5 [Sehr unwahrscheinlich]
7 2 [Unwahrscheinlich] 2 [Wahrscheinlich]
8 2 [Unwahrscheinlich] 3 [Teils/teils]
9 2 [Unwahrscheinlich] 3 [Teils/teils]
10 5 [Sehr wahrscheinlich] 5 [Sehr unwahrscheinlich]
# ℹ 1,019 more rows
# "sehr wahrscheinlich" befürworten und ablehnen von beruflichem Einsatz für Klimaschutz
d %>%
filter(norm_injun2 == 5 & norm_injun3 == 1)
# A tibble: 0 × 124
# ℹ 124 variables: lfdn <dbl>, duration.t1 <dbl>, sona_surveycode <chr>,
# consent_participation <dbl+lbl>, klima_wiss1 <dbl+lbl>,
# klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>, klima_eins1 <dbl+lbl>,
# klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>, klima_eins4 <dbl+lbl>,
# anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>, anx_v_aff_3 <dbl+lbl>,
# anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>, anx_v_cog_2 <dbl+lbl>,
# anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>, anx_v_beh_1 <dbl+lbl>, …
# 0 Reihen
# Krit4 - Bearbeitungszeit
# weniger als 5 Minuten:
d %>%
filter(duration.t1 < 300)
# A tibble: 26 × 124
lfdn duration.t1 sona_surveycode consent_participation klima_wiss1
<dbl> <dbl> <chr> <dbl+lbl> <dbl+lbl>
1 129 78 "" 1 [Ja] 0 [incorre…
2 131 75 "" 1 [Ja] 0 [incorre…
3 174 145 "832e5d231e3545d0900ef68… 1 [Ja] 1 [correct]
4 274 236 "" 1 [Ja] 1 [correct]
5 380 148 "adac904ea275fdefc65d4c4… 1 [Ja] 1 [correct]
6 567 226 "040fec70955253769acc94f… 1 [Ja] 0 [incorre…
7 574 239 "e43a5db40f6bc0dcdf8d431… 1 [Ja] 0 [incorre…
8 730 224 "54ca3e5a2cebd8681900aa4… 1 [Ja] 0 [incorre…
9 761 146 "8b159f0c33071ee7811ca65… 1 [Ja] 0 [incorre…
10 772 118 "92302a7fbbff3bf9922e11b… 1 [Ja] 0 [incorre…
# ℹ 16 more rows
# ℹ 119 more variables: klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>,
# klima_eins1 <dbl+lbl>, klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>,
# klima_eins4 <dbl+lbl>, anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>,
# anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>,
# anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>,
# anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>, anx_v_beh_3 <dbl+lbl>, …
# ergibt 26 Reihen, streng genommen müssten diese ausgeschlossen werden, da so präregistriert, da aber die Begründung "keine ernsthafte Teilnahme unter 5 Minuten möglich" willkürlich erfolgte, wird zunächst überprüft, ob von einer ernsthaften Teilnahme ausgegangen werden kann -> Überprüfung von n_missing
# 20% von 124 variables = 24.8
d %>%
filter(duration.t1 < 300 & n_missing > 24)
# A tibble: 2 × 124
lfdn duration.t1 sona_surveycode consent_participation klima_wiss1
<dbl> <dbl> <chr> <dbl+lbl> <dbl+lbl>
1 129 78 "" 1 [Ja] 0 [incorrect or don't…
2 131 75 "" 1 [Ja] 0 [incorrect or don't…
# ℹ 119 more variables: klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>,
# klima_eins1 <dbl+lbl>, klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>,
# klima_eins4 <dbl+lbl>, anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>,
# anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>,
# anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>,
# anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>, anx_v_beh_3 <dbl+lbl>,
# anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>, anx_v_phy_2 <dbl+lbl>, …
# ergibt 2 Reihen, sind diese fehlenden Werte für uns relevant?
# lfdn 129; 131. Die Bearbeitungszeit ist sehr gering (78; 75) und die Zahl der missings hoch (71;88)
# -> Ausschluss (über "Arbeitsdatei" d_clean):
d_clean <- d
d_clean %>%
filter(duration.t1 < 300 & n_missing > 24)
# A tibble: 2 × 124
lfdn duration.t1 sona_surveycode consent_participation klima_wiss1
<dbl> <dbl> <chr> <dbl+lbl> <dbl+lbl>
1 129 78 "" 1 [Ja] 0 [incorrect or don't…
2 131 75 "" 1 [Ja] 0 [incorrect or don't…
# ℹ 119 more variables: klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>,
# klima_eins1 <dbl+lbl>, klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>,
# klima_eins4 <dbl+lbl>, anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>,
# anx_v_aff_3 <dbl+lbl>, anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>,
# anx_v_cog_2 <dbl+lbl>, anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>,
# anx_v_beh_1 <dbl+lbl>, anx_v_beh_2 <dbl+lbl>, anx_v_beh_3 <dbl+lbl>,
# anx_v_beh_4 <dbl+lbl>, anx_v_phy_1 <dbl+lbl>, anx_v_phy_2 <dbl+lbl>, …
d_clean <- d_clean %>%
filter(!(duration.t1 < 300 & n_missing > 24))
# jetzt noch 1027 obs
d_clean %>%
filter(duration.t1 < 300 & n_missing > 24)
# A tibble: 0 × 124
# ℹ 124 variables: lfdn <dbl>, duration.t1 <dbl>, sona_surveycode <chr>,
# consent_participation <dbl+lbl>, klima_wiss1 <dbl+lbl>,
# klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>, klima_eins1 <dbl+lbl>,
# klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>, klima_eins4 <dbl+lbl>,
# anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>, anx_v_aff_3 <dbl+lbl>,
# anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>, anx_v_cog_2 <dbl+lbl>,
# anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>, anx_v_beh_1 <dbl+lbl>, …
# ergibt jetzt 0 Reihen -> Übergabe an d:
d <- d_clean
# Power der Stichprobengröße für Korrelation r und Regression/Moderation f²
#install.packages("pwr")
library(pwr)
# A-priori-Poweranalyse hatte ergeben, dass für kleine Effekte von r und f² und einer Power von 80% mindestens 400 Teilnehmende erforderlich wären
# Beispiel: r = .10
pwr.r.test(
r = 0.10,
n = 1027,
sig.level = 0.05,
alternative = "two.sided"
)
approximate correlation power calculation (arctangh transformation)
n = 1027
r = 0.1
sig.level = 0.05
power = 0.8947503
alternative = two.sided
# Beispiel: f² = .02
pwr.f2.test(
u = 2, # Anzahl getesteter Prädiktoren (Interaktion)
v = 1027 - 2 - 1, # N - u - 1
f2 = 0.02, # kleiner Effekt
sig.level = 0.05
)
Multiple regression power calculation
u = 2
v = 1024
f2 = 0.02
sig.level = 0.05
power = 0.9870636
# ergibt ausreichende Power, um selbst kleine Effekte zu finden. r: power = 0.89, f²: power = 0.99
d %>%
select(alter_jahre,
ethnie_kult,
arbeit_art1,
kinder_anza,
geschlecht1_f,
arbeit_umfa,
bildungssta
) %>%
desc_table("n" = length,
"%" = percent,
"m" = mean,
"sd" = sd) %>%
desc_output(target = "DT")
# Prozentangaben der Tabelle
# zu geschlecht1_f N = 1017
# bezogen auf N = 1027:
651/1027 # w = 63%
[1] 0.6338851
352/1027 # m = 34%
[1] 0.3427459
# gruppiert nach Alter
filter(d, alter_jahre < 15)
# A tibble: 0 × 124
# ℹ 124 variables: lfdn <dbl>, duration.t1 <dbl>, sona_surveycode <chr>,
# consent_participation <dbl+lbl>, klima_wiss1 <dbl+lbl>,
# klima_wiss2 <dbl+lbl>, klima_wiss3 <dbl+lbl>, klima_eins1 <dbl+lbl>,
# klima_eins2 <dbl+lbl>, klima_eins3 <dbl+lbl>, klima_eins4 <dbl+lbl>,
# anx_v_aff_1 <dbl+lbl>, anx_v_aff_2 <dbl+lbl>, anx_v_aff_3 <dbl+lbl>,
# anx_v_aff_4 <dbl+lbl>, anx_v_cog_1 <dbl+lbl>, anx_v_cog_2 <dbl+lbl>,
# anx_v_cog_3 <dbl+lbl>, anx_v_cog_4 <dbl+lbl>, anx_v_beh_1 <dbl+lbl>, …
d %>%
filter(!is.na(alter_jahre)) %>%
select(alter_jahre,
kinder_anza,
bildungssta,
arbeit_umfa,
arbeit_art1,
ethnie_kult,
geschlecht1) %>%
group_by(alter_jahre < 28) %>%
desc_table("n" = length,
"%" = percent,
"m" = mean,
"sd" = sd) %>%
desc_output(target = "DT")
summary(d$alter_jahre)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
15.0 23.0 28.5 32.5 40.0 80.0 9
d %>%
filter(!is.na(alter_jahre)) %>%
ggplot(aes(x = alter_jahre)) +
geom_histogram(bins = 10) +
labs(
x = "Alter in Jahren",
y = "Häufigkeit"
) +
theme_minimal()
summary(d$arbeit_art1)
In Ausbildung Student:in
52 354
Angestelle:r/Beamte:r Selbstständig
476 49
Derzeit kein Beschäftigungsverhältnis Sonstiges, und zwar:
27 68
NA's
1
ggplot(d, aes(x = arbeit_art1)) +
geom_bar() +
coord_flip() +
labs(
x = "Art der Arbeit",
y = "Häufigkeit"
) +
theme_minimal()
summary(d$geschlecht1)
weiblich männlich NA's
651 352 24
ggplot(d, aes(x = geschlecht1)) +
geom_bar() +
labs(
x = "Geschlecht",
y = "Häufigkeit"
) +
theme_minimal()
summary(d$geschlecht1_f)
0 weiblich männlich divers/non-binär
1 651 352 13
keine Angabe NA's
0 10
ggplot(d, aes(x = geschlecht1_f)) +
geom_bar() +
labs(
x = "Geschlecht",
y = "Häufigkeit"
) +
theme_minimal()
drop_labels <- function(data) {
data %>%
mutate(across(where(is.labelled), as.numeric))
}
d_num <- drop_labels(d)
# zunächst Erstellung von d_skalen (alle numerischen Variablen):
d_skalen <- select(d_num, klima_wiss1:klima_verh3)
summary(d_skalen)
klima_wiss1 klima_wiss2 klima_wiss3 klima_eins1
Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :1.000
1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:0.0000 1st Qu.:4.000
Median :1.0000 Median :1.0000 Median :0.0000 Median :5.000
Mean :0.9454 Mean :0.8608 Mean :0.4483 Mean :4.272
3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:5.000
Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :5.000
NA's :1 NA's :1 NA's :1
klima_eins2 klima_eins3 klima_eins4 anx_v_aff_1
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.000 1st Qu.:4.000 1st Qu.:4.000 1st Qu.:3.000
Median :4.000 Median :4.000 Median :4.000 Median :4.000
Mean :3.904 Mean :4.074 Mean :4.072 Mean :4.041
3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000
Max. :5.000 Max. :5.000 Max. :5.000 Max. :7.000
NA's :1
anx_v_aff_2 anx_v_aff_3 anx_v_aff_4 anx_v_cog_1
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.000 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:1.000
Median :4.000 Median :4.000 Median :4.000 Median :2.000
Mean :3.889 Mean :3.853 Mean :3.843 Mean :2.296
3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:3.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
NA's :3 NA's :7 NA's :1
anx_v_cog_2 anx_v_cog_3 anx_v_cog_4 anx_v_beh_1
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:1.000 1st Qu.:2.000 1st Qu.:1.000
Median :3.000 Median :2.000 Median :3.000 Median :2.000
Mean :3.038 Mean :2.668 Mean :3.271 Mean :2.436
3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
NA's :3 NA's :8 NA's :4 NA's :2
anx_v_beh_2 anx_v_beh_3 anx_v_beh_4 anx_v_phy_1
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median :4.000 Median :3.000 Median :2.000 Median :1.000
Mean :3.949 Mean :2.741 Mean :2.535 Mean :2.107
3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:3.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
NA's :1 NA's :1 NA's :3 NA's :1
anx_v_phy_2 anx_v_phy_3 anx_v_phy_4 anx_v_bee_1 anx_v_bee_2
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.0
1st Qu.:1.000 1st Qu.:1.000 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.0
Median :1.000 Median :2.000 Median :3.000 Median :1.000 Median :1.0
Mean :2.164 Mean :2.409 Mean :3.287 Mean :1.807 Mean :1.7
3rd Qu.:3.000 3rd Qu.:4.000 3rd Qu.:5.000 3rd Qu.:2.000 3rd Qu.:2.0
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.0
NA's :2 NA's :3 NA's :3 NA's :2 NA's :4
anx_v_bee_3 anx_v_bee_4 umw_ident_1 umw_ident_2
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:1.000 1st Qu.:5.000 1st Qu.:5.000
Median :1.000 Median :2.000 Median :6.000 Median :6.000
Mean :1.512 Mean :2.277 Mean :5.402 Mean :5.608
3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:7.000 3rd Qu.:7.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
NA's :1 NA's :1 NA's :2
umw_ident_3 umw_ident_4 future_tim1 future_tim2
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:6.000 1st Qu.:3.000 1st Qu.:4.000 1st Qu.:1.000
Median :7.000 Median :5.000 Median :5.000 Median :2.000
Mean :6.335 Mean :4.378 Mean :4.661 Mean :2.668
3rd Qu.:7.000 3rd Qu.:5.000 3rd Qu.:6.000 3rd Qu.:4.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
NA's :1 NA's :5 NA's :2
future_tim3 norm_injun1 norm_injun2 norm_injun3
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:2.000 1st Qu.:3.000 1st Qu.:4.000
Median :2.000 Median :3.000 Median :4.000 Median :4.000
Mean :2.688 Mean :2.525 Mean :3.388 Mean :4.213
3rd Qu.:4.000 3rd Qu.:3.000 3rd Qu.:4.000 3rd Qu.:5.000
Max. :7.000 Max. :5.000 Max. :5.000 Max. :5.000
NA's :6 NA's :1 NA's :1 NA's :2
norm_deskr1 norm_deskr2 selbstw_in1 selbstw_in2
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:1.000 1st Qu.:3.000 1st Qu.:3.000
Median :2.000 Median :2.000 Median :4.000 Median :4.000
Mean :1.867 Mean :1.784 Mean :3.482 Mean :3.375
3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
NA's :3 NA's :1
selbstw_ko1 selbstw_ko2 kogn_disso1 kogn_disso2
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:4.000 1st Qu.:3.000 1st Qu.:1.000 1st Qu.:1.000
Median :4.000 Median :4.000 Median :2.000 Median :2.000
Mean :4.167 Mean :3.633 Mean :2.342 Mean :2.329
3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:3.000 3rd Qu.:3.000
Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
NA's :2 NA's :3
kogn_disso3 karr_job_p1 karr_job_p2 karr_job_p3 karr_job_p4
Min. :1.000 Min. :1.00 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:2.00 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median :2.000 Median :2.00 Median :2.000 Median :1.000 Median :2.000
Mean :2.301 Mean :2.49 Mean :2.107 Mean :1.745 Mean :2.282
3rd Qu.:3.000 3rd Qu.:3.00 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:3.000
Max. :5.000 Max. :5.00 Max. :5.000 Max. :5.000 Max. :5.000
NA's :2 NA's :2 NA's :1 NA's :2
karr_unt_p1 karr_unt_p2 karr_unt_p3 karr_unt_p4
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median :3.000 Median :2.000 Median :1.000 Median :2.000
Mean :2.674 Mean :2.219 Mean :1.779 Mean :2.295
3rd Qu.:4.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:3.000
Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
NA's :2 NA's :4 NA's :2
karr_finanz karr_sicher karr_status karr_erreic
Min. : 1.00 Min. : 1.000 Min. : 1.000 Min. : 1.000
1st Qu.: 9.00 1st Qu.: 7.000 1st Qu.: 3.000 1st Qu.: 6.000
Median :11.00 Median :10.000 Median : 5.000 Median : 8.000
Mean :10.58 Mean : 9.483 Mean : 5.352 Mean : 8.071
3rd Qu.:13.00 3rd Qu.:12.000 3rd Qu.: 7.000 3rd Qu.:11.000
Max. :14.00 Max. :14.000 Max. :14.000 Max. :14.000
NA's :52 NA's :56 NA's :65 NA's :61
karr_zugang karr_intere karr_selbst karr_ergebn karr_entwic
Min. : 1.000 Min. : 1.00 Min. : 1 Min. : 1.00 Min. : 1.000
1st Qu.: 3.000 1st Qu.:11.00 1st Qu.: 8 1st Qu.: 7.00 1st Qu.: 7.000
Median : 5.000 Median :13.00 Median :11 Median : 9.00 Median :10.000
Mean : 5.824 Mean :12.11 Mean :10 Mean : 8.64 Mean : 9.222
3rd Qu.: 8.000 3rd Qu.:14.00 3rd Qu.:13 3rd Qu.:11.00 3rd Qu.:12.000
Max. :14.000 Max. :14.00 Max. :14 Max. :14.00 Max. :14.000
NA's :70 NA's :50 NA's :53 NA's :63 NA's :60
karr_akzept karr_empfeh karr_akzpee karr_verant
Min. : 1.000 Min. : 1.000 Min. : 1.0 Min. : 1.000
1st Qu.: 3.000 1st Qu.: 1.000 1st Qu.: 2.0 1st Qu.: 6.000
Median : 5.000 Median : 2.000 Median : 3.0 Median : 8.000
Mean : 5.585 Mean : 2.776 Mean : 4.1 Mean : 8.566
3rd Qu.: 7.000 3rd Qu.: 4.000 3rd Qu.: 5.0 3rd Qu.:12.000
Max. :14.000 Max. :14.000 Max. :14.0 Max. :14.000
NA's :62 NA's :72 NA's :64 NA's :59
karr_umwelt karr_entsc1 karr_entsc2 karr_entsc3
Min. : 1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.: 3.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median : 5.000 Median :2.000 Median :2.000 Median :2.000
Mean : 5.409 Mean :1.891 Mean :2.134 Mean :2.103
3rd Qu.: 8.000 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:3.000
Max. :14.000 Max. :5.000 Max. :5.000 Max. :5.000
NA's :61 NA's :3 NA's :4 NA's :2
karr_entsc4 who_wellbe1 who_wellbe2 who_wellbe3
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:2.000
Median :2.000 Median :4.000 Median :4.000 Median :4.000
Mean :2.212 Mean :3.913 Mean :3.475 Mean :3.526
3rd Qu.:3.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000
Max. :5.000 Max. :6.000 Max. :6.000 Max. :6.000
NA's :2 NA's :3 NA's :1 NA's :2
who_wellbe4 who_wellbe5 klima_verh1 klima_verh2
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:3.000
Median :3.000 Median :4.000 Median :4.000 Median :3.000
Mean :3.107 Mean :3.892 Mean :3.577 Mean :3.415
3rd Qu.:4.000 3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :6.000 Max. :6.000 Max. :5.000 Max. :5.000
NA's :2 NA's :1 NA's :1
klima_verh3
Min. :1.000
1st Qu.:1.000
Median :2.000
Mean :2.308
3rd Qu.:3.000
Max. :5.000
alpha(d_skalen %>% select (anx_v_aff_1:anx_v_aff_4, anx_v_bee_1:anx_v_bee_4, anx_v_beh_1:anx_v_beh_4, anx_v_cog_1:anx_v_cog_4, anx_v_phy_1:anx_v_phy_4))
Reliability analysis
Call: alpha(x = d_skalen %>% select(anx_v_aff_1:anx_v_aff_4, anx_v_bee_1:anx_v_bee_4,
anx_v_beh_1:anx_v_beh_4, anx_v_cog_1:anx_v_cog_4, anx_v_phy_1:anx_v_phy_4))
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.95 0.95 0.96 0.5 20 0.0021 2.8 1.1 0.51
95% confidence boundaries
lower alpha upper
Feldt 0.95 0.95 0.96
Duhachek 0.95 0.95 0.96
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
anx_v_aff_1 0.95 0.95 0.96 0.49 19 0.0023 0.0103 0.51
anx_v_aff_2 0.95 0.95 0.96 0.49 19 0.0023 0.0105 0.51
anx_v_aff_3 0.95 0.95 0.96 0.50 19 0.0023 0.0108 0.51
anx_v_aff_4 0.95 0.95 0.96 0.49 18 0.0023 0.0103 0.51
anx_v_bee_1 0.95 0.95 0.96 0.50 19 0.0022 0.0122 0.51
anx_v_bee_2 0.95 0.95 0.96 0.50 19 0.0022 0.0119 0.52
anx_v_bee_3 0.95 0.95 0.96 0.51 20 0.0021 0.0098 0.52
anx_v_bee_4 0.95 0.95 0.96 0.50 19 0.0022 0.0125 0.51
anx_v_beh_1 0.95 0.95 0.96 0.52 20 0.0021 0.0098 0.52
anx_v_beh_2 0.95 0.95 0.96 0.51 19 0.0022 0.0112 0.51
anx_v_beh_3 0.95 0.95 0.96 0.50 19 0.0022 0.0124 0.51
anx_v_beh_4 0.95 0.95 0.96 0.50 19 0.0022 0.0124 0.51
anx_v_cog_1 0.95 0.95 0.96 0.50 19 0.0022 0.0122 0.51
anx_v_cog_2 0.95 0.95 0.96 0.50 19 0.0022 0.0122 0.51
anx_v_cog_3 0.95 0.95 0.96 0.50 19 0.0022 0.0120 0.51
anx_v_cog_4 0.95 0.95 0.96 0.50 19 0.0022 0.0117 0.51
anx_v_phy_1 0.95 0.95 0.96 0.50 19 0.0022 0.0125 0.51
anx_v_phy_2 0.95 0.95 0.96 0.50 19 0.0022 0.0123 0.51
anx_v_phy_3 0.95 0.95 0.96 0.50 19 0.0022 0.0120 0.51
anx_v_phy_4 0.95 0.95 0.96 0.50 19 0.0023 0.0118 0.51
Item statistics
n raw.r std.r r.cor r.drop mean sd
anx_v_aff_1 1026 0.81 0.79 0.79 0.78 4.0 1.62
anx_v_aff_2 1027 0.81 0.79 0.79 0.78 3.9 1.59
anx_v_aff_3 1024 0.77 0.76 0.75 0.74 3.9 1.71
anx_v_aff_4 1020 0.83 0.81 0.81 0.80 3.8 1.68
anx_v_bee_1 1025 0.69 0.71 0.69 0.66 1.8 1.11
anx_v_bee_2 1023 0.65 0.68 0.66 0.62 1.7 1.09
anx_v_bee_3 1027 0.53 0.57 0.54 0.50 1.5 0.99
anx_v_bee_4 1026 0.74 0.75 0.73 0.70 2.3 1.35
anx_v_beh_1 1025 0.53 0.53 0.49 0.47 2.4 1.59
anx_v_beh_2 1026 0.67 0.66 0.64 0.63 3.9 1.56
anx_v_beh_3 1026 0.73 0.73 0.71 0.69 2.7 1.51
anx_v_beh_4 1024 0.70 0.70 0.68 0.66 2.5 1.36
anx_v_cog_1 1026 0.76 0.77 0.75 0.72 2.3 1.42
anx_v_cog_2 1024 0.74 0.74 0.73 0.71 3.0 1.48
anx_v_cog_3 1019 0.77 0.77 0.76 0.74 2.7 1.47
anx_v_cog_4 1023 0.77 0.76 0.75 0.73 3.3 1.56
anx_v_phy_1 1026 0.71 0.71 0.69 0.67 2.1 1.40
anx_v_phy_2 1025 0.75 0.75 0.74 0.71 2.2 1.48
anx_v_phy_3 1024 0.75 0.75 0.74 0.72 2.4 1.61
anx_v_phy_4 1024 0.79 0.77 0.76 0.75 3.3 1.75
Non missing response frequency for each item
1 2 3 4 5 6 7 miss
anx_v_aff_1 0.10 0.10 0.11 0.30 0.21 0.13 0.06 0.00
anx_v_aff_2 0.11 0.11 0.12 0.30 0.21 0.11 0.04 0.00
anx_v_aff_3 0.14 0.11 0.11 0.26 0.21 0.11 0.05 0.00
anx_v_aff_4 0.12 0.13 0.11 0.29 0.20 0.10 0.06 0.01
anx_v_bee_1 0.55 0.22 0.12 0.09 0.01 0.01 0.00 0.00
anx_v_bee_2 0.63 0.17 0.11 0.07 0.02 0.01 0.00 0.00
anx_v_bee_3 0.72 0.14 0.07 0.05 0.02 0.00 0.00 0.00
anx_v_bee_4 0.39 0.25 0.15 0.14 0.06 0.01 0.00 0.00
anx_v_beh_1 0.42 0.19 0.12 0.14 0.09 0.03 0.01 0.00
anx_v_beh_2 0.11 0.09 0.12 0.29 0.25 0.11 0.03 0.00
anx_v_beh_3 0.29 0.19 0.18 0.19 0.10 0.03 0.00 0.00
anx_v_beh_4 0.30 0.24 0.17 0.21 0.06 0.01 0.00 0.00
anx_v_cog_1 0.40 0.23 0.15 0.13 0.06 0.03 0.00 0.00
anx_v_cog_2 0.19 0.21 0.19 0.24 0.12 0.04 0.01 0.00
anx_v_cog_3 0.28 0.23 0.18 0.18 0.09 0.03 0.01 0.01
anx_v_cog_4 0.17 0.19 0.16 0.27 0.12 0.08 0.01 0.00
anx_v_phy_1 0.50 0.18 0.12 0.12 0.04 0.02 0.00 0.00
anx_v_phy_2 0.50 0.16 0.13 0.10 0.07 0.02 0.01 0.00
anx_v_phy_3 0.44 0.17 0.11 0.15 0.07 0.04 0.01 0.00
anx_v_phy_4 0.22 0.17 0.11 0.24 0.14 0.08 0.03 0.00
summary(d$anx_gesamt)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 2.000 2.700 2.794 3.550 6.200
d %>%
filter(!is.na(anx_gesamt)) %>%
ggplot(aes(x = anx_gesamt)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Klimaangst",
y = "Dichte"
) +
theme_minimal()
alpha(d_skalen %>% select(umw_ident_1:umw_ident_4))
Reliability analysis
Call: alpha(x = d_skalen %>% select(umw_ident_1:umw_ident_4))
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.76 0.77 0.73 0.46 3.4 0.012 5.4 1 0.48
95% confidence boundaries
lower alpha upper
Feldt 0.74 0.76 0.78
Duhachek 0.74 0.76 0.78
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
umw_ident_1 0.68 0.71 0.63 0.44 2.4 0.017 0.01084 0.49
umw_ident_2 0.67 0.68 0.59 0.41 2.1 0.017 0.00596 0.43
umw_ident_3 0.74 0.75 0.66 0.50 3.0 0.014 0.00049 0.49
umw_ident_4 0.73 0.74 0.66 0.49 2.9 0.014 0.00252 0.51
Item statistics
n raw.r std.r r.cor r.drop mean sd
umw_ident_1 1026 0.80 0.79 0.68 0.60 5.4 1.4
umw_ident_2 1025 0.80 0.82 0.74 0.65 5.6 1.2
umw_ident_3 1026 0.70 0.74 0.60 0.50 6.3 1.1
umw_ident_4 1027 0.78 0.74 0.61 0.54 4.4 1.6
Non missing response frequency for each item
1 2 3 4 5 6 7 miss
umw_ident_1 0.02 0.02 0.06 0.13 0.26 0.23 0.28 0
umw_ident_2 0.01 0.01 0.03 0.08 0.32 0.30 0.25 0
umw_ident_3 0.01 0.01 0.02 0.03 0.10 0.20 0.63 0
umw_ident_4 0.06 0.07 0.13 0.23 0.26 0.15 0.09 0
summary(d$umw_ident_mean)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 4.750 5.500 5.429 6.250 7.000
d %>%
filter(!is.na(umw_ident_mean)) %>%
ggplot(aes(x = umw_ident_mean)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Umweltidentität",
y = "Dichte"
) +
theme_minimal()
alpha(d_skalen %>% select(norm_injun1:norm_deskr2))
Reliability analysis
Call: alpha(x = d_skalen %>% select(norm_injun1:norm_deskr2))
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.69 0.69 0.7 0.31 2.2 0.015 2.8 0.63 0.32
95% confidence boundaries
lower alpha upper
Feldt 0.65 0.69 0.72
Duhachek 0.66 0.69 0.72
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
norm_injun1 0.58 0.60 0.60 0.27 1.5 0.021 0.040 0.24
norm_injun2 0.60 0.62 0.60 0.29 1.6 0.020 0.046 0.28
norm_injun3 0.70 0.72 0.69 0.39 2.6 0.015 0.018 0.42
norm_deskr1 0.63 0.62 0.59 0.29 1.6 0.018 0.024 0.30
norm_deskr2 0.65 0.64 0.62 0.31 1.8 0.018 0.027 0.34
Item statistics
n raw.r std.r r.cor r.drop mean sd
norm_injun1 1026 0.75 0.74 0.65 0.55 2.5 1.01
norm_injun2 1026 0.76 0.71 0.61 0.52 3.4 1.16
norm_injun3 1025 0.54 0.52 0.32 0.28 4.2 0.95
norm_deskr1 1024 0.67 0.71 0.63 0.46 1.9 0.87
norm_deskr2 1027 0.61 0.67 0.58 0.44 1.8 0.70
Non missing response frequency for each item
1 2 3 4 5 miss
norm_injun1 0.17 0.31 0.37 0.13 0.03 0
norm_injun2 0.08 0.13 0.28 0.33 0.18 0
norm_injun3 0.01 0.06 0.13 0.32 0.49 0
norm_deskr1 0.41 0.35 0.20 0.03 0.00 0
norm_deskr2 0.35 0.55 0.08 0.02 0.00 0
summary(d$norm_desin_mean)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 2.400 2.800 2.755 3.200 4.800
d %>%
filter(!is.na(norm_desin_mean)) %>%
ggplot(aes(x = norm_desin_mean)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Soziale Normen",
y = "Dichte"
) +
theme_minimal()
alpha(d_skalen %>% select(karr_job_p1:karr_unt_p4))
Reliability analysis
Call: alpha(x = d_skalen %>% select(karr_job_p1:karr_unt_p4))
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.92 0.92 0.94 0.59 11 0.0039 2.2 0.87 0.62
95% confidence boundaries
lower alpha upper
Feldt 0.91 0.92 0.93
Duhachek 0.91 0.92 0.93
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
karr_job_p1 0.91 0.91 0.92 0.58 9.9 0.0046 0.016 0.60
karr_job_p2 0.91 0.91 0.92 0.59 9.9 0.0045 0.020 0.64
karr_job_p3 0.92 0.92 0.92 0.61 11.0 0.0040 0.016 0.64
karr_job_p4 0.90 0.90 0.92 0.57 9.4 0.0048 0.017 0.60
karr_unt_p1 0.91 0.91 0.92 0.58 9.8 0.0046 0.015 0.62
karr_unt_p2 0.91 0.91 0.92 0.58 9.7 0.0046 0.019 0.60
karr_unt_p3 0.92 0.92 0.92 0.62 11.6 0.0038 0.012 0.64
karr_unt_p4 0.90 0.90 0.92 0.57 9.4 0.0048 0.017 0.60
Item statistics
n raw.r std.r r.cor r.drop mean sd
karr_job_p1 1027 0.82 0.82 0.79 0.75 2.5 1.1
karr_job_p2 1025 0.81 0.81 0.78 0.75 2.1 1.0
karr_job_p3 1026 0.72 0.73 0.69 0.64 1.7 1.1
karr_job_p4 1025 0.86 0.86 0.84 0.80 2.3 1.1
karr_unt_p1 1025 0.83 0.82 0.80 0.76 2.7 1.2
karr_unt_p2 1023 0.83 0.83 0.80 0.77 2.2 1.1
karr_unt_p3 1025 0.69 0.69 0.65 0.59 1.8 1.1
karr_unt_p4 1027 0.86 0.86 0.84 0.81 2.3 1.1
Non missing response frequency for each item
1 2 3 4 5 miss
karr_job_p1 0.24 0.28 0.29 0.17 0.04 0
karr_job_p2 0.34 0.34 0.23 0.08 0.02 0
karr_job_p3 0.58 0.21 0.12 0.06 0.03 0
karr_job_p4 0.29 0.30 0.29 0.10 0.03 0
karr_unt_p1 0.22 0.23 0.26 0.24 0.05 0
karr_unt_p2 0.31 0.30 0.25 0.12 0.02 0
karr_unt_p3 0.57 0.22 0.11 0.07 0.03 0
karr_unt_p4 0.29 0.28 0.30 0.11 0.02 0
summary(d$karr_juu_mean)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 1.500 2.125 2.200 2.875 5.000
d %>%
filter(!is.na(karr_juu_mean)) %>%
ggplot(aes(x = karr_juu_mean)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Karriereabsichten",
y = "Dichte"
) +
theme_minimal()
alpha(d_skalen %>% select (karr_entsc1:karr_entsc4))
Reliability analysis
Call: alpha(x = d_skalen %>% select(karr_entsc1:karr_entsc4))
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.91 0.91 0.88 0.71 9.7 0.0048 2.1 0.96 0.73
95% confidence boundaries
lower alpha upper
Feldt 0.9 0.91 0.92
Duhachek 0.9 0.91 0.92
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
karr_entsc1 0.90 0.90 0.85 0.74 8.7 0.0056 0.00039 0.73
karr_entsc2 0.87 0.87 0.82 0.69 6.8 0.0070 0.00311 0.72
karr_entsc3 0.86 0.86 0.81 0.68 6.3 0.0074 0.00279 0.67
karr_entsc4 0.88 0.88 0.84 0.72 7.7 0.0062 0.00239 0.72
Item statistics
n raw.r std.r r.cor r.drop mean sd
karr_entsc1 1024 0.85 0.85 0.78 0.74 1.9 1.0
karr_entsc2 1023 0.90 0.90 0.85 0.81 2.1 1.1
karr_entsc3 1025 0.91 0.91 0.88 0.83 2.1 1.1
karr_entsc4 1025 0.88 0.88 0.82 0.77 2.2 1.1
Non missing response frequency for each item
1 2 3 4 5 miss
karr_entsc1 0.47 0.28 0.17 0.06 0.02 0
karr_entsc2 0.36 0.28 0.23 0.10 0.02 0
karr_entsc3 0.38 0.28 0.21 0.09 0.03 0
karr_entsc4 0.34 0.27 0.24 0.12 0.03 0
summary(d$karr_entsc_mean)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 1.000 2.000 2.086 2.750 5.000
d %>%
filter(!is.na(karr_entsc_mean)) %>%
ggplot(aes(x = karr_entsc_mean)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Karriereentscheidungen",
y = "Dichte"
) +
theme_minimal()
alpha(d_skalen %>% select(klima_verh1:klima_verh3))
Reliability analysis
Call: alpha(x = d_skalen %>% select(klima_verh1:klima_verh3))
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.41 0.43 0.35 0.2 0.74 0.032 3.1 0.68 0.23
95% confidence boundaries
lower alpha upper
Feldt 0.35 0.41 0.47
Duhachek 0.35 0.41 0.48
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
klima_verh1 0.10 0.10 0.054 0.054 0.11 0.056 NA 0.054
klima_verh2 0.46 0.47 0.306 0.306 0.88 0.033 NA 0.306
klima_verh3 0.38 0.38 0.233 0.233 0.61 0.039 NA 0.233
Item statistics
n raw.r std.r r.cor r.drop mean sd
klima_verh1 1027 0.72 0.75 0.56 0.37 3.6 0.91
klima_verh2 1026 0.63 0.63 0.28 0.17 3.4 1.02
klima_verh3 1027 0.69 0.66 0.37 0.22 2.3 1.09
Non missing response frequency for each item
1 2 3 4 5 miss
klima_verh1 0.04 0.08 0.25 0.54 0.10 0
klima_verh2 0.02 0.18 0.32 0.33 0.15 0
klima_verh3 0.30 0.27 0.28 0.14 0.01 0
summary(d$klima_verh_summ)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.000 8.000 9.000 9.297 11.000 15.000
d %>%
filter(!is.na(klima_verh_summ)) %>%
ggplot(aes(x = karr_entsc_mean)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Umweltverhalten",
y = "Dichte"
) +
theme_minimal()
# Problematisch ist Umweltverhalten eventuell, da es Kriterium von H1a ist -> Limitationen?
# Alle anderen Skalen sind für gemeinsame Skalenwerte (Mittelwerte) geeignet
# -> "Die drei Indikatoren zum Klimaverhalten zeigten nur geringe Inter-Item-Korrelationen und bilden kein eindimensionales Konstrukt" -> Vorsichtige Interpretation der Ergebnisse unter Einbeziehung des Skalenwerts umw_ver_summ, ggf Indikatoren getrennt analysieren
mod_reg <- lm(d$karr_juu_mean ~
d$anx_gesamt +
d$umw_ident_mean +
d$norm_desin_mean +
d$alter_jahre +
d$geschlecht1
)
res <- residuals(mod_reg)
# mit Häufigkeit:
hist(res, breaks = 30, main = "Histogramm der Residuen", xlab = "Residuen")
# Residuen extrahieren:
res <- residuals(mod_reg)
# Histogramm + theoretische Normalverteilung
ggplot(data.frame(res), aes(x = res)) +
geom_histogram(
aes(y = after_stat(density)),
bins = 20,
fill = "grey70",
color = "white"
) +
stat_function(
fun = dnorm,
args = list(
mean = mean(res),
sd = sd(res)
),
color = "firebrick",
linewidth = 0.8
) +
labs(
title = "Histogramm der Residuen",
x = "Residuen",
y = "Dichte"
) +
theme_minimal()
# annähernd glockenförmig
# keine extremen Schieflagen
qqnorm(res)
qqline(res, col = "firebrick")
# Punkte liegen grob auf der Diagonalen
# nur leichte Abweichungen an den Rändern
plot(
fitted(mod_reg),
residuals(mod_reg),
xlab = "Vorhergesagte Werte",
ylab = "Residuen",
main = "Residuals vs. Fitted"
)
abline(h = 0, col = "firebrick")
library(car)
vif(mod_reg)
d$anx_gesamt d$umw_ident_mean d$norm_desin_mean d$alter_jahre
1.339689 1.238611 1.205895 1.097823
d$geschlecht1
1.082231
# 4) VIF als Textpanel (Multikollinearität)
#vif_df <- data.frame(
#Prädiktor = names(vif(mod_reg)),
#VIF = round(vif(mod_reg), 2)
#)
#p4 <- ggplot(vif_df, aes(x = Prädiktor, y = VIF)) +
# geom_col(fill = "grey70") +
# geom_hline(yintercept = 5, linetype = "dashed", color = "firebrick") +
# labs(
# title = "Varianzinflationsfaktoren (VIF)",
# x = "",
# y = "VIF"
# ) +
# theme_minimal() +
# theme(axis.text.x = element_text(angle = 45, hjust = 1))
# fürs Poster besser:
# alle < 2 (und ziemlich nah an 1)
# kleine Abbildung für das Poster (alle zusammen):
#install.packages("patchwork")
library(patchwork)
# Daten vorbereiten
diag_df <- data.frame(
fitted = fitted(mod_reg),
resid = residuals(mod_reg)
)
# 1) Residuen vs. Fitted (Linearität & Homoskedastizität)
p1 <- ggplot(diag_df, aes(x = fitted, y = resid)) +
geom_point(alpha = 0.4) +
geom_hline(yintercept = 0, color = "firebrick") +
labs(
title = "Residuals vs. Fitted",
x = "Vorhergesagte Werte",
y = "Residuen"
) +
theme_minimal()
# 2) Normal Q-Q Plot (Normalverteilung)
p2 <- ggplot(diag_df, aes(sample = resid)) +
stat_qq(alpha = 0.4) +
stat_qq_line(color = "firebrick") +
labs(
title = "Normal Q-Q Plot",
x = "Theoretische Quantile",
y = "Stichprobenquantile"
) +
theme_minimal()
# 3) Histogramm der Residuen + Normalverteilung
p3 <- ggplot(diag_df, aes(x = resid)) +
geom_histogram(
aes(y = after_stat(density)),
bins = 20,
fill = "grey70",
color = "white"
) +
stat_function(
fun = dnorm,
args = list(
mean = mean(diag_df$resid),
sd = sd(diag_df$resid)
),
color = "firebrick",
linewidth = 1
) +
labs(
title = "Histogramm der Residuen",
x = "Residuen",
y = "Dichte"
) +
theme_minimal()
# 4) VIF als Textpanel (Multikollinearität)
# VIF-Daten aufbereiten
vif_df <- data.frame(
Prädiktor = names(vif(mod_reg)),
VIF = round(vif(mod_reg), 2)
)
# Text-Plot als Tabelle
p4 <- ggplot(vif_df, aes(x = 1, y = reorder(Prädiktor, VIF))) +
geom_text(
aes(label = paste0("VIF = ", VIF)),
hjust = 0,
size = 4
) +
geom_text(
aes(label = Prädiktor),
hjust = 1.1,
size = 4,
fontface = "bold"
) +
scale_x_continuous(limits = c(0.5, 2)) +
labs(title = "Multikollinearität (VIF)") +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5)
)
# Alle Plots zusammen
(p1 | p2) / (p3 | p4)
H1a Klimaangst und Klimabewusstes Verhalten stehen in einem positiven Zusammenhang. H1b Klimaangst und Karriereabsichten stehen in einem positiven Zusammenhang. H1c Soziale Normen und Umweltidentität wirken dabei als Moderatoren. H2 Soziale Normen und Umweltidentität wirken als Prädiktoren für das Kriterium Karriereabsichten.
# H1a einzeln
#zunächst Berechnung Pearson's Produkt-Moment-Korrelation für Klimaangst (gesamt) und Klimaverhalten (Summe):
cor.test(d$anx_gesamt, d$klima_verh_summ)
Pearson's product-moment correlation
data: d$anx_gesamt and d$klima_verh_summ
t = 13.4, df = 1025, p-value < 0.00000000000000022
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3327915 0.4369558
sample estimates:
cor
0.3861038
# -> Explorative Analysen
# r = .39 ist ein mittlerer Zusammenhang, der sich auch ähnlich zeigen sollte, wenn mittels Regressionsanalyse die Subskalen anx_v_aff_mean,...,anx_v_phy_mean mit klima_verh_summ in Beziehung gesetzt werden
# Da es sich bei klima_verh_summ um einen formativen Verhaltensindex handelt, sind Kriterien reflektiver Skalen wie interne Konsistenz (α = .41) oder Eindimensionalität hier nicht maßgeblich. Die inhaltliche Heterogenität der Items ist dabei konzeptionell intendiert, Die Zusammenhänge der Subskalen werden ergänzend berechnet.
H1a wurde bestätigt.
#H1 (b) einzeln
# könnten jetzt auch alle mit cor_apa dargestellt werden, aber läuft auch nach wie vor so:
d %>%
select(karr_juu_mean,
anx_gesamt,
anx_v_aff_mean,
anx_v_bee_mean,
anx_v_beh_mean,
anx_v_cog_mean,
anx_v_phy_mean
) %>%
as.matrix %>% # here is the "we make it pure numbers" part
corx(triangle = "lower",
stars = c(.05, .01, .001),
describe = c('mean','sd')) %>%
as.data.frame(.["apa"])
# A tibble: 7 × 8
`1` `2` `3` `4` `5` `6` mean sd
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 " - " "" "" "" "" "" 2.20 0.87
2 ".41***" " - " "" "" "" "" 2.79 1.07
3 ".30***" ".88***" " - " "" "" "" 3.91 1.50
4 ".38***" ".80***" ".53***" " - " "" "" 1.83 0.94
5 ".40***" ".88***" ".74***" ".67***" " - " "" 2.92 1.12
6 ".40***" ".89***" ".75***" ".70***" ".72***" " - " 2.82 1.26
7 ".32***" ".89***" ".72***" ".69***" ".72***" ".71***" 2.49 1.32
H1b wurde bestätigt.
# H1 (c) einzeln
library(interactions)
library(lm.beta)
library(parameters)
# nur mit Soziale Normen:
mod_juu_norm <- lm(karr_juu_mean ~ anx_gesamt * norm_desin_mean, data = d)
model_parameters(mod_juu_norm, standardize = "refit")
# A tibble: 4 × 9
Parameter Coefficient SE CI CI_low CI_high t df_error p
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl>
1 (Intercept) 0.0133 0.0287 0.95 -0.0431 0.0697 0.464 1023 6.43e- 1
2 anx_gesamt 0.305 0.0292 0.95 0.248 0.363 10.4 1023 2.47e-24
3 norm_desin_… 0.287 0.0293 0.95 0.229 0.344 9.79 1023 1.10e-21
4 anx_gesamt:… -0.0375 0.0257 0.95 -0.0878 0.0129 -1.46 1023 1.45e- 1
summary(mod_juu_norm)
Call:
lm(formula = karr_juu_mean ~ anx_gesamt * norm_desin_mean, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.91801 -0.55296 -0.07097 0.49019 2.90910
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.05589 0.26536 0.211 0.833
anx_gesamt 0.38143 0.09561 3.989 0.0000709802 ***
norm_desin_mean 0.53033 0.09773 5.426 0.0000000719 ***
anx_gesamt:norm_desin_mean -0.04825 0.03306 -1.459 0.145
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7616 on 1023 degrees of freedom
Multiple R-squared: 0.2399, Adjusted R-squared: 0.2376
F-statistic: 107.6 on 3 and 1023 DF, p-value: < 0.00000000000000022
# nur mit Umweltidentität:
mod_juu_ident <- lm(karr_juu_mean ~ anx_gesamt * umw_ident_mean, data = d)
model_parameters(mod_juu_ident, standardize = "refit")
# A tibble: 4 × 9
Parameter Coefficient SE CI CI_low CI_high t df_error p
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl>
1 (Intercept) -0.00118 0.0294 0.95 -0.0589 0.0565 -0.0400 1023 9.68e- 1
2 anx_gesamt 0.349 0.0300 0.95 0.290 0.408 11.6 1023 1.94e-29
3 umw_ident_… 0.181 0.0307 0.95 0.121 0.241 5.89 1023 5.35e- 9
4 anx_gesamt… 0.00375 0.0279 0.95 -0.0511 0.0586 0.134 1023 8.93e- 1
summary(mod_juu_ident)
Call:
lm(formula = karr_juu_mean ~ anx_gesamt * umw_ident_mean, data = d)
Residuals:
Min 1Q Median 3Q Max
-2.10759 -0.61021 -0.06101 0.49429 2.76877
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.619044 0.328249 1.886 0.0596 .
anx_gesamt 0.267864 0.126204 2.122 0.0340 *
umw_ident_mean 0.144802 0.059959 2.415 0.0159 *
anx_gesamt:umw_ident_mean 0.002959 0.022050 0.134 0.8933
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7843 on 1023 degrees of freedom
Multiple R-squared: 0.194, Adjusted R-squared: 0.1916
F-statistic: 82.07 on 3 and 1023 DF, p-value: < 0.00000000000000022
# zusätzlich mit Alter und Geschlecht (mögliche Kolinearität)
mod_juu_kol <- lm(karr_juu_mean ~
anx_gesamt*umw_ident_mean
+ anx_gesamt*norm_desin_mean
+ alter_jahre
+ geschlecht1,
data = d)
model_parameters(mod_juu_kol, standardize = "refit")
# A tibble: 8 × 9
Parameter Coefficient SE CI CI_low CI_high t df_error p
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl>
1 (Intercept) -0.0426 0.0360 0.95 -0.113 0.0281 -1.18 987 2.37e- 1
2 anx_gesamt 0.302 0.0324 0.95 0.239 0.366 9.32 987 7.15e-20
3 umw_ident_m… 0.118 0.0313 0.95 0.0569 0.180 3.78 987 1.68e- 4
4 norm_desin_… 0.249 0.0302 0.95 0.190 0.308 8.25 987 4.91e-16
5 alter_jahre 0.0282 0.0287 0.95 -0.0282 0.0846 0.981 987 3.27e- 1
6 geschlecht1… 0.147 0.0600 0.95 0.0293 0.265 2.45 987 1.44e- 2
7 anx_gesamt:… 0.0123 0.0288 0.95 -0.0442 0.0688 0.428 987 6.69e- 1
8 anx_gesamt:… -0.0354 0.0262 0.95 -0.0869 0.0160 -1.35 987 1.77e- 1
summary(mod_juu_kol)
Call:
lm(formula = karr_juu_mean ~ anx_gesamt * umw_ident_mean + anx_gesamt *
norm_desin_mean + alter_jahre + geschlecht1, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.89849 -0.54617 -0.03917 0.49229 3.00142
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.299195 0.391952 -0.763 0.4454
anx_gesamt 0.321368 0.148009 2.171 0.0301 *
umw_ident_mean 0.073887 0.064453 1.146 0.2519
norm_desin_mean 0.472235 0.101779 4.640 0.00000396 ***
alter_jahre 0.002001 0.002040 0.981 0.3268
geschlecht1männlich 0.128132 0.052275 2.451 0.0144 *
anx_gesamt:umw_ident_mean 0.009969 0.023312 0.428 0.6690
anx_gesamt:norm_desin_mean -0.046106 0.034120 -1.351 0.1769
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7534 on 987 degrees of freedom
(32 Beobachtungen als fehlend gelöscht)
Multiple R-squared: 0.2578, Adjusted R-squared: 0.2526
F-statistic: 48.98 on 7 and 987 DF, p-value: < 0.00000000000000022
H1c wurde nicht bestätigt
#Prüfung H2 - Umweltidentität und Soziale Normen als Prädiktoren
library(effectsize)
# Umweltidentität als Prädiktor für Karriereabsichten:
lmH2a <- lm(karr_juu_mean ~ umw_ident_mean, data = d)
summary(lmH2a)
Call:
lm(formula = karr_juu_mean ~ umw_ident_mean, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.58426 -0.65053 -0.08677 0.59570 2.90569
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.86946 0.13978 6.220 0.000000000723 ***
umw_ident_mean 0.24497 0.02529 9.685 < 0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.8353 on 1025 degrees of freedom
Multiple R-squared: 0.08384, Adjusted R-squared: 0.08294
F-statistic: 93.8 on 1 and 1025 DF, p-value: < 0.00000000000000022
# f² selber mit Formel berechnen:
R2a <- summary(lmH2a)$r.squared
Formel_f2a <- R2a / (1 - R2a)
Formel_f2a
[1] 0.09151096
# f² = .09
# mit effectsize:
cohens_f_squared(lmH2a, partial = FALSE)
# A tibble: 1 × 5
Parameter Cohens_f2 CI CI_low CI_high
<chr> <dbl> <dbl> <dbl> <dbl>
1 umw_ident_mean 0.0915 0.95 0.0624 Inf
# ebenfalls f² = .09, 95% CI = [.06, Inf]
cohens_f_squared(lmH2a)
# A tibble: 1 × 5
Parameter Cohens_f2 CI CI_low CI_high
<chr> <dbl> <dbl> <dbl> <dbl>
1 umw_ident_mean 0.0915 0.95 0.0624 Inf
# ebenfalls f² = .09, 95% CI = [.06, Inf]
cor.test(d$karr_juu_mean, d$umw_ident_mean)
Pearson's product-moment correlation
data: d$karr_juu_mean and d$umw_ident_mean
t = 9.685, df = 1025, p-value < 0.00000000000000022
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.2324949 0.3446177
sample estimates:
cor
0.2895493
# r = .290; b = .245; R² = .084; f² =
# Soziale Normen als Prädiktor für Karriereabsichten:
lmH2b <- lm(karr_juu_mean ~ norm_desin_mean, data = d)
summary(lmH2b)
Call:
lm(formula = karr_juu_mean ~ norm_desin_mean, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.9934 -0.5994 -0.0691 0.5881 2.9802
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.68632 0.11180 6.139 0.00000000119 ***
norm_desin_mean 0.54931 0.03956 13.886 < 0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.8006 on 1025 degrees of freedom
Multiple R-squared: 0.1583, Adjusted R-squared: 0.1575
F-statistic: 192.8 on 1 and 1025 DF, p-value: < 0.00000000000000022
R2b <- summary(lmH2b)$r.squared
Formel_f2b <- R2b / (1 - R2b)
Formel_f2b
[1] 0.1881242
# f² = .19
# mit effectsize:
cohens_f_squared(lmH2b, partial = FALSE)
# A tibble: 1 × 5
Parameter Cohens_f2 CI CI_low CI_high
<chr> <dbl> <dbl> <dbl> <dbl>
1 norm_desin_mean 0.188 0.95 0.144 Inf
# ebenfalls f² = .19, 95% CI = [.14, Inf]
cohens_f_squared(lmH2b)
# A tibble: 1 × 5
Parameter Cohens_f2 CI CI_low CI_high
<chr> <dbl> <dbl> <dbl> <dbl>
1 norm_desin_mean 0.188 0.95 0.144 Inf
cor.test(d$karr_juu_mean, d$norm_desin_mean)
Pearson's product-moment correlation
data: d$karr_juu_mean and d$norm_desin_mean
t = 13.886, df = 1025, p-value < 0.00000000000000022
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3451450 0.4481791
sample estimates:
cor
0.397916
# r = .398; b = .550; R² = .158
H2 wurde bestätigt
# geom_jitter sorgt dafür, dass die Punkte nicht alle übereinander liegen (Overplotting)
# alpha = 0.2 macht die Punkte transparent, damit man Cluster besser sieht
# Regressionsgerade (method = "lm")
# Titel sind hier auskommentiert zur Übernahme der Abbildungen in die Hausarbeit/das Poster
# H1a
lmH1a <- lm(klima_verh_summ ~ anx_gesamt, data = d)
summary(lmH1a)
Call:
lm(formula = klima_verh_summ ~ anx_gesamt, data = d)
Residuals:
Min 1Q Median 3Q Max
-5.2641 -1.3015 0.0317 1.2910 5.9206
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.22786 0.16537 43.71 <0.0000000000000002 ***
anx_gesamt 0.74060 0.05527 13.40 <0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.897 on 1025 degrees of freedom
Multiple R-squared: 0.1491, Adjusted R-squared: 0.1482
F-statistic: 179.6 on 1 and 1025 DF, p-value: < 0.00000000000000022
cor.test(d$klima_verh_summ, d$anx_gesamt)
Pearson's product-moment correlation
data: d$klima_verh_summ and d$anx_gesamt
t = 13.4, df = 1025, p-value < 0.00000000000000022
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3327915 0.4369558
sample estimates:
cor
0.3861038
ggplot(d, aes(x = anx_gesamt, y = karr_juu_mean)) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
labs(#title = "Zusammenhang zwischen Klimaangst und Pro-Umwelt-Verhalten",
#subtitle = "r = .39, 95% CI = [.33, .44]",
x = "Klimaangst",
y = "Pro-Umwelt-Verhalten") +
theme_minimal() +
theme(plot.title = element_text(face = "bold")
)
# H1b
lmH1b <- lm(karr_juu_mean ~ anx_gesamt, data = d)
summary(lmH1b)
Call:
lm(formula = karr_juu_mean ~ anx_gesamt, data = d)
Residuals:
Min 1Q Median 3Q Max
-2.01110 -0.63437 -0.06937 0.50639 2.89374
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.27633 0.06951 18.36 <0.0000000000000002 ***
anx_gesamt 0.33043 0.02323 14.22 <0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7975 on 1025 degrees of freedom
Multiple R-squared: 0.1648, Adjusted R-squared: 0.164
F-statistic: 202.3 on 1 and 1025 DF, p-value: < 0.00000000000000022
cor.test(d$karr_juu_mean, d$anx_gesamt)
Pearson's product-moment correlation
data: d$karr_juu_mean and d$anx_gesamt
t = 14.224, df = 1025, p-value < 0.00000000000000022
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3536183 0.4558586
sample estimates:
cor
0.4060081
ggplot(d, aes(x = anx_gesamt, y = karr_juu_mean)) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
labs(#title = "Zusammenhang zwischen Klimaangst und Karriereabsichten",
#subtitle = "r = .41, 95% CI = [.35, .46]",
x = "Klimaangst",
y = "Karriereabsichten") +
theme_minimal() +
theme(plot.title = element_text(face = "bold")
)
# H1c
# Soziale Normen
mod_juu_norm <- lm(karr_juu_mean ~ anx_gesamt * norm_desin_mean, data = d)
interact_plot(mod_juu_norm,
pred = anx_gesamt,
modx = norm_desin_mean,
x.label = "Klimaangst",
y.label = "Karriereabsichten",
legend.main = "Soziale Normen"
) # +labs(title = "Moderation durch Soziale Normen")
# Umweltidentität
mod_juu_ident <- lm(karr_juu_mean ~ anx_gesamt * umw_ident_mean, data = d)
interact_plot(mod_juu_ident,
pred = anx_gesamt,
modx = umw_ident_mean,
x.label = "Klimaangst",
y.label = "Karriereabsichten",
legend.main = "Umweltidentität"
)#+ labs(title = "Moderation durch Umweltidentität")
# H2
# Soziale Normen
ggplot(d, aes(x = norm_desin_mean, y = karr_juu_mean)) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
labs(#title = "Soziale Normen als Prädiktor für Karriereabsichten",
#subtitle = "f² = .16, 95% CI = [.14, Inf], b = 0.55",
x = "Soziale Normen",
y = "Karriereabsichten") +
theme_minimal() +
theme(plot.title = element_text(face = "bold")
)
# Umweltidentität
ggplot(d, aes(x = umw_ident_mean, y = karr_juu_mean)) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
labs(#title = "Umweltidentität als Prädiktor für Karriereabsichten",
#subtitle = "f² = .09, 95% CI = [.06, Inf], b = 0.24",
x = "Umweltidentität",
y = "Umweltbewusste Karriereabsichten") +
theme_minimal() +
theme(plot.title = element_text(face = "bold")
)
d %>%
select(# criterion vars
Karriereabsichten = karr_juu_mean,
Umweltverhalten = klima_verh_summ,
# moderator vars & predictor vars
Klimaangst = anx_gesamt,
Umweltidentität = umw_ident_mean,
"Soziale Normen" = norm_desin_mean,
) %>%
as.matrix %>%
corx(triangle = "lower",
stars = c(.05, .01, .001),
describe = c('mean','sd')
) %>%
as.data.frame(.["apa"])
# A tibble: 5 × 6
`1` `2` `3` `4` mean sd
<chr> <chr> <chr> <chr> <chr> <chr>
1 " - " "" "" "" 2.20 0.87
2 ".37***" " - " "" "" 9.30 2.06
3 ".41***" ".39***" " - " "" 2.79 1.07
4 ".29***" ".46***" ".31***" " - " 5.43 1.03
5 ".40***" ".32***" ".36***" ".27***" 2.75 0.63
tab <- d %>%
select(
Klimaangst = anx_gesamt,
Karriereabsichten = karr_juu_mean,
Umweltverhalten = klima_verh_summ,
Umweltidentität = umw_ident_mean,
"Soziale Normen" = norm_desin_mean
) %>%
as.matrix() %>%
corx(triangle = "lower",
stars = c(.05, .01, .001),
describe = c("mean","sd")) %>%
as.data.frame(.["apa"])
kable(tab, digits = 2)
| 1 | 2 | 3 | 4 | mean | sd | |
|---|---|---|---|---|---|---|
| 1. Klimaangst | - | 2.79 | 1.07 | |||
| 2. Karriereabsichten | .41*** | - | 2.20 | 0.87 | ||
| 3. Umweltverhalten | .39*** | .37*** | - | 9.30 | 2.06 | |
| 4. Umweltidentität | .31*** | .29*** | .46*** | - | 5.43 | 1.03 |
| 5. Soziale Normen | .36*** | .40*** | .32*** | .27*** | 2.75 | 0.63 |
d %>%
select(
anx_gesamt,
umw_ident_mean,
norm_desin_mean,
karr_juu_mean,
klima_verh_summ
) %>%
drop_labels() %>% # <- extrem wichtig
as.matrix() %>%
corx(
triangle = "lower",
stars = c(.05, .01, .001),
describe = c("mean", "sd")
) %>%
as.data.frame(.["apa"]) %>%
kable(
digits = 2,
align = "c",
caption = "Korrelationsmatrix der zentralen Studienvariablen"
)
| 1 | 2 | 3 | 4 | mean | sd | |
|---|---|---|---|---|---|---|
| 1. anx_gesamt | - | 2.79 | 1.07 | |||
| 2. umw_ident_mean | .31*** | - | 5.43 | 1.03 | ||
| 3. norm_desin_mean | .36*** | .27*** | - | 2.75 | 0.63 | |
| 4. karr_juu_mean | .41*** | .29*** | .40*** | - | 2.20 | 0.87 |
| 5. klima_verh_summ | .39*** | .46*** | .32*** | .37*** | 9.30 | 2.06 |
# Tabelle 1 zeigt die bivariaten Korrelationen der zentralen Studienvariablen. Klimaangst korrelierte signifikant positiv mit umweltbezogenen Karriereabsichten sowie mit dem aggregierten Umweltverhaltensindex. Umweltidentität und wahrgenommene soziale Normen zeigten ebenfalls signifikante Zusammenhänge mit umweltbezogenen Karriereabsichten.
Die folgenden Analysen sind explorativ und dienen der vertieften Einordnung der Hauptergebnisse.
# Klimaverhalten (formativer Verhaltensindex, Summe aus 3 Items(jeweils 1-5)):
summary(d$klima_verh_summ)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.000 8.000 9.000 9.297 11.000 15.000
d %>%
filter(!is.na(klima_verh_summ)) %>%
ggplot(aes(x = klima_verh_summ)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Klimaverhalten",
y = "Dichte"
) +
theme_minimal()
# Klimaverhalten+X
# Zusätzlich (im Anschluss an den eigentlichen Fragebogen) wurde ein objektiverer Indikator für umweltbezogenes Verhalten erhoben. Aufgrund der geringen Teilnahmequote wird dieser ausschließlich explorativ analysiert.
# wept_score1 gibt an, wieviele Seiten pro Person richtig beantwortet wurden (-> 04_R_Clean_up...)
d%>% count(wept_score1)
# A tibble: 20 × 2
wept_score1 n
<int> <int>
1 1 49
2 2 17
3 3 13
4 4 9
5 5 5
6 6 2
7 7 2
8 9 3
9 10 5
10 11 1
11 12 1
12 17 1
13 18 1
14 19 1
15 21 1
16 22 2
17 25 1
18 26 1
19 30 1
20 NA 911
summary(d$wept_score1)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.000 1.000 2.000 4.388 4.000 30.000 911
d %>%
filter(!is.na(wept_score1)) %>%
ggplot(aes(x = wept_score1)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "korrekt bearbeitete Seiten",
y = "Dichte"
) +
theme_minimal()
# wept_score2 gibt an, wieviele Seiten pro Person bearbeitet wurden:
d%>% count(wept_score2)
# A tibble: 21 × 2
wept_score2 n
<int> <int>
1 1 54
2 2 34
3 3 20
4 4 14
5 5 14
6 6 3
7 7 8
8 9 3
9 10 2
10 11 2
# ℹ 11 more rows
summary(d$wept_score2)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.00 1.00 2.00 5.26 5.00 31.00 854
d %>%
filter(!is.na(wept_score2)) %>%
ggplot(aes(x = wept_score2)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "bearbeitete Seiten",
y = "Dichte"
) +
theme_minimal()
# duration.t2 gibt die Bearbeitungsdauer an
summary(d$duration.t2)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
12.0 29.0 61.5 232.1 278.2 3515.0 647
d %>%
filter(!is.na(duration.t2)) %>%
ggplot(aes(x = duration.t2)) +
geom_density(fill = "grey70", alpha = 0.6) +
labs(
x = "Bearbeitungszeit",
y = "Dichte"
) +
theme_minimal()
# Teilnahme
summary(d$duration.t2)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
12.0 29.0 61.5 232.1 278.2 3515.0 647
# n = 380
summary(d$wept_score1)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.000 1.000 2.000 4.388 4.000 30.000 911
# n = 116
summary(d$wept_score2)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.00 1.00 2.00 5.26 5.00 31.00 854
# n = 173
d$wept_participation <- ifelse(
is.na(d$wept_score1) & is.na(d$wept_score2),
"keine Teilnahme",
"Teilnahme"
)
table(d$wept_participation)
keine Teilnahme Teilnahme
854 173
d$long_duration <- ifelse(d$duration.t2 > 30, "lang", "kurz")
table(d$long_duration)
kurz lang
103 277
table(d$long_duration, d$wept_participation)
keine Teilnahme Teilnahme
kurz 103 0
lang 104 173
# passt ->
d$wept_group <- with(d,
ifelse(is.na(wept_score1) & is.na(wept_score2) & duration.t2 <= 30, "kurz – keine Teilnahme",
ifelse(is.na(wept_score1) & is.na(wept_score2) & duration.t2 > 30, "lang – keine Teilnahme",
"lang – Teilnahme"))
)
table(d$wept_group)
kurz – keine Teilnahme lang – keine Teilnahme lang – Teilnahme
103 104 173
# Gruppierung nach wept_group bzw _participation
d %>%
group_by(wept_group) %>%
summarise(
n = n(),
m_anx = mean(anx_gesamt, na.rm = TRUE),
sd_anx = sd(anx_gesamt, na.rm = TRUE),
m_ident = mean(umw_ident_mean, na.rm = TRUE),
sd_ident = sd(umw_ident_mean, na.rm = TRUE),
m_norm = mean(norm_desin_mean, na.rm = TRUE),
sd_norm = sd(norm_desin_mean, na.rm = TRUE),
m_verh = mean(klima_verh_summ, na.rm = TRUE),
sd_verh = sd(klima_verh_summ, na.rm = TRUE)
)
# A tibble: 4 × 10
wept_group n m_anx sd_anx m_ident sd_ident m_norm sd_norm m_verh sd_verh
<chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 kurz – kein… 103 2.84 1.09 5.08 1.09 2.62 0.583 8.69 2.10
2 lang – Teil… 173 3.07 1.11 5.57 0.925 2.79 0.644 9.72 2.18
3 lang – kein… 104 2.60 1.19 5.35 1.02 2.67 0.571 8.88 1.92
4 <NA> 647 2.74 1.03 5.46 1.04 2.78 0.643 9.35 2.01
d %>%
group_by(wept_participation) %>%
summarise(
n = n(),
m_anx = mean(anx_gesamt, na.rm = TRUE),
sd_anx = sd(anx_gesamt, na.rm = TRUE),
m_ident = mean(umw_ident_mean, na.rm = TRUE),
sd_ident = sd(umw_ident_mean, na.rm = TRUE),
m_norm = mean(norm_desin_mean, na.rm = TRUE),
sd_norm = sd(norm_desin_mean, na.rm = TRUE),
m_verh = mean(klima_verh_summ, na.rm = TRUE),
sd_verh = sd(klima_verh_summ, na.rm = TRUE),
m_diss = mean(kogn_disso_mean, na.rm = TRUE),
sd_diss = sd(kogn_disso_mean, na.rm = TRUE)
)
# A tibble: 2 × 12
wept_participation n m_anx sd_anx m_ident sd_ident m_norm sd_norm m_verh
<chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Teilnahme 173 3.07 1.11 5.57 0.925 2.79 0.644 9.72
2 keine Teilnahme 854 2.74 1.06 5.40 1.05 2.75 0.630 9.21
# ℹ 3 more variables: sd_verh <dbl>, m_diss <dbl>, sd_diss <dbl>
d %>%
select(wept_participation,
alter_jahre,
kinder_anza,
bildungssta,
arbeit_umfa,
arbeit_art1,
ethnie_kult,
geschlecht1) %>%
group_by(wept_participation) %>%
desc_table("n" = length,
"%" = percent,
"m" = mean,
"sd" = sd) %>%
desc_tests() %>%
desc_output(target = "DT")
auf den ersten Blick unterscheiden sich die Gruppen nicht sehr (weder Skalen noch demographisch)
t.test(anx_gesamt ~ wept_participation, data = d)
Welch Two Sample t-test
data: anx_gesamt by wept_participation
t = -3.6008, df = 238.62, p-value = 0.0003858
alternative hypothesis: true difference in means between group keine Teilnahme and group Teilnahme is not equal to 0
95 percent confidence interval:
-0.5128013 -0.1501244
sample estimates:
mean in group keine Teilnahme mean in group Teilnahme
2.737998 3.069461
t.test(umw_ident_mean ~ wept_participation, data = d)
Welch Two Sample t-test
data: umw_ident_mean by wept_participation
t = -2.1971, df = 269.6, p-value = 0.02886
alternative hypothesis: true difference in means between group keine Teilnahme and group Teilnahme is not equal to 0
95 percent confidence interval:
-0.32901677 -0.01803079
sample estimates:
mean in group keine Teilnahme mean in group Teilnahme
5.400176 5.573699
t.test(norm_desin_mean ~ wept_participation, data = d)
Welch Two Sample t-test
data: norm_desin_mean by wept_participation
t = -0.82288, df = 243.17, p-value = 0.4114
alternative hypothesis: true difference in means between group keine Teilnahme and group Teilnahme is not equal to 0
95 percent confidence interval:
-0.1494023 0.0613569
sample estimates:
mean in group keine Teilnahme mean in group Teilnahme
2.747307 2.791329
t.test(klima_verh_summ ~ wept_participation, data = d)
Welch Two Sample t-test
data: klima_verh_summ by wept_participation
t = -2.8086, df = 235.46, p-value = 0.005393
alternative hypothesis: true difference in means between group keine Teilnahme and group Teilnahme is not equal to 0
95 percent confidence interval:
-0.8589207 -0.1507177
sample estimates:
mean in group keine Teilnahme mean in group Teilnahme
9.211944 9.716763
t.test(kogn_disso_mean ~ wept_participation, data = d)
Welch Two Sample t-test
data: kogn_disso_mean by wept_participation
t = -1.1228, df = 231.74, p-value = 0.2627
alternative hypothesis: true difference in means between group keine Teilnahme and group Teilnahme is not equal to 0
95 percent confidence interval:
-0.27642065 0.07573071
sample estimates:
mean in group keine Teilnahme mean in group Teilnahme
2.306206 2.406551
t.test(karr_juu_mean ~ wept_participation, data = d)
Welch Two Sample t-test
data: karr_juu_mean by wept_participation
t = 0.27469, df = 240.02, p-value = 0.7838
alternative hypothesis: true difference in means between group keine Teilnahme and group Teilnahme is not equal to 0
95 percent confidence interval:
-0.1270220 0.1681876
sample estimates:
mean in group keine Teilnahme mean in group Teilnahme
2.202973 2.182391
# und sie unterscheiden sich doch (teilweise)
ggplot(d, aes(x = wept_participation, y = anx_gesamt)) +
geom_boxplot(alpha = 0.6, fill = "grey80") +
geom_jitter(width = 0.15, alpha = 0.2) +
labs(
x = "Teilnahme an Zahlenaufgabe",
y = "Klimaangst (gesamt)"
) +
theme_minimal()
ggplot(d, aes(x = wept_participation, y = umw_ident_mean)) +
geom_boxplot(alpha = 0.6, fill = "grey80") +
geom_jitter(width = 0.15, alpha = 0.2) +
labs(
x = "Teilnahme an Zahlenaufgabe",
y = "Umweltidentität"
) +
theme_minimal()
ggplot(d, aes(x = wept_participation, y = norm_desin_mean)) +
geom_boxplot(alpha = 0.6, fill = "grey80") +
geom_jitter(width = 0.15, alpha = 0.2) +
labs(
x = "Teilnahme an Zahlenaufgabe",
y = "Soziale Normen"
) +
theme_minimal()
ggplot(d, aes(x = wept_participation, y = klima_verh_summ)) +
geom_boxplot(alpha = 0.6, fill = "grey80") +
geom_jitter(width = 0.15, alpha = 0.2) +
labs(
x = "Teilnahme an Zahlenaufgabe",
y = "Umweltverhalten"
) +
theme_minimal()
ggplot(d, aes(x = wept_participation, y = kogn_disso_mean)) +
geom_boxplot(alpha = 0.6, fill = "grey80") +
geom_jitter(width = 0.15, alpha = 0.2) +
labs(
x = "Teilnahme an Zahlenaufgabe",
y = "Kognitive Dissonanz"
) +
theme_minimal()
d$zeitraum <- ifelse(as.Date(d$datetime_d) < as.Date("2025-11-23"),
"Mai 2025",
"November 2025")
d %>%
group_by(zeitraum) %>%
summarise(r = cor(anx_gesamt, karr_juu_mean, use = "pairwise.complete.obs"),
n = n())
# A tibble: 2 × 3
zeitraum r n
<chr> <dbl> <int>
1 Mai 2025 0.387 513
2 November 2025 0.426 514
# Der Zusammenhang zwischen Klimaangst und Karriereabsichten zeigte sich in beiden Erhebungszeiträumen in vergleichbarer Größenordnung (Mai 2025: r = .39; November 2025: r = .43).
lmexp_norm <- lm(klima_verh_summ ~ norm_desin_mean, data = d)
summary(lmexp_norm)
Call:
lm(formula = klima_verh_summ ~ norm_desin_mean, data = d)
Residuals:
Min 1Q Median 3Q Max
-5.9761 -1.2923 0.0239 1.2868 6.3392
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.39798 0.27177 23.54 <0.0000000000000002 ***
norm_desin_mean 1.05237 0.09616 10.94 <0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.946 on 1025 degrees of freedom
Multiple R-squared: 0.1046, Adjusted R-squared: 0.1037
F-statistic: 119.8 on 1 and 1025 DF, p-value: < 0.00000000000000022
lmexp_ident <- lm(klima_verh_summ ~ umw_ident_mean, data = d)
summary(lmexp_ident)
Call:
lm(formula = klima_verh_summ ~ umw_ident_mean, data = d)
Residuals:
Min 1Q Median 3Q Max
-5.8198 -1.2164 0.1802 1.2640 5.1802
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.32234 0.30571 14.14 <0.0000000000000002 ***
umw_ident_mean 0.91624 0.05532 16.56 <0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.827 on 1025 degrees of freedom
Multiple R-squared: 0.2111, Adjusted R-squared: 0.2104
F-statistic: 274.3 on 1 and 1025 DF, p-value: < 0.00000000000000022
lmexp_time <- lm(duration.t2 ~ klima_verh_summ, data = d)
summary(lmexp_time)
Call:
lm(formula = duration.t2 ~ klima_verh_summ, data = d)
Residuals:
Min 1Q Median 3Q Max
-390.91 -194.55 -99.38 34.89 3154.18
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -192.354 92.524 -2.079 0.0383 *
klima_verh_summ 46.098 9.789 4.709 0.0000035 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 407.2 on 378 degrees of freedom
(647 Beobachtungen als fehlend gelöscht)
Multiple R-squared: 0.05542, Adjusted R-squared: 0.05292
F-statistic: 22.18 on 1 and 378 DF, p-value: 0.000003498
plot(d$duration.t2, d$klima_verh_summ)
cor(d[, c("klima_verh1", "klima_verh2", "klima_verh3")],
d$anx_gesamt,
use = "pairwise.complete.obs")
[,1]
klima_verh1 0.27290866
klima_verh2 0.04957531
klima_verh3 0.45304697
# H1a einzeln hatte mit cor.test(d$anx_gesamt, d$klima_verh_summ) ergeben:
# r = .39 ist ein mittlerer Zusammenhang, der sich auch ähnlich zeigen sollte, wenn mittels Regressionsanalyse die Subskalen anx_v_aff_mean,...,anx_v_phy_mean mit klima_verh in Beziehung gesetzt werden:
d %>%
select(
klima_verh_summ,
klima_verh1,
klima_verh2,
klima_verh3,
anx_gesamt,
anx_v_aff_mean,
anx_v_cog_mean,
anx_v_beh_mean,
anx_v_phy_mean
) %>%
cor_apa()
# A tibble: 9 × 10
`1` `2` `3` `4` `5` `6` `7` `8` mean sd
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 " - " "" "" "" "" "" "" "" 9.30 2.06
2 ".72***" " - " "" "" "" "" "" "" 3.58 0.91
3 ".63***" ".23***" " - " "" "" "" "" "" 3.42 1.02
4 ".69***" ".31***" ".05" " - " "" "" "" "" 2.31 1.09
5 ".39***" ".27***" ".05" ".45***" " - " "" "" "" 2.79 1.07
6 ".34***" ".27***" ".01" ".40***" ".88***" " - " "" "" 3.91 1.50
7 ".33***" ".22***" ".04" ".40***" ".89***" ".75***" " - " "" 2.82 1.26
8 ".43***" ".34***" ".11***" ".42***" ".88***" ".74***" ".72*… " - " 2.92 1.12
9 ".30***" ".20***" ".01" ".38***" ".89***" ".72***" ".71*… ".72… 2.49 1.32
# Da es sich bei klima_verh_summ um einen formativen Verhaltensindex handelt, sind Kriterien reflektiver Skalen wie interne Konsistenz (α = .41) oder Eindimensionalität hier nicht maßgeblich. Die inhaltliche Heterogenität der Items ist dabei konzeptionell intendiert, Die Zusammenhänge der Subskalen wurden ergänzend berechnet.
# weitere Faktoren von Karriereplanung
# karr_juu_mean gibt an, welche Absichten jemand bezüglich umwelt/klimabezogener Berufsentscheidungen äußert (8 Items, based on Peltier et al., 2014), karr_entsc gibt die Relevanz des Klimawandels bei berufsbezogenen Entscheidungen an (4 Items, based on Daeninck C, Kioupi V and Vercammen A, 2023) und karr_umwelt gibt an, welchen Rang "Umwelt" in der Reihenfolge erhält (14 Auswahlfaktoren, based on Akosah-Twumasi P, Emeto TI, Lindsay D, Tsey K and Malau-Aduli BS, 2018)
cor(d$anx_gesamt, d$karr_umwelt,
use = "pairwise.complete.obs"
)
[1] 0.3810376
lm_exp_rang <- lm(karr_umwelt ~ anx_gesamt, data = d)
summary(lm_exp_rang)
Call:
lm(formula = karr_umwelt ~ anx_gesamt, data = d)
Residuals:
Min 1Q Median 3Q Max
-7.2977 -2.3468 -0.4696 1.7691 10.7121
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.10908 0.27610 7.639 0.0000000000000528 ***
anx_gesamt 1.17879 0.09212 12.796 < 0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.066 on 964 degrees of freedom
(61 Beobachtungen als fehlend gelöscht)
Multiple R-squared: 0.1452, Adjusted R-squared: 0.1443
F-statistic: 163.7 on 1 and 964 DF, p-value: < 0.00000000000000022
ggplot(d, aes(x = karr_juu_mean, y = karr_umwelt)) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
labs(title = "Klimaangst und Rang von Umwelt bei Karriereplanung",
x = "Klimaangst",
y = "Rang von Umwelt bei Karriereplanung") +
theme_minimal() +
theme(plot.title = element_text(face = "bold")
)
cor(d$anx_gesamt, d$karr_entsc_mean,
use = "pairwise.complete.obs"
)
[1] 0.4824897
lm_exp_entsc <- lm(karr_entsc_mean ~ anx_gesamt, data = d)
summary(lm_exp_entsc)
Call:
lm(formula = karr_entsc_mean ~ anx_gesamt, data = d)
Residuals:
Min 1Q Median 3Q Max
-2.2948 -0.5820 -0.1147 0.5172 3.2345
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.88242 0.07309 12.07 <0.0000000000000002 ***
anx_gesamt 0.43077 0.02443 17.64 <0.0000000000000002 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.8386 on 1025 degrees of freedom
Multiple R-squared: 0.2328, Adjusted R-squared: 0.232
F-statistic: 311 on 1 and 1025 DF, p-value: < 0.00000000000000022
ggplot(d, aes(x = anx_gesamt, y = karr_entsc_mean)) +
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
labs(title = "Klimaangst und Karriereentscheidungen",
x = "Klimaangst",
y = "Rang von Umwelt bei Karriereplanung") +
theme_minimal() +
theme(plot.title = element_text(face = "bold")
)
d %>%
select(
anx_gesamt,
karr_juu_mean,
karr_entsc_mean,
karr_umwelt
) %>%
drop_labels() %>% # <- extrem wichtig
as.matrix() %>%
corx(
triangle = "lower",
stars = c(.05, .01, .001),
describe = c("mean", "sd")
) %>%
as.data.frame(.["apa"]) %>%
kable(
digits = 2,
align = "c",
caption = "Korrelationsmatrix der 3 Faktoren von Karriereplanung mit Klimaangst"
)
| 1 | 2 | 3 | mean | sd | |
|---|---|---|---|---|---|
| 1. anx_gesamt | - | 2.79 | 1.07 | ||
| 2. karr_juu_mean | .41*** | - | 2.20 | 0.87 | |
| 3. karr_entsc_mean | .48*** | .62*** | - | 2.09 | 0.96 |
| 4. karr_umwelt | .38*** | .53*** | .53*** | 5.41 | 3.31 |
# Tabelle 2 zeigt die bivariaten Korrelationen der 3 Faktoren von Karriereplanung mit Klimaangst