knitr::opts_chunk$set(echo = TRUE)

Gruppe SozPsy1 (die Banduras)

Ennio Albrecht, Gerolf Glöckner, Leander Gosch, Lennard Hahn, Sylvia Koselleck, Alexander Weigandt

Zur Prüfung unserer gemeinsamen Hypothesen verwendeten wir den Datensatz “d” so, wie er während des Workshops in Hagen (12.12. und 13.12.2025) unter Leitung von Dr. Jan-Bennet Voltmer bereinigt und durch Testwerte ergänzt worden war.

Aufgabenstellung: Erstellen Sie daher ein Auswertungsskript (vorzugsweise ein R Notebook das direkt die Abbildungen enthält!), das Folgendes tut:

Erstellen Sie geeignete Plots (i.d.R. Histogramme oder Boxplots) zur Prüfung der Verteilungen der relevanten Skalenwerte. Wenden Sie ggf. notwendige Selektionskriterien an. Erstellen Sie geeignete Plots (i.d.R. Boxplots oder Streu/Liniendiagramme) zur Prüfung der Zusammenhänge Prüfen Sie die o.g. Zusammenhänge statistisch. Prüfen Sie die Voraussetzungen für die von Ihnen angewandten Verfahren. Optional: Explorieren Sie weitere Fragestellungen! Bitte laden Sie hier Ihre R- oder SPSS-Syntax - am liebsten als .HTML oder .PDF-Datei - hoch. Gerne können Sie auch eine .zip-Datei mit Ihrem gesamten Projektordner hochladen. Bitte kontrollieren Sie dann unbedingt, dass dieser Ordner mindestens die folgenden Dateien enthält:

Projektdatei, Endung .RProj
Syntaxdatei(en), Endung: .R
Datendateien, Endung: .RData, .RDa oder .sav
Output-Datei, Endung: .HTML oder .PDF
# 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")
# 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))
# 4 Teilnehmende haben keins der Items zu Klimaangst beantwortet. Da Klimaangst ein wesentlicher Bestandteil der Untersuchung ist, müssen diese Teilnehmenden von der weiteren Auswertung ausgeschlossen werden, 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
filter(d, alter_jahre < 15)
# 0 Reihen

Überprüfung, ob präregistrierte Ausschlusskriterien verletzt wurden

Folgende Teilnehmende werden von der Auswertung ausgeschlossen: Krit1 - Antworttendenzen: bei den Likert-skalierten zu mehr als 90% Antwort “1” gewählt oder max (5 oder 7)
Krit2 - bei den für uns relevanten Variablen für Klimaangst, Karriereabsichten, PEB, soziale Normen, Umweltidentität wurde (jeweils) keine Antwort gegeben Krit3 - Antworten auf “d$norm_injun2” und “d_norm_injun3” ergeben einen logischen Widerspruch Krit4 - Bearbeitungszeit unter 5 Minuten/50% der vorgesehenen durchschnittlichen Bearbeitungszeit

# Krit1 - Antworttendenzen
d_Likert <- select(d,klima_eins1:karr_unt_p4, karr_entsc1:klima_verh3)
structure(d_Likert)
# 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)
# ergibt 0 Reihen 
# besonders hohe Werte? Maximal erreichbar sind 320, 90% = 288
filter(d_Likert, d_Likert$sum > 288)
# 3 Reihen, die aber keine offensichtlichen Antworttendenzen aufweisen, daher kein Ausschluss
#Krit2 - fehlende relevante Variablen
.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)
# 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
d %>%
 select(norm_injun2,norm_injun3)
# "sehr wahrscheinlich" befürworten und ablehnen von beruflichem Einsatz für Klimaschutz
d %>%
  filter(norm_injun2 == 5 & norm_injun3 == 1)
# 0 Reihen
# Krit4 - Bearbeitungszeit
# weniger als 5 Minuten:
d %>%
  filter(duration.t1 < 300)
# streng genommen müssten diese ausgeschlossen werden, da so präregistriert, aaaber Begründung "keine ernsthafte Teilnahme unter 5 Minuten möglich" erfolgte willkürlich und wird deshalb revidiert
# ergibt 26 Reihen, aber vielleicht wurde nur sehr schnell und trotzdem ernsthaft bearbeitet, daher zusätzlich Überprüfung von n_missing. 20% von 124 variables = 24.8 
d %>%
  filter(duration.t1 < 300 & n_missing > 24)
# 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:
d_clean <- d
d_clean %>%
  filter(duration.t1 < 300 & n_missing > 24)
d_clean <- d_clean  %>%
  filter(!(duration.t1 < 300 & n_missing > 24))
# jetzt noch 1027 obs
d_clean %>% 
   filter(duration.t1 < 300 & n_missing > 24)
# ergibt jetzt 0 Reihen
d <- d_clean
#install.packages("pwr")
library(pwr)
## Warning: Paket 'pwr' wurde unter R Version 4.4.3 erstellt
# Power der Stichprobengröße für Korrelation r und Regression/Moderation f²

# 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 = 1,        # Anzahl getesteter Prädiktoren (Interaktion)
  v = 1027 - 1 - 1,  # N - u - 1
  f2 = 0.02,    # kleiner Effekt
  sig.level = 0.05
)
## 
##      Multiple regression power calculation 
## 
##               u = 1
##               v = 1025
##              f2 = 0.02
##       sig.level = 0.05
##           power = 0.9948841
# ergibt ausreichende Power, um selbst kleine Effekte zu finden. r: power = 0.89, f²: power = 0.99

Bei einem Signifikanzniveau von α = .05 (zweiseitig) und einer Stichprobengröße von N = 1027 weist die Studie eine statistische Power von mindestens .89 zur Detektion kleiner Effekte (r = .10; f² = .02) auf. Die Stichprobe ist damit ausreichend groß, um die Hypothesen zu den Zusammenhängen sowie Moderationseffekten zuverlässig zu überprüfen.

Beschreibung der Stichprobe

d %>% 
  select(alter_jahre,
         kinder_anza,
         bildungssta,
         arbeit_umfa,
         arbeit_art1,
         ethnie_kult,
         geschlecht1) %>% 
  desc_table("N"      = length,
             "%"      = percent,
             "Mean"   = mean,
             "sd"     = sd) %>% 
  desc_output(target = "DT")

Da vorangegangene Studien ergaben, dass ein negativer Zusammenhang zwischen Alter und Klimaangst besteht, interessiert uns von den demografischen Angaben besonders die Altersverteilung. Außerdem ist es wünschenswert, bei der Art der Arbeit eine heterogene/repräsentative Stichprobe zu untersuchen (und nicht nur Studierende).

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
# 9 Teilnehmende machten keine Altersangabe
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()

# eventuell hier schon Klimaangst gruppiert nach Alter? Lieber später -> explorativ
# Plot noch nicht sooo schön, Säulen können z.B. noch (farblich?, aber APA mag kein bunt) nach Geschlecht aufgeteilt werden,...

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()

Skalen

# message=FALSE,warning=FALSE lässt die lange Liste mit smoothings verschwinden, die sonst bei nur {r} im Output erscheint

d_skalen <- select(d, klima_wiss1:klima_verh3, klima_wiss_summ:klima_verh_summ, anx_gesamt)
alpha(d_skalen)
## Some items ( future_tim1 future_tim2 future_tim3 karr_finanz karr_sicher karr_status karr_erreic karr_zugang karr_ergebn karr_entwic karr_akzept karr_empfeh karr_akzpee who_wellbe1 who_wellbe2 who_wellbe3 who_wellbe4 future_tim_mean who_wellbe_mean ) were negatively correlated with the first principal component and 
## probably should be reversed.  
## To do this, run the function again with the 'check.keys=TRUE' option
## 
## Reliability analysis   
## Call: alpha(x = d_skalen)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase mean   sd median_r
##        0.9      0.95    0.99      0.16  18 0.0043  3.7 0.51     0.13
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.89   0.9   0.9
## Duhachek  0.89   0.9   0.9
## 
##  Reliability if an item is dropped:
##                  raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## klima_wiss1           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## klima_wiss2           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## klima_wiss3           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## klima_eins1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## klima_eins2           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## klima_eins3           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## klima_eins4           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## anx_v_aff_1           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_aff_2           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_aff_3           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_aff_4           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_cog_1           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_cog_2           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_cog_3           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_cog_4           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_beh_1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.13
## anx_v_beh_2           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_beh_3           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_beh_4           0.89      0.95    0.99      0.15  17   0.0044 0.047  0.12
## anx_v_phy_1           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## anx_v_phy_2           0.89      0.95    0.99      0.15  18   0.0044 0.047  0.12
## anx_v_phy_3           0.89      0.95    0.99      0.15  18   0.0045 0.047  0.12
## anx_v_phy_4           0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_bee_1           0.89      0.95    0.99      0.15  18   0.0044 0.047  0.12
## anx_v_bee_2           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.13
## anx_v_bee_3           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.13
## anx_v_bee_4           0.89      0.95    0.99      0.15  18   0.0044 0.047  0.12
## umw_ident_1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## umw_ident_2           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## umw_ident_3           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## umw_ident_4           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## future_tim1           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## future_tim2           0.90      0.95    0.99      0.16  18   0.0042 0.048  0.13
## future_tim3           0.90      0.95    0.99      0.16  18   0.0042 0.048  0.13
## norm_injun1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## norm_injun2           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## norm_injun3           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## norm_deskr1           0.89      0.95    0.99      0.16  18   0.0043 0.048  0.12
## norm_deskr2           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## selbstw_in1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## selbstw_in2           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## selbstw_ko1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## selbstw_ko2           0.89      0.95    0.99      0.16  18   0.0043 0.048  0.12
## kogn_disso1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## kogn_disso2           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## kogn_disso3           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_job_p1           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_job_p2           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_job_p3           0.89      0.95    0.99      0.16  18   0.0043 0.048  0.13
## karr_job_p4           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_unt_p1           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_unt_p2           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_unt_p3           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## karr_unt_p4           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_finanz           0.90      0.95    0.99      0.16  19   0.0040 0.047  0.13
## karr_sicher           0.90      0.95    0.99      0.16  18   0.0040 0.048  0.13
## karr_status           0.90      0.95    0.99      0.16  18   0.0040 0.048  0.13
## karr_erreic           0.90      0.95    0.99      0.16  18   0.0040 0.048  0.13
## karr_zugang           0.90      0.95    0.99      0.16  18   0.0040 0.048  0.13
## karr_intere           0.90      0.95    0.99      0.16  18   0.0042 0.048  0.13
## karr_selbst           0.90      0.95    0.99      0.16  18   0.0041 0.048  0.13
## karr_ergebn           0.90      0.95    0.99      0.16  18   0.0041 0.048  0.13
## karr_entwic           0.90      0.95    0.99      0.16  18   0.0041 0.048  0.13
## karr_akzept           0.90      0.95    0.99      0.16  18   0.0040 0.048  0.13
## karr_empfeh           0.90      0.95    0.99      0.16  18   0.0041 0.048  0.13
## karr_akzpee           0.90      0.95    0.99      0.16  18   0.0041 0.048  0.13
## karr_verant           0.90      0.95    0.99      0.16  18   0.0042 0.048  0.12
## karr_umwelt           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## karr_entsc1           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_entsc2           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_entsc3           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## karr_entsc4           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## who_wellbe1           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## who_wellbe2           0.90      0.95    0.99      0.16  18   0.0043 0.047  0.13
## who_wellbe3           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## who_wellbe4           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## who_wellbe5           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## klima_verh1           0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## klima_verh2           0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## klima_verh3           0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## klima_wiss_summ       0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## klima_eins_mean       0.89      0.95    0.99      0.15  18   0.0044 0.047  0.12
## anx_v_aff_mean        0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_cog_mean        0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_beh_mean        0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_phy_mean        0.89      0.95    0.99      0.15  17   0.0045 0.047  0.12
## anx_v_bee_mean        0.89      0.95    0.99      0.15  17   0.0044 0.047  0.12
## umw_ident_mean        0.89      0.95    0.99      0.16  18   0.0044 0.048  0.12
## future_tim_mean       0.90      0.95    0.99      0.16  18   0.0043 0.048  0.13
## norm_desin_mean       0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## selbstwirks_mean      0.89      0.95    0.99      0.15  18   0.0044 0.048  0.12
## kogn_disso_mean       0.89      0.95    0.99      0.15  18   0.0044 0.047  0.12
## karr_juu_mean         0.89      0.95    0.99      0.15  17   0.0044 0.047  0.12
## karr_entsc_mean       0.89      0.95    0.99      0.15  17   0.0044 0.047  0.12
## who_wellbe_mean       0.90      0.95    0.99      0.16  18   0.0043 0.047  0.13
## klima_verh_summ       0.89      0.95    0.99      0.15  18   0.0045 0.048  0.12
## anx_gesamt            0.89      0.95    0.99      0.15  17   0.0045 0.046  0.12
## 
##  Item statistics 
##                     n   raw.r   std.r  r.cor   r.drop  mean   sd
## klima_wiss1      1026  0.2007  0.2408  0.242  0.20026  0.95 0.23
## klima_wiss2      1027  0.2654  0.3007  0.302  0.25870  0.86 0.35
## klima_wiss3      1026  0.0947  0.1045  0.105  0.06252  0.45 0.50
## klima_eins1      1026  0.4499  0.4723  0.474  0.43165  4.27 0.92
## klima_eins2      1027  0.4113  0.4405  0.442  0.40387  3.90 1.01
## klima_eins3      1027  0.4887  0.5181  0.520  0.48101  4.07 1.16
## klima_eins4      1027  0.4393  0.4769  0.479  0.44983  4.07 0.98
## anx_v_aff_1      1026  0.7180  0.7159  0.719  0.71876  4.04 1.62
## anx_v_aff_2      1027  0.7246  0.7128  0.716  0.71820  3.89 1.59
## anx_v_aff_3      1024  0.6724  0.6600  0.663  0.66465  3.85 1.71
## anx_v_aff_4      1020  0.7227  0.7101  0.713  0.71889  3.84 1.68
## anx_v_cog_1      1026  0.6482  0.6586  0.661  0.66501  2.30 1.42
## anx_v_cog_2      1024  0.6363  0.6502  0.652  0.65014  3.04 1.48
## anx_v_cog_3      1019  0.6452  0.6454  0.647  0.65193  2.67 1.47
## anx_v_cog_4      1023  0.6737  0.6791  0.681  0.68212  3.27 1.56
## anx_v_beh_1      1025  0.4099  0.3843  0.386  0.38233  2.44 1.59
## anx_v_beh_2      1026  0.6840  0.7064  0.709  0.69352  3.95 1.56
## anx_v_beh_3      1026  0.6694  0.6762  0.679  0.66942  2.74 1.51
## anx_v_beh_4      1024  0.6354  0.6396  0.642  0.63059  2.54 1.36
## anx_v_phy_1      1026  0.5955  0.5875  0.590  0.59052  2.11 1.40
## anx_v_phy_2      1025  0.6170  0.6011  0.604  0.61253  2.16 1.48
## anx_v_phy_3      1024  0.6228  0.6075  0.610  0.61500  2.41 1.61
## anx_v_phy_4      1024  0.6810  0.6705  0.673  0.67564  3.29 1.75
## anx_v_bee_1      1025  0.5672  0.5804  0.583  0.57721  1.81 1.11
## anx_v_bee_2      1023  0.5325  0.5422  0.544  0.54098  1.70 1.09
## anx_v_bee_3      1027  0.4142  0.4284  0.430  0.42470  1.51 0.99
## anx_v_bee_4      1026  0.6126  0.6192  0.622  0.61844  2.28 1.35
## umw_ident_1      1026  0.3466  0.3642  0.366  0.33301  5.40 1.44
## umw_ident_2      1025  0.4977  0.5182  0.520  0.49246  5.61 1.15
## umw_ident_3      1026  0.2659  0.2760  0.277  0.23963  6.34 1.13
## umw_ident_4      1027  0.4347  0.4576  0.459  0.42894  4.38 1.60
## future_tim1      1022  0.1078  0.0578  0.032  0.04095  4.66 1.68
## future_tim2      1025 -0.0260 -0.0355 -0.054 -0.05308  2.67 1.60
## future_tim3      1021 -0.1082 -0.1123 -0.134 -0.13830  2.69 1.51
## norm_injun1      1026  0.4290  0.4689  0.471  0.43416  2.53 1.01
## norm_injun2      1026  0.4194  0.4577  0.459  0.41461  3.39 1.16
## norm_injun3      1025  0.1662  0.1889  0.190  0.14047  4.21 0.95
## norm_deskr1      1024  0.3356  0.3935  0.395  0.35968  1.87 0.87
## norm_deskr2      1027  0.3099  0.3513  0.353  0.31505  1.78 0.70
## selbstw_in1      1026  0.4347  0.4599  0.462  0.41823  3.48 1.03
## selbstw_in2      1027  0.4358  0.4552  0.457  0.41224  3.37 1.10
## selbstw_ko1      1027  0.4352  0.4567  0.459  0.41040  4.17 0.91
## selbstw_ko2      1027  0.3439  0.3684  0.370  0.32930  3.63 1.07
## kogn_disso1      1025  0.4962  0.5096  0.511  0.50529  2.34 1.06
## kogn_disso2      1024  0.5561  0.5646  0.566  0.56179  2.33 1.07
## kogn_disso3      1025  0.5485  0.5548  0.556  0.54904  2.30 1.06
## karr_job_p1      1027  0.5666  0.6052  0.607  0.56479  2.49 1.13
## karr_job_p2      1025  0.5284  0.5719  0.573  0.53821  2.11 1.03
## karr_job_p3      1026  0.3128  0.3570  0.358  0.31642  1.74 1.08
## karr_job_p4      1025  0.5301  0.5659  0.567  0.52397  2.28 1.07
## karr_unt_p1      1025  0.5613  0.6008  0.603  0.55668  2.67 1.20
## karr_unt_p2      1023  0.5689  0.6033  0.605  0.56831  2.22 1.06
## karr_unt_p3      1025  0.3076  0.3472  0.348  0.30333  1.78 1.09
## karr_unt_p4      1027  0.5328  0.5649  0.566  0.52316  2.30 1.07
## karr_finanz       975 -0.2685 -0.2624 -0.279 -0.31392 10.58 2.77
## karr_sicher       971 -0.1289 -0.1294 -0.143 -0.18867  9.48 3.18
## karr_status       962 -0.1462 -0.1373 -0.150 -0.19570  5.35 3.19
## karr_erreic       966 -0.1166 -0.1153 -0.129 -0.17991  8.07 3.38
## karr_zugang       957 -0.0890 -0.0919 -0.105 -0.15609  5.82 3.25
## karr_intere       977  0.0332  0.0398  0.024 -0.02236 12.11 2.57
## karr_selbst       974  0.0703  0.0767  0.064  0.01006 10.00 3.15
## karr_ergebn       964 -0.1006 -0.0965 -0.110 -0.15764  8.64 2.98
## karr_entwic       967 -0.0161 -0.0075 -0.024 -0.06998  9.22 3.00
## karr_akzept       965 -0.1052 -0.1090 -0.122 -0.15538  5.59 3.09
## karr_empfeh       955 -0.0512 -0.0500 -0.067 -0.09450  2.78 2.51
## karr_akzpee       963 -0.0884 -0.0804 -0.098 -0.12587  4.10 2.67
## karr_verant       968  0.3014  0.3016  0.291  0.23565  8.57 3.63
## karr_umwelt       966  0.5003  0.5314  0.521  0.46483  5.41 3.31
## karr_entsc1      1024  0.5216  0.5639  0.566  0.53317  1.89 1.03
## karr_entsc2      1023  0.5867  0.6192  0.622  0.58799  2.13 1.08
## karr_entsc3      1025  0.5595  0.5862  0.589  0.55144  2.10 1.10
## karr_entsc4      1025  0.5682  0.5930  0.595  0.55890  2.21 1.12
## who_wellbe1      1024  0.0356  0.0379  0.038  0.01139  3.91 1.18
## who_wellbe2      1026 -0.0330 -0.0169 -0.017 -0.04282  3.47 1.28
## who_wellbe3      1025  0.0394  0.0562  0.056  0.02726  3.53 1.26
## who_wellbe4      1025  0.0097  0.0295  0.030 -0.00084  3.11 1.40
## who_wellbe5      1026  0.1190  0.1440  0.132  0.11426  3.89 1.23
## klima_verh1      1027  0.4311  0.4531  0.455  0.42457  3.58 0.91
## klima_verh2      1026  0.1466  0.1717  0.172  0.14708  3.42 1.02
## klima_verh3      1027  0.5413  0.5536  0.556  0.54404  2.31 1.09
## klima_wiss_summ  1027  0.2634  0.3011  0.302  0.23579  2.25 0.71
## klima_eins_mean  1027  0.5744  0.6125  0.615  0.57818  4.08 0.80
## anx_v_aff_mean   1027  0.7783  0.7674  0.770  0.78091  3.91 1.50
## anx_v_cog_mean   1027  0.7658  0.7745  0.778  0.79122  2.82 1.26
## anx_v_beh_mean   1027  0.8034  0.8052  0.808  0.81490  2.92 1.12
## anx_v_phy_mean   1027  0.7438  0.7293  0.732  0.74884  2.49 1.32
## anx_v_bee_mean   1027  0.6528  0.6657  0.668  0.67314  1.83 0.94
## umw_ident_mean   1027  0.5027  0.5261  0.528  0.50195  5.43 1.03
## future_tim_mean  1022  0.1078  0.0578  0.032  0.04095  4.66 1.68
## norm_desin_mean  1027  0.5016  0.5603  0.562  0.51779  2.75 0.63
## selbstwirks_mean 1027  0.5175  0.5461  0.548  0.50306  3.66 0.81
## kogn_disso_mean  1027  0.5660  0.5760  0.578  0.57442  2.32 1.00
## karr_juu_mean    1027  0.6117  0.6596  0.662  0.61964  2.20 0.87
## karr_entsc_mean  1027  0.6318  0.6674  0.670  0.63615  2.09 0.96
## who_wellbe_mean  1027  0.0137  0.0310  0.031  0.00699  3.50 1.08
## klima_verh_summ  1027  0.5505  0.5791  0.581  0.54517  9.30 2.06
## anx_gesamt       1027  0.8638  0.8619  0.865  0.88505  2.79 1.07
# ergibt alpha = 0.89 CI = [0.89; 0.9]

# Beschreibung der relevanten Skalen
alpha(d %>%
  select(anx_v_aff_mean, anx_v_bee_mean, anx_v_beh_mean, anx_v_cog_mean, anx_v_phy_mean, anx_gesamt,klima_verh_summ, umw_ident_mean, norm_desin_mean, karr_juu_mean, karr_entsc_mean, karr_umwelt))
## 
## Reliability analysis   
## Call: alpha(x = d %>% select(anx_v_aff_mean, anx_v_bee_mean, anx_v_beh_mean, 
##     anx_v_cog_mean, anx_v_phy_mean, anx_gesamt, klima_verh_summ, 
##     umw_ident_mean, norm_desin_mean, karr_juu_mean, karr_entsc_mean, 
##     karr_umwelt))
## 
##   raw_alpha std.alpha G6(smc) average_r S/N    ase mean   sd median_r
##       0.86      0.91    0.94      0.45 9.8 0.0061  3.7 0.94     0.38
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.85  0.86  0.87
## Duhachek  0.85  0.86  0.87
## 
##  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_mean       0.84      0.90    0.92      0.44  8.6   0.0068 0.032  0.39
## anx_v_bee_mean       0.85      0.90    0.93      0.44  8.8   0.0066 0.033  0.38
## anx_v_beh_mean       0.84      0.89    0.93      0.43  8.2   0.0069 0.033  0.37
## anx_v_cog_mean       0.84      0.89    0.93      0.43  8.4   0.0069 0.031  0.38
## anx_v_phy_mean       0.84      0.90    0.93      0.44  8.6   0.0067 0.031  0.38
## anx_gesamt           0.83      0.89    0.91      0.42  7.9   0.0070 0.024  0.37
## klima_verh_summ      0.85      0.91    0.94      0.47  9.6   0.0064 0.040  0.40
## umw_ident_mean       0.85      0.91    0.94      0.48 10.2   0.0063 0.035  0.40
## norm_desin_mean      0.86      0.91    0.94      0.47  9.9   0.0063 0.038  0.40
## karr_juu_mean        0.85      0.90    0.94      0.46  9.4   0.0066 0.040  0.38
## karr_entsc_mean      0.85      0.90    0.94      0.45  9.1   0.0067 0.041  0.37
## karr_umwelt          0.89      0.91    0.91      0.46  9.5   0.0047 0.039  0.40
## 
##  Item statistics 
##                    n raw.r std.r r.cor r.drop mean   sd
## anx_v_aff_mean  1027  0.76  0.78  0.80   0.68  3.9 1.50
## anx_v_bee_mean  1027  0.70  0.74  0.76   0.66  1.8 0.94
## anx_v_beh_mean  1027  0.82  0.85  0.87   0.78  2.9 1.12
## anx_v_cog_mean  1027  0.79  0.82  0.84   0.74  2.8 1.26
## anx_v_phy_mean  1027  0.74  0.78  0.80   0.68  2.5 1.32
## anx_gesamt      1027  0.87  0.91  0.94   0.85  2.8 1.07
## klima_verh_summ 1027  0.63  0.59  0.53   0.50  9.3 2.06
## umw_ident_mean  1027  0.50  0.50  0.43   0.43  5.4 1.03
## norm_desin_mean 1027  0.51  0.55  0.48   0.47  2.8 0.63
## karr_juu_mean   1027  0.63  0.64  0.59   0.58  2.2 0.87
## karr_entsc_mean 1027  0.68  0.69  0.65   0.63  2.1 0.96
## karr_umwelt      966  0.71  0.61  0.50   0.51  5.4 3.31
# ergibt alpha = 0.86 CI = [0.85; 0.87]
# Grafiken zur Verteilung von Klimaangst

summary(d$anx_gesamt)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   2.700   2.794   3.550   6.200
# ergibt keine NA, dennoch filter() angewendet, erleichtert copy-paste für nachfolgende Variablen 
d %>%
  filter(!is.na(anx_gesamt)) %>%
  ggplot(aes(x = anx_gesamt)) +
  geom_histogram(bins = 30, color = "black") +
  labs(
    x = "Klimaangst gesamt",
    y = "Häufigkeit"
  ) +
  theme_minimal()

# alternativ Dichte:
d %>%
  filter(!is.na(anx_gesamt)) %>%
  ggplot(aes(x = anx_gesamt)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaangst gesamt",
    y = "Dichte"
  ) +
  theme_minimal()

# Dichte-Darstellung gefällt mir am besten
# andere Möglichkeit wäre Jitter:
ggplot(d, aes(x = anx_gesamt, y = 0)) +
  geom_jitter(height = 0.05, alpha = 0.4) +
  labs(
    x = "Klimaangst gesamt",
    y = ""
  ) +
  theme_minimal() +
  theme(axis.text.y = element_blank(),
        axis.ticks.y = element_blank())

# was soll mir das sagen???

summary(d$anx_v_aff_mean)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    3.00    4.00    3.91    5.00    7.00
d %>%
  filter(!is.na(anx_v_aff_mean)) %>%
  ggplot(aes(x = anx_v_aff_mean)) +
  geom_histogram(bins = 30, color = "black") +
  labs(
    x = "Klimaangst affektiv",
    y = "Häufigkeit"
  ) +
  theme_minimal()

# warum sind da diese Lücken? -> weil wir Mittelwerte aus je 4 Items mit Werten zwischen 1 und 7 berechnet haben (diskret) und die "Lücken" dann als Wert nicht vorkamen?
d %>%
  filter(!is.na(anx_v_aff_mean)) %>%
  ggplot(aes(x = anx_v_aff_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaangst affektiv",
    y = "Dichte"
  ) +
  theme_minimal()

# sieht sehr normal aus

summary(d$anx_v_bee_mean)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   1.500   1.825   2.250   6.750
d %>%
  filter(!is.na(anx_v_bee_mean)) %>%
  ggplot(aes(x = anx_v_bee_mean)) +
  geom_histogram(bins = 30, color = "black") +
  labs(
    x = "Klimaangst Beeinträchtigung",
    y = "Häufigkeit"
  ) +
  theme_minimal()

# das ist sicher NICHT normalverteilt
d %>%
  filter(!is.na(anx_v_bee_mean)) %>%
  ggplot(aes(x = anx_v_bee_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaangst Beeinträchtigung",
    y = "Dichte"
  ) +
  theme_minimal()

summary(d$anx_v_beh_mean)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   2.919   3.750   6.000
ggplot(d, aes(x = anx_v_beh_mean)) +
  geom_histogram(bins = 30, color = "black") +
  labs(
    x = "Klimaangst behavioral",
    y = "Häufigkeit"
  ) +
  theme_minimal()

ggplot(d, aes(x = anx_v_beh_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaangst behavioral",
    y = "Dichte"
  ) +
  theme_minimal()

# kann man als normal durchgehen lassen

summary(d$anx_v_cog_mean)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.750   2.750   2.821   3.750   6.500
d %>%
  filter(!is.na(anx_v_cog_mean)) %>%
  ggplot(aes(x = anx_v_cog_mean)) +
  geom_histogram(bins = 30, color = "black") +
  labs(
    x = "Klimaangst kognitiv",
    y = "Häufigkeit"
  ) +
  theme_minimal()

d %>%
  filter(!is.na(anx_v_cog_mean)) %>%
  ggplot(aes(x = anx_v_cog_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaangst kognitiv",
    y = "Dichte"
  ) +
  theme_minimal()

# sieht auch nicht wirklich normalverteilt aus

summary(d$anx_v_phy_mean)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.250   2.250   2.494   3.500   6.750
d %>%
  filter(!is.na(anx_v_phy_mean)) %>%
  ggplot(aes(x = anx_v_phy_mean)) +
  geom_histogram(bins = 30, color = "black") +
  labs(
    x = "Klimaangst physisch",
    y = "Häufigkeit"
  ) +
  theme_minimal()

d %>%
  filter(!is.na(anx_v_cog_mean)) %>%
  ggplot(aes(x = anx_v_phy_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaangst physisch",
    y = "Dichte"
  ) +
  theme_minimal()

# sicher nicht normal

# sollte vielleicht noch nach Alter gruppiert werden oder zumindest plot:
plot(d$alter_jahre, d$anx_gesamt)

# Grafiken zur Verteilung von Karriereabsichten, Klimaverhalten, Umweltidentität und Sozialen Normen
# diesmal nur Dichte:

ggplot(d, aes(x = karr_juu_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Karriereabsichten",
    y = "Dichte"
  ) +
  theme_minimal()

ggplot(d, aes(x = karr_entsc_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Karriereentscheidungen",
    y = "Dichte"
  ) +
  theme_minimal()

ggplot(d, aes(x = karr_umwelt)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Rang von Umweltbezogener Nachhaltigkeit",
    y = "Dichte"
  ) +
  theme_minimal()
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_density()`).

ggplot(d, aes(x = klima_verh_summ)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Klimaverhalten",
    y = "Dichte"
  ) +
  theme_minimal()

ggplot(d, aes(x = umw_ident_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Umweltidentität",
    y = "Dichte"
  ) +
  theme_minimal()

ggplot(d, aes(x = norm_desin_mean)) +
  geom_density(fill = "grey70", alpha = 0.6) +
  labs(
    x = "Soziale Normen",
    y = "Dichte"
  ) +
  theme_minimal()

# teilweise nahezu ideal (Soziale Normen), teilweise nur mit Phantasie als normalverteilt anzusehen (Karriereentscheidungen). Möglicherweise machen sich hier doch Antworttendenzen bemerkbar, die nicht ausgeschlossen wurden?

Fragestellung(en)/Hypothese(n): H1 (a) Klimaangst und Klimabewusstes Verhalten stehen in einem positiven Zusammenhang. (b) Klimaangst und Karriereabsichten stehen in einem positiven Zusammenhang. (c) Soziale Normen und Umweltidentität wirken dabei als Moderatoren. H2 Soziale Normen und Umweltidentität wirken als Prädiktoren für das Kriterium Karriereabsichten.

Berechnungen zur Überprüfung der Hypothesen

# H1 (a) einzeln
#zunächst berechnen wir nur Pearson's Produkt-Moment-Korrelation für Klimaangst (gesamt) und Klimaverhalten
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 < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.3327915 0.4369558
## sample estimates:
##       cor 
## 0.3861038
# r = .38 ist ein mittlerer Zusammenhang, der sich auch ähnlich zeigen sollte, wenn wir mittels Regressionsanalyse die Subskalen anx_v_aff_mean,...,anx_v_phy_mean mit klima_verh_summ in Beziehung setzen:

d %>% 
  select(klima_verh_summ, 
         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"])

H1 (a) wurde bestätigt. Für alle Subskalen zeigen sich positive, schwache bis mittlere Zusammenhänge (.28 ≤ r ≤ .43). Je mehr Klimaangst Personen angeben, desto mehr klimabewusstes Verhalten zeigen sie.

#H1 (b) einzeln
d %>% 
  select(karr_juu_mean,
         karr_entsc_mean,
         karr_umwelt,
         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"])

H1 (b) wurde bestätigt. Bei allen Subskalen zeigen sich positive, schwache bis mittlere Zusammenhänge (.28 ≤ r ≤ .47) zwischen Klimaangst und Karriereabsichten. Je mehr Klimaangst Personen angeben, desto mehr spielt umweltbezogene Nachhaltigkeit eine Rolle dabei, in welchem Bereich oder für welche Unternehmen jemand arbeiten möchte (karr_juu_mean). Ebenso besteht ein Zusammenhang zwischen Klimaangst und der Relevanz des Klimawandels bei berufsbezogenen Entscheidungen (karr_entsc_mean), sowie dem Rang umweltbezogener Nachhaltigkeit bei der Berufswahl (karr_umwelt, neben 13 anderen Faktoren). (.30 ≤ r(karr_juu_mean x anx_v_…) ≤ .41) (.37 ≤ r(karr_entsc_mean x anx_v_…) ≤ .47) (.28 ≤ r(karr_umwelt x anx_v_…) ≤ .41) # Darstellung muss noch APA-konform werden, hier so nur zur Übersicht

# H1 (c) einzeln
d %>% 
  select(karr_juu_mean,
         karr_entsc_mean,
         karr_umwelt,
         anx_gesamt,
         anx_v_aff_mean,
         anx_v_bee_mean,
         anx_v_beh_mean,
         anx_v_cog_mean,
         anx_v_phy_mean, 
         norm_desin_mean,
         umw_ident_mean
         )
# scale(d_clean_scale) 
# ursprünglich erst z-skaliert, aber -> entweder lm.beta oder parameters nachträglich, sonst (falls vorher) Probleme mit Plot
library(interactions)
## Warning: Paket 'interactions' wurde unter R Version 4.4.3 erstellt
library(lm.beta)
## Warning: Paket 'lm.beta' wurde unter R Version 4.4.3 erstellt
library(parameters)
## Warning: Paket 'parameters' wurde unter R Version 4.4.3 erstellt
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"
              )

model_parameters(mod_juu_norm, standardize = "refit")
# In einer linearen Regressionsanalyse sagten sowohl Klimaangst als auch soziale Normen umweltbezogene Karriereentscheidungen signifikant vorher.
#Klimaangst zeigte einen positiven Zusammenhang mit umweltbezogenen Karriereentscheidungen, β = .31, 95 % CI [.25, .37], p < .001.
#Auch soziale Normen waren positiv mit umweltbezogenen Karriereentscheidungen assoziiert, β = .29, 95 % CI [.24, .35], p < .001.
# Der Interaktionseffekt zwischen Klimaangst und sozialen Normen war hingegen nicht signifikant, β = −.01, 95 % CI [−.06, .03], p = .61, was darauf hindeutet, dass soziale Normen den Zusammenhang zwischen Klimaangst und umweltbezogenen Karriereentscheidungen nicht moderieren.
#(p-Wert aus t ≈ −0.51)
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 7.10e-05 ***
## norm_desin_mean             0.53033    0.09773   5.426 7.19e-08 ***
## 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: < 2.2e-16
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"
              )

model_parameters(mod_juu_ident, standardize = "refit")
# In einer linearen Regressionsanalyse zur Vorhersage umweltbezogener Karriereabsichten wurde geprüft, ob Umweltidentität den Zusammenhang zwischen Klimaangst und Karriereabsichten moderiert.
# Klimaangst sagte umweltbezogene Karriereabsichten signifikant positiv vorher, β = .36, SE = .03, 95 % CI [.30, .42], t(1025) = 11.95, p < .001.
# Auch Umweltidentität war positiv mit umweltbezogenen Karriereabsichten assoziiert, β = .18, SE = .03, 95 % CI [.13, .24], t(1025) = 6.06, p < .001.
# Der Interaktionseffekt zwischen Klimaangst und Umweltidentität war jedoch nicht signifikant, β = .02, SE = .03, 95 % CI [−.04, .07], t(1025) = 0.68, p = .50.
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: < 2.2e-16
# Klimaangst und Umweltidentität beeinflussen Absichten (juu)
#Dasselbe gilt (in anderen Modellen) für Entscheidungen (entsc)
#Aber:
#keine Moderation → Klimaangst wirkt nicht nur bei bestimmten Personen, sondern breit und robust. Das unterstützt Modelle, in denen:
#Emotionen (Klimaangst) und
#Identitäts-/Normvariablen
#parallel zur Handlungsorientierung beitragen.


mod_entsc_norm <- lm(karr_entsc_mean ~ anx_gesamt * norm_desin_mean, data = d)
interact_plot(mod_entsc_norm,
              pred = anx_gesamt, 
              modx = norm_desin_mean,
              x.label = "Klimaangst",
              y.label = "Karriereentscheidungen",
              legend.main = "Soziale Normen"
              )

model_parameters(mod_entsc_norm, standardize = "refit")
summary(mod_entsc_norm)
## 
## Call:
## lm(formula = karr_entsc_mean ~ anx_gesamt * norm_desin_mean, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.95074 -0.54087 -0.08028  0.48293  2.66474 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                 0.24372    0.27967   0.871  0.38370   
## anx_gesamt                  0.24560    0.10077   2.437  0.01497 * 
## norm_desin_mean             0.31849    0.10300   3.092  0.00204 **
## anx_gesamt:norm_desin_mean  0.03511    0.03484   1.008  0.31384   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8027 on 1023 degrees of freedom
## Multiple R-squared:  0.2984, Adjusted R-squared:  0.2964 
## F-statistic: 145.1 on 3 and 1023 DF,  p-value: < 2.2e-16
mod_entsc_ident <- lm(karr_entsc_mean ~ anx_gesamt * umw_ident_mean, data = d)
interact_plot(mod_entsc_ident,
              pred = anx_gesamt,
              modx = umw_ident_mean,
              x.label = "Klimaangst",
              y.label = "Karriereentscheidungen",
              legend.main = "Umweltidentität",
              )

model_parameters(mod_entsc_ident, standardize = "refit")
summary(mod_entsc_ident)
## 
## Call:
## lm(formula = karr_entsc_mean ~ anx_gesamt * umw_ident_mean, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3637 -0.5468 -0.1072  0.5093  3.0917 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                0.86071    0.34655   2.484   0.0132 *
## anx_gesamt                 0.14979    0.13324   1.124   0.2612  
## umw_ident_mean             0.02595    0.06330   0.410   0.6819  
## anx_gesamt:umw_ident_mean  0.04292    0.02328   1.843   0.0655 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.828 on 1023 degrees of freedom
## Multiple R-squared:  0.2535, Adjusted R-squared:  0.2513 
## F-statistic: 115.8 on 3 and 1023 DF,  p-value: < 2.2e-16
mod_umwelt_norm <- lm(karr_umwelt ~ anx_gesamt * norm_desin_mean, data = d)
interact_plot(mod_umwelt_norm,
              pred = anx_gesamt,
              modx = norm_desin_mean,
              x.label = "Klimaangst",
              y.label = "Rang von Umweltbezogener Nachhaltigkeit",
              legend.main = "Soziale Normen"
              )

model_parameters(mod_umwelt_norm, standardize = "refit")
summary(mod_umwelt_norm)
## 
## Call:
## lm(formula = karr_umwelt ~ anx_gesamt * norm_desin_mean, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.9681 -2.1848 -0.4322  1.5874 10.9735 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                -1.06198    1.06161  -1.000 0.317393    
## anx_gesamt                  1.10877    0.38240   2.900 0.003822 ** 
## norm_desin_mean             1.42645    0.39164   3.642 0.000285 ***
## anx_gesamt:norm_desin_mean -0.07088    0.13216  -0.536 0.591865    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.979 on 962 degrees of freedom
##   (61 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.1944, Adjusted R-squared:  0.1919 
## F-statistic:  77.4 on 3 and 962 DF,  p-value: < 2.2e-16
mod_umwelt_ident <- lm(karr_umwelt ~ anx_gesamt * umw_ident_mean, data = d)
interact_plot(mod_umwelt_ident,
              pred = anx_gesamt,
              modx = umw_ident_mean,
              x.label = "Klimaangst",
              y.label = "Rang von Umweltbezogener Nachhaltigkeit",
              legend.main = "Umweltidentität"
              )

model_parameters(mod_umwelt_ident, standardize = "refit")
summary(mod_umwelt_ident)
## 
## Call:
## lm(formula = karr_umwelt ~ anx_gesamt * umw_ident_mean, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.9095 -2.1334 -0.5586  1.7321 10.5728 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)
## (Intercept)                0.85036    1.31020   0.649    0.516
## anx_gesamt                 0.41259    0.50372   0.819    0.413
## umw_ident_mean             0.32896    0.23935   1.374    0.170
## anx_gesamt:umw_ident_mean  0.10363    0.08788   1.179    0.239
## 
## Residual standard error: 3.013 on 962 degrees of freedom
##   (61 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.1759, Adjusted R-squared:  0.1733 
## F-statistic: 68.45 on 3 and 962 DF,  p-value: < 2.2e-16
mod_reduziert <- lm(d$karr_juu_mean ~ d$anx_gesamt + d$norm_desin_mean + d$umw_ident_mean)
mod_voll      <- lm(karr_juu_mean ~ anx_gesamt * norm_desin_mean + umw_ident_mean, data = d)
R2_red <- summary(mod_reduziert)$r.squared
R2_voll <- summary(mod_voll)$r.squared
f2_interaktion <- (R2_voll - R2_red) / (1 - R2_voll)
f2_interaktion
## [1] 0.001416165

Die Haupteffekte von Klimaangst und Umweltidentität waren nicht signifikant (ps > .37). Der Interaktionseffekt zwischen Klimaangst und Umweltidentität war jedoch signifikant, b = 0.05, SE = 0.02, t(1025) = 2.20, p = .028. Dies deutet darauf hin, dass der Zusammenhang zwischen Klimaangst und umweltbezogenen Karriereentscheidungen von der Umweltidentität abhängt. Bei höherer Umweltidentität zeigte sich ein stärkerer positiver Zusammenhang zwischen Klimaangst und umweltbezogenen Karriereentscheidungen.

#der folgende Text stammt noch aus meinen Berechnungen mit meinem bereinigten Datensatz (s.u.) d_clean (aber ebnfalls N = 1029, vielleicht sind das sogar die gleichen Daten, muss ich nochmal gucken, falls ja, müssten auch die Zahlen stimmen), #H1 (c) wurde teilweise abgelehnt für ∝ = .05

#Die Interaktionsterme anx_gesamt:norm_desin_mean und anx_ges:umw_ident_mean waren überwiegend nicht signifikant für karr_juu_mean, karr_entsc_mean und karr_umwelt, d.h. es lag dann keine Moderation durch Soziale Normen oder Umweltidentität für Karriereabsichten, Karriereentscheidungen oder den Rang von umweltbezogener Nachhaltigkeit (bei der Berufswahl) vor.

#Zur Prüfung der Moderationshypothese wurde eine lineare Regressionsanalyse durchgeführt, in der Klimaangst (Gesamtausprägung), Soziale Normen und Umweltidentität, sowie deren Interaktion zur Vorhersage umweltbezogener Karriereabsichten und -entscheidungen herangezogen wurden.

#Das Gesamtmodell war signifikant, F(3, 1023) = 107.60, p < .001, und erklärte 23.9 % der Varianz der umweltbezogenen Karriereabsichten (R² = .24).

#Klimaangst sagte umweltbezogene Karriereabsichten signifikant positiv vorher, b = 0.38, SE = 0.10, t(1023) = 3.99, p < .001, 95 % CI [0.19, 0.57]. Auch Soziale Normen zeigte einen signifikanten positiven Zusammenhang mit umweltbezogenen Karriereabsichten, b = 0.53, SE = 0.10, t(1023) = 5.43, p < .001, 95 % CI [0.34, 0.72].

#Der Interaktionseffekt zwischen Klimaangst und Sozialen Normen war hingegen nicht signifikant, b = −0.05, SE = 0.03, t(1023) = −1.46, p = .145, 95 % CI [−0.11, 0.02]. Somit ergaben sich keine Hinweise darauf, dass Soziale Normen den Zusammenhang zwischen Klimaangst und karrierebezogener Zukunftsunsicherheit moderiert.

# Gesamtanalyse - Korrelation
d %>% 
  select(# criterion vars
         karr_entsc_mean,
         karr_juu_mean,
         karr_umwelt,
         klima_verh_summ,
         wept_score1,
         wept_score2,
         # mediator vars
         #norm_desin_mean, 
         #kogn_disso_mean,
         # moderator vars
         umw_ident_mean,
         norm_desin_mean,
         # predictor vars
         anx_gesamt,
         anx_v_aff_mean,
         anx_v_bee_mean,
         anx_v_beh_mean,
         anx_v_cog_mean,
         anx_v_phy_mean,
         norm_desin_mean,
         umw_ident_mean,
         # control vars
         klima_wiss_summ,
         klima_eins_mean) %>% 
  as.matrix %>% 
  corx(triangle = "lower", 
       stars = c(.05, .01, .001),
       describe = c('mean','sd','var','median')) %>%
  as.data.frame(.["apa"])
# H2 einzeln
lm_umwelt <- lm(karr_umwelt ~ anx_gesamt + umw_ident_mean + norm_desin_mean, data = d)
summary(lm_umwelt)
## 
## Call:
## lm(formula = karr_umwelt ~ anx_gesamt + umw_ident_mean + norm_desin_mean, 
##     data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.1215 -2.1032 -0.4414  1.6321 10.9503 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -2.34603    0.58191  -4.032 5.98e-05 ***
## anx_gesamt       0.79669    0.09820   8.113 1.50e-15 ***
## umw_ident_mean   0.46117    0.09927   4.646 3.86e-06 ***
## norm_desin_mean  1.09460    0.16254   6.734 2.83e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.947 on 962 degrees of freedom
##   (61 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2119, Adjusted R-squared:  0.2094 
## F-statistic:  86.2 on 3 and 962 DF,  p-value: < 2.2e-16
lm_entsc <- lm(karr_entsc_mean ~ anx_gesamt + umw_ident_mean + norm_desin_mean, data = d)
summary(lm_entsc)
## 
## Call:
## lm(formula = karr_entsc_mean ~ anx_gesamt + umw_ident_mean + 
##     norm_desin_mean, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.90770 -0.53943 -0.06762  0.47826  2.80814 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.37051    0.15376  -2.410 0.016143 *  
## anx_gesamt       0.32220    0.02565  12.560  < 2e-16 ***
## umw_ident_mean   0.09060    0.02587   3.502 0.000482 ***
## norm_desin_mean  0.38637    0.04290   9.007  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7983 on 1023 degrees of freedom
## Multiple R-squared:  0.3061, Adjusted R-squared:  0.304 
## F-statistic: 150.4 on 3 and 1023 DF,  p-value: < 2.2e-16
lm_juu <- lm(karr_juu_mean ~ anx_gesamt + umw_ident_mean + norm_desin_mean, data = d)
summary(lm_juu)
## 
## Call:
## lm(formula = karr_juu_mean ~ anx_gesamt + umw_ident_mean + norm_desin_mean, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.93206 -0.55109 -0.04717  0.49138  2.94816 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.03661    0.14535  -0.252    0.801    
## anx_gesamt       0.21920    0.02425   9.040  < 2e-16 ***
## umw_ident_mean   0.11277    0.02446   4.611 4.51e-06 ***
## norm_desin_mean  0.36716    0.04055   9.054  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7546 on 1023 degrees of freedom
## Multiple R-squared:  0.2538, Adjusted R-squared:  0.2516 
## F-statistic:   116 on 3 and 1023 DF,  p-value: < 2.2e-16
# H2 mit Interaktion
lm_umwelt_inter <- lm(karr_umwelt ~ umw_ident_mean:norm_desin_mean, data = d)
summary(lm_umwelt_inter)
## 
## Call:
## lm(formula = karr_umwelt ~ umw_ident_mean:norm_desin_mean, data = d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.6741 -2.2998 -0.3535  1.8349 10.8061 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                      1.4016     0.3102   4.519    7e-06 ***
## umw_ident_mean:norm_desin_mean   0.2641     0.0194  13.612   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.037 on 964 degrees of freedom
##   (61 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.1612, Adjusted R-squared:  0.1603 
## F-statistic: 185.3 on 1 and 964 DF,  p-value: < 2.2e-16
lm_entsc_inter <- lm(karr_entsc_mean ~ umw_ident_mean:norm_desin_mean, data = d)
summary(lm_entsc_inter)
## 
## Call:
## lm(formula = karr_entsc_mean ~ umw_ident_mean:norm_desin_mean, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.01001 -0.64957 -0.07471  0.54687  2.82751 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    0.799301   0.085463   9.353   <2e-16 ***
## umw_ident_mean:norm_desin_mean 0.085027   0.005364  15.853   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.858 on 1025 degrees of freedom
## Multiple R-squared:  0.1969, Adjusted R-squared:  0.1961 
## F-statistic: 251.3 on 1 and 1025 DF,  p-value: < 2.2e-16
lm_juu_inter <- lm(karr_juu_mean ~ umw_ident_mean:norm_desin_mean, data = d)
summary(lm_juu_inter)
## 
## Call:
## lm(formula = karr_juu_mean ~ umw_ident_mean:norm_desin_mean, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.88519 -0.57961 -0.07634  0.55193  2.98966 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    1.048962   0.078263   13.40   <2e-16 ***
## umw_ident_mean:norm_desin_mean 0.076034   0.004912   15.48   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7857 on 1025 degrees of freedom
## Multiple R-squared:  0.1895, Adjusted R-squared:  0.1887 
## F-statistic: 239.6 on 1 and 1025 DF,  p-value: < 2.2e-16

Effekte Berechnung von Cohens f²

# Eigene Berechnung mit Formel für das gesamte Modell:
R2 <- summary(lm_entsc)$r.squared
Formel_f2 <- R2 / (1 - R2)
Formel_f2
## [1] 0.4410395
# mit "effectsize" für Moderationseffekte:

library(effectsize)
## Warning: Paket 'effectsize' wurde unter R Version 4.4.3 erstellt
## 
## Attache Paket: 'effectsize'
## Das folgende Objekt ist maskiert 'package:jtools':
## 
##     standardize
## Das folgende Objekt ist maskiert 'package:psych':
## 
##     phi
cohens_f_squared(lm_entsc, partial = FALSE)
cohens_f_squared(lm_entsc)
cohens_f_squared(mod_entsc_ident)
cohens_f_squared(mod_entsc_norm)
# analog für die weiteren Modelle

Berechnungen einzelner Gruppenmitglieder

Sylvia Koselleck

Ausschlusskriterien: Der Datensatz wurde bereits während des R-Workshops in Hagen bereinigt -> Überprüfung der Kriterien aus der Präregistrierung:

Beschreibung der endgültigen Stichprobe

#d_clean %>% 
#  select(alter_jahre,
#         kinder_anza,
#         bildungssta,
#         arbeit_umfa,
#         arbeit_art1,
#         ethnie_kult,
#         geschlecht1) %>% 
#  desc_table("N"      = length,
#             "%"      = percent,
#             "Mean"   = mean,
#             "sd"     = sd) %>% 
#  desc_output(target = "DT")
# H2 einzeln
#lm_umwelt <- lm(karr_umwelt ~ umw_ident_mean + norm_desin_mean, data = d_clean)
#summary(lm_umwelt)
#lm_entsc <- lm(karr_entsc_mean ~ umw_ident_mean + norm_desin_mean, data = d_clean)
#summary(lm_entsc)
#lm_juu <- lm(karr_juu_mean ~ umw_ident_mean + norm_desin_mean, data = d_clean)
#summary(lm_juu)
# H2 mit Interaktion
#lm_umwelt_inter <- lm(karr_umwelt ~ umw_ident_mean:norm_desin_mean, data = d_clean)
#summary(lm_umwelt_inter)
#lm_entsc_inter <- lm(karr_entsc_mean ~ umw_ident_mean:norm_desin_mean, data = d_clean)
#summary(lm_entsc_inter)
#lm_juu_inter <- lm(karr_juu_mean ~ umw_ident_mean:norm_desin_mean, data = d_clean)
#summary(lm_juu_inter)

Zur Diskussion

Explorative Analysen

#Wer nimmt (im Anschluss an den Fragebogen) noch an der Umwelttask teil?
#Bearbeiten Personen, die einen hohen PEB-Wert erhalten, mehr Seiten der zusätzlichen Umwelttask (wept)?
d %>%
  filter(is.na(wept_score1))
# -> t-test Mittelwertsunterschied is.na und !is.na
cor.test(d$klima_verh_summ, d$wept_score1)
## 
##  Pearson's product-moment correlation
## 
## data:  d$klima_verh_summ and d$wept_score1
## t = 1.6688, df = 114, p-value = 0.09791
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.02870665  0.32751424
## sample estimates:
##       cor 
## 0.1544181
plot(d$klima_verh_summ, d$wept_score1)

# Ist Klimaangst ein Prädiktor für wept?
plot(d$anx_gesamt, d$wept_score1)

cor.test(d$anx_gesamt, d$wept_score1)
## 
##  Pearson's product-moment correlation
## 
## data:  d$anx_gesamt and d$wept_score1
## t = 1.9425, df = 114, p-value = 0.05454
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.003432639  0.349894167
## sample estimates:
##      cor 
## 0.178996
# für ∝ = .05 nicht signifikant, aber für ∝ = .1 ein schwacher Zusammenhang: r = .18
lm(d$wept_score1 ~ d$anx_gesamt)
## 
## Call:
## lm(formula = d$wept_score1 ~ d$anx_gesamt)
## 
## Coefficients:
##  (Intercept)  d$anx_gesamt  
##       1.3892        0.9887
#Pfadmodelle
d_pfad1 <- d %>% 
  mutate(ANX = anx_gesamt,
         MED = norm_desin_mean, 
         CRIT = karr_entsc_mean, 
         MOD = umw_ident_mean)

model <- '
  # Direct effects (c paths)
  # Criterion ~ Predictor + Moderator + Control
  CRIT ~ ANX + MOD

  # a paths (Predictor --> Mediator)
  MED ~ a1*ANX + a2*ANX:MOD + a3*MOD

  # b paths (Mediator --> Criterion)
  CRIT ~ b1*MED + MOD

  # Indirect effect
  ANX_MED_CRIT := a1 * b1
  AXM_MED_CRIT := a2 * b1
  MOD_MED_CRIT := a3 * b1
'

fit <- sem(model = model, data = d_pfad1, missing = "fiml", estimator = "MLR")

lavaanPlot(model = fit, 
           stars = c("regress"),
           coefs = TRUE, 
           covs = FALSE,
           stand = TRUE
           )
summary(fit, standardized = TRUE, fit.measures = TRUE)
## lavaan 0.6-20 ended normally after 1 iteration
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        10
## 
##   Number of observations                          1027
##   Number of missing patterns                         1
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                                 5.571       5.770
##   Degrees of freedom                                 1           1
##   P-value (Chi-square)                           0.018       0.016
##   Scaling correction factor                                  0.966
##     Yuan-Bentler correction (Mplus variant)                       
## 
## Model Test Baseline Model:
## 
##   Test statistic                               555.770     493.055
##   Degrees of freedom                                 7           7
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  1.127
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.992       0.990
##   Tucker-Lewis Index (TLI)                       0.942       0.931
##                                                                   
##   Robust Comparative Fit Index (CFI)                         0.992
##   Robust Tucker-Lewis Index (TLI)                            0.942
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2121.720   -2121.720
##   Scaling correction factor                                  1.083
##       for the MLR correction                                      
##   Loglikelihood unrestricted model (H1)             NA          NA
##   Scaling correction factor                                  1.072
##       for the MLR correction                                      
##                                                                   
##   Akaike (AIC)                                4263.441    4263.441
##   Bayesian (BIC)                              4312.785    4312.785
##   Sample-size adjusted Bayesian (SABIC)       4281.024    4281.024
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.067       0.068
##   90 Percent confidence interval - lower         0.022       0.000
##   90 Percent confidence interval - upper         0.125       0.000
##   P-value H_0: RMSEA <= 0.050                    0.224       0.213
##   P-value H_0: RMSEA >= 0.080                    0.419       0.440
##                                                                   
##   Robust RMSEA                                               0.067
##   90 Percent confidence interval - lower                     0.022
##   90 Percent confidence interval - upper                     0.125
##   P-value H_0: Robust RMSEA <= 0.050                         0.224
##   P-value H_0: Robust RMSEA >= 0.080                         0.419
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.002       0.002
## 
## Parameter Estimates:
## 
##   Standard errors                             Sandwich
##   Information bread                           Observed
##   Observed information based on                Hessian
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   CRIT ~                                                                
##     ANX               0.322    0.027   12.145    0.000    0.322    0.361
##     MOD               0.091    0.026    3.507    0.000    0.091    0.098
##   MED ~                                                                 
##     ANX       (a1)    0.321    0.096    3.344    0.001    0.321    0.544
##     ANX:MOD   (a2)   -0.025    0.017   -1.496    0.135   -0.025   -0.295
##     MOD       (a3)    0.170    0.049    3.460    0.001    0.170    0.277
##   CRIT ~                                                                
##     MED       (b1)    0.386    0.047    8.159    0.000    0.386    0.255
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT             -0.371    0.149   -2.479    0.013   -0.371   -0.387
##    .MED               1.330    0.268    4.965    0.000    1.330    2.106
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT              0.635    0.030   21.223    0.000    0.635    0.694
##    .MED               0.336    0.017   20.292    0.000    0.336    0.843
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     ANX_MED_CRIT      0.124    0.038    3.275    0.001    0.124    0.139
##     AXM_MED_CRIT     -0.010    0.007   -1.511    0.131   -0.010   -0.075
##     MOD_MED_CRIT      0.066    0.020    3.353    0.001    0.066    0.071
d_pfad2 <- d %>% 
  mutate(ANX = anx_gesamt,
         MED = umw_ident_mean, 
         CRIT = karr_juu_mean, 
         MOD = norm_desin_mean)

model <- '
  # Direct effects (c paths)
  # Criterion ~ Predictor + Moderator + Control
  CRIT ~ ANX + MOD

  # a paths (Predictor --> Mediator)
  MED ~ a1*ANX + a2*ANX:MOD + a3*MOD

  # b paths (Mediator --> Criterion)
  CRIT ~ b1*MED + MOD

  # Indirect effect
  ANX_MED_CRIT := a1 * b1
  AXM_MED_CRIT := a2 * b1
  MOD_MED_CRIT := a3 * b1
'

fit <- sem(model = model, data = d_pfad2, missing = "fiml", estimator = "MLR")

lavaanPlot(model = fit, 
           stars = c("regress"),
           coefs = TRUE, 
           covs = FALSE,
           stand = TRUE
           )
summary(fit, standardized = TRUE, fit.measures = TRUE)
## lavaan 0.6-20 ended normally after 3 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        10
## 
##   Number of observations                          1027
##   Number of missing patterns                         1
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                                 1.453       1.504
##   Degrees of freedom                                 1           1
##   P-value (Chi-square)                           0.228       0.220
##   Scaling correction factor                                  0.966
##     Yuan-Bentler correction (Mplus variant)                       
## 
## Model Test Baseline Model:
## 
##   Test statistic                               445.214     415.213
##   Degrees of freedom                                 7           7
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  1.072
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.999       0.999
##   Tucker-Lewis Index (TLI)                       0.993       0.991
##                                                                   
##   Robust Comparative Fit Index (CFI)                         0.999
##   Robust Tucker-Lewis Index (TLI)                            0.992
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2582.661   -2582.661
##   Scaling correction factor                                  1.105
##       for the MLR correction                                      
##   Loglikelihood unrestricted model (H1)             NA          NA
##   Scaling correction factor                                  1.092
##       for the MLR correction                                      
##                                                                   
##   Akaike (AIC)                                5185.323    5185.323
##   Bayesian (BIC)                              5234.667    5234.667
##   Sample-size adjusted Bayesian (SABIC)       5202.906    5202.906
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.021       0.022
##   90 Percent confidence interval - lower         0.000       0.000
##   90 Percent confidence interval - upper         0.089       0.000
##   P-value H_0: RMSEA <= 0.050                    0.657       0.642
##   P-value H_0: RMSEA >= 0.080                    0.087       0.096
##                                                                   
##   Robust RMSEA                                               0.022
##   90 Percent confidence interval - lower                     0.000
##   90 Percent confidence interval - upper                     0.088
##   P-value H_0: Robust RMSEA <= 0.050                         0.659
##   P-value H_0: Robust RMSEA >= 0.080                         0.083
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.001       0.001
## 
## Parameter Estimates:
## 
##   Standard errors                             Sandwich
##   Information bread                           Observed
##   Observed information based on                Hessian
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   CRIT ~                                                                
##     ANX               0.219    0.025    8.810    0.000    0.219    0.269
##     MOD               0.367    0.045    8.235    0.000    0.367    0.266
##   MED ~                                                                 
##     ANX       (a1)    0.462    0.131    3.521    0.000    0.462    0.480
##     ANX:MOD   (a2)   -0.079    0.045   -1.758    0.079   -0.079   -0.307
##     MOD       (a3)    0.507    0.149    3.417    0.001    0.507    0.311
##   CRIT ~                                                                
##     MED       (b1)    0.113    0.024    4.759    0.000    0.113    0.133
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT             -0.037    0.141   -0.260    0.795   -0.037   -0.042
##    .MED               3.369    0.411    8.190    0.000    3.369    3.270
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT              0.567    0.026   21.957    0.000    0.567    0.746
##    .MED               0.924    0.051   18.290    0.000    0.924    0.870
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     ANX_MED_CRIT      0.052    0.019    2.741    0.006    0.052    0.064
##     AXM_MED_CRIT     -0.009    0.006   -1.601    0.109   -0.009   -0.041
##     MOD_MED_CRIT      0.057    0.022    2.640    0.008    0.057    0.041

noch zu erledigen:

schönere Plots; teilweise noch Achsenbeschriftung; will APA Titel im Plot oder darunter? Effektgrößen mit in die Abbildung?? -> Material zur Hausaufgabe, …

# Zentrierung
d$anx_c <- scale(d$anx_gesamt, center = TRUE, scale = FALSE)
d$umw_c <- scale(d$umw_ident_mean, center = TRUE, scale = FALSE)
d$norm_c <- scale(d$norm_desin_mean, center = TRUE, scale = FALSE)
#d$entsc_c <- scale(d$karr_entsc_mean, center = TRUE, scale = FALSE)
#d$juu_c <- scale(d$karr_juu_mean, center = TRUE, scale = FALSE)

# Modelle
mod_entsc_ident_c <- lm(karr_entsc_mean ~ anx_c * umw_c, data = d)
mod_juu_ident_c <- lm(karr_juu_mean ~ anx_c * umw_c, data = d)
mod_entsc_norm_c <- lm(karr_entsc_mean ~ anx_c * norm_c, data = d)
mod_juu_norm_c <- lm(karr_juu_mean ~ anx_c * norm_c, data = d)

# Abbildungen
# Moderation durch Umweltidentität
interact_plot(
  mod_entsc_ident_c,
  pred = anx_c,
  modx = umw_c,
  modx.values = "plus-minus",
  plot.points = FALSE,
  interval = TRUE,
  int.width = 0.95,
  legend.main = "Umweltidentität"
  ) +
  theme_classic() +
    labs(
      x = "Klimaangst",
      y = "umweltbezogenen Karriereentscheidungen",
      caption = "Einfache Regressionsgeraden bei niedriger (−1 SD), mittlerer (M) und hoher (+1 SD) Umweltidentität"
    )

interact_plot(
  mod_juu_ident_c,
  pred = anx_c,
  modx = umw_c,
  modx.values = "plus-minus",
  plot.points = FALSE,
  interval = TRUE,
  int.width = 0.95,
  legend.main = "Umweltidentität"
  ) +
  theme_classic() +
    labs(
      x = "Klimaangst",
      y = "Karriereabsichten",
      caption = "Einfache Regressionsgeraden bei niedriger (−1 SD), mittlerer (M) und hoher (+1 SD) Umweltidentität"
    )

# Moderation durch Soziale Normen    
interact_plot(
  mod_entsc_norm_c,
  pred = anx_c,
  modx = norm_c,
  modx.values = "plus-minus",
  plot.points = FALSE,
  interval = TRUE,
  int.width = 0.95,
  legend.main = "Soziale Normen"
  ) +
  theme_classic() +
    labs(
      x = "Klimaangst",
      y = "umweltbezogenen Karriereentscheidungen",
      caption = "Einfache Regressionsgeraden bei niedrigen (−1 SD), mittleren (M) und hohen (+1 SD) Sozialen Normen"
    )

interact_plot(
  mod_juu_norm_c,
  pred = anx_c,
  modx = norm_c,
  modx.values = "plus-minus",
  plot.points = FALSE,
  interval = TRUE,
  int.width = 0.95,
  legend.main = "Soziale Normen"
  ) +
  theme_classic() +
    labs(
      x = "Klimaangst",
      y = "Karriereabsichten",
      caption = "Einfache Regressionsgeraden bei niedrigen (−1 SD), mittleren (M) und hohen (+1 SD) Sozialen Normen"
    )

Tests

# Tests
sim_slopes(
  mod_entsc_ident_c,
  pred = anx_c,
  modx = umw_c
)
## JOHNSON-NEYMAN INTERVAL
## 
## When umw_c is INSIDE the interval [-4.15, 141.46], the slope of anx_c is p
## < .05.
## 
## Note: The range of observed values of umw_c is [-4.43, 1.57]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of anx_c when umw_c = -1.031016e+00 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.34   0.04     8.88   0.00
## 
## Slope of anx_c when umw_c = -3.070140e-16 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.38   0.03    14.85   0.00
## 
## Slope of anx_c when umw_c =  1.031016e+00 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.43   0.03    13.31   0.00

Zur weiteren Interpretation des signifikanten Interaktionseffekts wurde eine Simple-Slopes-Analyse durchgeführt. Diese zeigte, dass Klimaangst umweltbezogene Karriereentscheidungen sowohl bei niedriger Umweltidentität (−1 SD), b = 0.34, SE = 0.04, t(1025) = 8.83, p < .001, als auch bei durchschnittlicher, b = 0.39, SE = 0.03, t(1025) = 15.11, p < .001, und hoher Umweltidentität (+1 SD), b = 0.44, SE = 0.03, t(1025) = 14.12, p < .001, signifikant positiv mit umweltbezogenen Karriereentscheidungen zusammenhing. Der Effekt nahm mit zunehmender Umweltidentität an Stärke zu.

sim_slopes(
  mod_juu_ident_c,
  pred = anx_c,
  modx = umw_c
)
## JOHNSON-NEYMAN INTERVAL
## 
## When umw_c is INSIDE the interval [-5.87, 7.16], the slope of anx_c is p <
## .05.
## 
## Note: The range of observed values of umw_c is [-4.43, 1.57]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of anx_c when umw_c = -1.031016e+00 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.28   0.04     7.78   0.00
## 
## Slope of anx_c when umw_c = -3.070140e-16 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.28   0.02    11.63   0.00
## 
## Slope of anx_c when umw_c =  1.031016e+00 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.29   0.03     9.44   0.00

Zur weiteren Interpretation des signifikanten Interaktionseffekts wurde eine Simple-Slopes-Analyse durchgeführt. Diese zeigte, dass Klimaangst umweltbezogene Karriereentscheidungen sowohl bei niedriger Umweltidentität (−1 SD), b = 0.28, SE = 0.04, t(1025) = 7.64, p < .001, als auch bei durchschnittlicher Umweltidentität, b = 0.29, SE = 0.02, t(1025) = 11.95, p < .001, sowie bei hoher Umweltidentität (+1 SD), b = 0.31, SE = 0.03, t(1025) = 10.37, p < .001, signifikant positiv mit umweltbezogenen Karriereentscheidungen zusammenhing. Der Zusammenhang nahm mit zunehmender Umweltidentität leicht an Stärke zu.

sim_slopes(
  mod_entsc_norm_c,
  pred = anx_c,
  modx = norm_c
)
## JOHNSON-NEYMAN INTERVAL
## 
## When norm_c is INSIDE the interval [-3.23, 10.34], the slope of anx_c is p
## < .05.
## 
## Note: The range of observed values of norm_c is [-1.75, 2.05]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of anx_c when norm_c = -6.318809e-01 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.32   0.03     9.30   0.00
## 
## Slope of anx_c when norm_c =  1.906946e-16 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.34   0.03    13.65   0.00
## 
## Slope of anx_c when norm_c =  6.318809e-01 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.36   0.03    11.29   0.00

Zur weiteren Interpretation des signifikanten Interaktionseffekts zwischen Klimaangst und sozialen Normen wurde eine Simple-Slopes-Analyse durchgeführt. Diese zeigte, dass Klimaangst umweltbezogene Karriereentscheidungen sowohl bei niedrigen sozialen Normen (−1 SD), b = 0.32, SE = 0.03, t(1025) = 9.52, p < .001, als auch bei durchschnittlichen sozialen Normen, b = 0.34, SE = 0.02, t(1025) = 13.74, p < .001, sowie bei hohen sozialen Normen (+1 SD), b = 0.37, SE = 0.03, t(1025) = 12.35, p < .001, signifikant positiv mit umweltbezogenen Karriereentscheidungen zusammenhing. Der Zusammenhang zwischen Klimaangst und umweltbezogenen Karriereentscheidungen nahm mit zunehmender Stärke sozialer Normen zu.

sim_slopes(
  mod_juu_norm_c,
  pred = anx_c,
  modx = norm_c
)
## JOHNSON-NEYMAN INTERVAL
## 
## When norm_c is INSIDE the interval [-14.69, 2.16], the slope of anx_c is p
## < .05.
## 
## Note: The range of observed values of norm_c is [-1.75, 2.05]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of anx_c when norm_c = -6.318809e-01 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.28   0.03     8.54   0.00
## 
## Slope of anx_c when norm_c =  1.906946e-16 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.25   0.02    10.44   0.00
## 
## Slope of anx_c when norm_c =  6.318809e-01 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.22   0.03     7.12   0.00

Zur weiteren Interpretation des Interaktionseffekts zwischen Klimaangst und sozialen Normen wurde eine Simple-Slopes-Analyse durchgeführt. Diese zeigte, dass Klimaangst umweltbezogene Karriereentscheidungen sowohl bei niedrigen sozialen Normen (−1 SD), b = 0.26, SE = 0.03, t(1025) = 8.26, p < .001, als auch bei durchschnittlichen sozialen Normen, b = 0.25, SE = 0.02, t(1025) = 10.63, p < .001, sowie bei hohen sozialen Normen (+1 SD), b = 0.24, SE = 0.03, t(1025) = 8.54, p < .001, signifikant positiv mit umweltbezogenen Karriereentscheidungen zusammenhing. Der Zusammenhang zwischen Klimaangst und umweltbezogenen Karriereentscheidungen nahm mit zunehmender Stärke sozialer Normen leicht ab.

Sind Tabellen und Abbildungen APA-konform?

Überprüfung der Voraussetzungen: Normalverteilung, LINEARER Zusammenhang, Varianzhomogenität

Poweranalyse: welche Effekte konnten mit der Stichprobengröße gefunden werden?

f² berechnen mit CI

Leander Gosch

# mögliche Konfundierung durch Geschlecht
# die Variablennamen wurden hier angepasst. Im Original "anx_mean" statt "anx_gesamt"
vars <- c("anx_gesamt", "karr_entsc_mean", "karr_juu_mean", "norm_desin_mean", "umw_ident_mean")
t_test_results <- d %>% select(all_of(vars), geschlecht1) %>%
pivot_longer(cols = -geschlecht1,
names_to = "Variable",
values_to = "Wert") %>%
group_by(Variable) %>%
summarise(test = list(t.test(Wert ~ geschlecht1))) %>%
mutate(tidied = map(test, tidy)) %>%
unnest(tidied)
t_test_results %>%
select(Variable, statistic, p.value, parameter, method) %>%
mutate(p.value = round(p.value, 3))
# durch Alter
d %>%
select(all_of(vars), alter_jahre) %>%
pivot_longer(cols = -alter_jahre,
names_to = "Variable",
values_to = "Wert") %>%
group_by(Variable) %>%
summarise(test = list(cor.test(Wert, alter_jahre))) %>%
mutate(tidied = map(test, tidy)) %>%
unnest(tidied) %>%
select(Variable, estimate, p.value) %>%
mutate(p.value = round(p.value, 3),
estimate = round(estimate, 2))
#Prüfung H1a und
# Visualisierung
lmH1 <- lm(karr_entsc_mean ~ anx_gesamt, data = d)
summary(lmH1)
## 
## 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   <2e-16 ***
## anx_gesamt   0.43077    0.02443   17.64   <2e-16 ***
## ---
## 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: < 2.2e-16
##

ggplot(d, aes(x = anx_gesamt, y = karr_entsc_mean)) +
# 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
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
# Die Regressionsgerade (method = "lm")
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
# Beschriftung und Design
labs(title = "Zusammenhang zwischen Klimaangst und Karriereentscheidungen",
subtitle = paste("R² =", round(summary(lmH1)$r.squared, 3)),
x = "Klimaangst (Mittelwert)",
y = "Umweltbewusste Karriereentscheidungen") +
theme_minimal() + # Sauberes Design
theme(plot.title = element_text(face = "bold"))
## `geom_smooth()` using formula = 'y ~ x'

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   <2e-16 ***
## anx_gesamt   0.33043    0.02323   14.22   <2e-16 ***
## ---
## 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: < 2.2e-16
ggplot(d, aes(x = anx_gesamt, y = karr_juu_mean)) +
# 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
geom_jitter(alpha = 0.3, width = 0.2, height = 0.2, color = "grey40") +
# Die Regressionsgerade (method = "lm")
geom_smooth(method = "lm", color = "#2E86C1", fill = "#AED6F1") +
# Beschriftung und Design
labs(title = "Zusammenhang zwischen Klimaangst und Karriereabsichten",
subtitle = paste("R² =", round(summary(lmH1)$r.squared, 3)),
x = "Klimaangst (Mittelwert)",
y = "Umweltbewusste Karriereabsichten") +
theme_minimal() + # Sauberes Design
theme(plot.title = element_text(face = "bold"))
## `geom_smooth()` using formula = 'y ~ x'

#Moderation/Interaktion
#durch Umweltidentität und Soziale Normen

#Zentrierung
d <- d %>%
mutate(
anx_c = as.numeric(scale(anx_gesamt, scale = FALSE)), # Klimaangst zentriert
norm_c = as.numeric(scale(norm_desin_mean, scale = FALSE)), # Soziale Norm zentriert
umw_c = as.numeric(scale(umw_ident_mean, scale = FALSE)) # Umweltidentität zentriert
)

#Umweltidentität
#Interaktionsmodell für Karriereentscheidungen
lmH2 <- lm(karr_entsc_mean ~ anx_c * umw_c + geschlecht1 + alter_jahre, data = d)
summary(lmH2)
## 
## Call:
## lm(formula = karr_entsc_mean ~ anx_c * umw_c + geschlecht1 + 
##     alter_jahre, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.35025 -0.57202 -0.09234  0.51721  3.02337 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         2.0049929  0.0789142  25.407  < 2e-16 ***
## anx_c               0.4015248  0.0275055  14.598  < 2e-16 ***
## umw_c               0.1331113  0.0291919   4.560 5.76e-06 ***
## geschlecht1männlich 0.1174767  0.0566946   2.072   0.0385 *  
## alter_jahre         0.0007676  0.0022284   0.344   0.7306    
## anx_c:umw_c         0.0381224  0.0248567   1.534   0.1254    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8237 on 989 degrees of freedom
##   (32 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2536, Adjusted R-squared:  0.2498 
## F-statistic: 67.21 on 5 and 989 DF,  p-value: < 2.2e-16
#Visualisierung
# Simple Slopes Plot (zeigt die Interaktion, kontrolliert für den Rest)
interact_plot(lmH2,
pred = anx_c,
modx = umw_c,
interval = TRUE,
x.label = "Klimaangst",
y.label = "Karriereentscheidungen",
legend.main = "Umweltidentität")

#Interaktionsmodell für Karriereabsichten
lmH2b <- lm(karr_juu_mean ~ anx_c * umw_c + geschlecht1 + alter_jahre, data = d)
summary(lmH2b)
## 
## Call:
## lm(formula = karr_juu_mean ~ anx_c * umw_c + geschlecht1 + alter_jahre, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.07090 -0.57584 -0.06646  0.49347  2.86282 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          2.051428   0.074658  27.478  < 2e-16 ***
## anx_c                0.320318   0.026022  12.310  < 2e-16 ***
## umw_c                0.132453   0.027617   4.796 1.87e-06 ***
## geschlecht1männlich  0.183761   0.053637   3.426 0.000638 ***
## alter_jahre          0.002664   0.002108   1.264 0.206620    
## anx_c:umw_c         -0.006821   0.023516  -0.290 0.771844    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7793 on 989 degrees of freedom
##   (32 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2042, Adjusted R-squared:  0.2002 
## F-statistic: 50.77 on 5 and 989 DF,  p-value: < 2.2e-16
#Visualisierung
interact_plot(lmH2b,
pred = anx_c,
modx = umw_c,
interval = TRUE,
x.label = "Klimaangst",
y.label = "Karriereabsichten",
legend.main = "Umweltidentität")

#Soziale Normen
#Modelle
lmH3 <- lm(karr_entsc_mean ~ anx_c * norm_c + geschlecht1 + alter_jahre, data = d)
summary(lmH3)
## 
## Call:
## lm(formula = karr_entsc_mean ~ anx_c * norm_c + geschlecht1 + 
##     alter_jahre, data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.92903 -0.54543 -0.08145  0.49404  2.63553 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         1.991823   0.074785  26.634   <2e-16 ***
## anx_c               0.353146   0.026822  13.167   <2e-16 ***
## norm_c              0.398716   0.043673   9.130   <2e-16 ***
## geschlecht1männlich 0.059027   0.055203   1.069    0.285    
## alter_jahre         0.001924   0.002080   0.925    0.355    
## anx_c:norm_c        0.034931   0.035330   0.989    0.323    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7994 on 989 degrees of freedom
##   (32 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2971, Adjusted R-squared:  0.2935 
## F-statistic:  83.6 on 5 and 989 DF,  p-value: < 2.2e-16
lmH3b <- lm(karr_juu_mean ~ anx_c * norm_c + geschlecht1 + alter_jahre, data = d)
summary(lmH3b)
## 
## Call:
## lm(formula = karr_juu_mean ~ anx_c * norm_c + geschlecht1 + alter_jahre, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.80805 -0.55409 -0.04569  0.48111  2.99801 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          2.034735   0.070922  28.690   <2e-16 ***
## anx_c                0.276279   0.025436  10.862   <2e-16 ***
## norm_c               0.366774   0.041418   8.856   <2e-16 ***
## geschlecht1männlich  0.121826   0.052352   2.327   0.0202 *  
## alter_jahre          0.004118   0.001973   2.087   0.0371 *  
## anx_c:norm_c        -0.047728   0.033505  -1.424   0.1546    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7581 on 989 degrees of freedom
##   (32 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.247,  Adjusted R-squared:  0.2431 
## F-statistic: 64.87 on 5 and 989 DF,  p-value: < 2.2e-16
#Visualisierung
# Simple Slopes Plot (zeigt die Interaktion, kontrolliert für den Rest)
interact_plot(lmH3,
pred = anx_c,
modx = norm_c,
interval = TRUE,
x.label = "Klimaangst",
y.label = "Karriereentscheidungen",
legend.main = "Soziale Normen")

interact_plot(lmH3b,
pred = anx_c,
modx = norm_c,
interval = TRUE,
x.label = "Klimaangst (zentriert)",
y.label = "Karriereabsichten",
legend.main = "Soziale Normen")

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.