Gruppe SozPsy1 (die Banduras)

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

Dieses Auswertungsskript enthält neben den Berechnungen in R zur Prüfung unserer gemeinsamen Hypothesen auch einige Chunks, die nur für einzelne Mitglieder der Gruppe SozPsy1 (die Banduras) relevant bezüglich der Hausarbeit sind. Es wurden unterschiedliche Ausschlusskriterien präregistriert, die (sofern angewendet) dann auch zu leicht abweichenden Datensätzen und Ergebnissen führten. 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.

Die Aufgabenstellung für dieses (erste) Auswertungsskript war folgende:

Fällig: Sonntag, 11. Januar 2026, 23:59

Der Datenauswertung liegen natürlich die zuvor abgesprochenen Fragestellungen dieser Studie zugrunde.

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")
d_kopie <- d
# Nochmalige Datenbereinigung vor der Auswertung, damit keine ungeeigneten Datensätze in die Berechnungen/Hypothesenprüfung eingehen:
# wir fügen noch eine Variable für Klimaangst (insgesamt) hinzu:

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

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, auch wenn sie andere Fragen umfassend beantwortet haben. 
d <- d %>%
  filter(!is.na(anx_gesamt))
# d hat jetzt noch 1029 obs
#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 = 1029,
  sig.level = 0.05,
  alternative = "two.sided"
)
## 
##      approximate correlation power calculation (arctangh transformation) 
## 
##               n = 1029
##               r = 0.1
##       sig.level = 0.05
##           power = 0.8953198
##     alternative = two.sided
# Beispiel: f² = .02
pwr.f2.test(
  u = 1,        # Anzahl getesteter Prädiktoren (Interaktion)
  v = 1029 - 1 - 1,  # N - u - 1
  f2 = 0.02,    # kleiner Effekt
  sig.level = 0.05
)
## 
##      Multiple regression power calculation 
## 
##               u = 1
##               v = 1027
##              f2 = 0.02
##       sig.level = 0.05
##           power = 0.9949489
# ergibt ausreichende Power, um selbst kleine Effekte zu finden. r: power = 0.8953198, f²: power = 0.9949489

Bei einem Signifikanzniveau von α = .05 (zweiseitig) und einer Stichprobengröße von N = 1029 weist die Studie eine statistische Power von mindestens .9 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    29.0    32.5    40.0    80.0      10
# 10 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 
##                                   477                                    49 
## Derzeit kein Beschäftigungsverhältnis                  Sonstiges, und zwar: 
##                                    27                                    68 
##                                  NA's 
##                                     2
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       1      0.16  18 0.0043  3.7 0.52     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    1.00      0.16  18   0.0044 0.048  0.12
## klima_eins3           0.89      0.95    1.00      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.0044 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.98      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.98      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.16  18   0.0044 0.048  0.12
## 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.0043 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    1.00      0.16  18   0.0042 0.048  0.13
## future_tim2           0.90      0.95    1.00      0.16  18   0.0042 0.048  0.13
## future_tim3           0.90      0.95    1.00      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.90      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.0043 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    1.00      0.15  18   0.0044 0.048  0.12
## karr_job_p2           0.89      0.95    1.00      0.15  18   0.0044 0.048  0.12
## karr_job_p3           0.90      0.95    1.00      0.16  18   0.0043 0.048  0.13
## karr_job_p4           0.89      0.95    1.00      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    1.00      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    1.00      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    1.00      0.16  18   0.0043 0.048  0.13
## who_wellbe2           0.90      0.95    1.00      0.16  18   0.0042 0.047  0.13
## who_wellbe3           0.90      0.95    1.00      0.16  18   0.0043 0.048  0.13
## who_wellbe4           0.90      0.95    1.00      0.16  18   0.0043 0.048  0.13
## who_wellbe5           0.90      0.95    1.00      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.98      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    1.00      0.16  18   0.0042 0.048  0.13
## norm_desin_mean       0.89      0.95    0.98      0.15  18   0.0043 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    1.00      0.16  18   0.0043 0.047  0.13
## klima_verh_summ       0.89      0.95    0.99      0.15  18   0.0044 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      1028  0.1708  0.2297  0.2302  0.18789  0.94 0.23
## klima_wiss2      1028  0.2559  0.2972  0.2979  0.25454  0.86 0.35
## klima_wiss3      1027  0.0916  0.1034  0.1036  0.06129  0.45 0.50
## klima_eins1      1028  0.4502  0.4725  0.4736  0.43272  4.27 0.92
## klima_eins2      1028  0.3992  0.4361  0.4371  0.39810  3.90 1.02
## klima_eins3      1028  0.4768  0.5138  0.5150  0.47535  4.07 1.16
## klima_eins4      1028  0.4399  0.4771  0.4721  0.45035  4.07 0.98
## anx_v_aff_1      1026  0.7180  0.7159  0.7176  0.71794  4.04 1.62
## anx_v_aff_2      1027  0.7246  0.7127  0.7144  0.71739  3.89 1.59
## anx_v_aff_3      1024  0.6724  0.6599  0.6615  0.66389  3.85 1.71
## anx_v_aff_4      1020  0.7227  0.7100  0.7117  0.71808  3.84 1.68
## anx_v_cog_1      1026  0.6482  0.6585  0.6601  0.66426  2.30 1.42
## anx_v_cog_2      1024  0.6363  0.6501  0.6516  0.64941  3.04 1.48
## anx_v_cog_3      1019  0.6452  0.6453  0.6468  0.65120  2.67 1.47
## anx_v_cog_4      1023  0.6737  0.6790  0.6806  0.68135  3.27 1.56
## anx_v_beh_1      1025  0.4099  0.3843  0.3852  0.38191  2.44 1.59
## anx_v_beh_2      1026  0.6840  0.7064  0.7080  0.69274  3.95 1.56
## anx_v_beh_3      1027  0.6722  0.6772  0.6788  0.66958  2.74 1.51
## anx_v_beh_4      1025  0.6391  0.6408  0.6423  0.62949  2.54 1.36
## anx_v_phy_1      1026  0.5955  0.5875  0.5889  0.58986  2.11 1.40
## anx_v_phy_2      1025  0.6170  0.6011  0.6025  0.61185  2.16 1.48
## anx_v_phy_3      1024  0.6228  0.6074  0.6088  0.61430  2.41 1.61
## anx_v_phy_4      1024  0.6810  0.6705  0.6720  0.67487  3.29 1.75
## anx_v_bee_1      1025  0.5672  0.5803  0.5817  0.57658  1.81 1.11
## anx_v_bee_2      1023  0.5325  0.5422  0.5435  0.54038  1.70 1.09
## anx_v_bee_3      1027  0.4142  0.4284  0.4294  0.42423  1.51 0.99
## anx_v_bee_4      1026  0.6126  0.6191  0.6206  0.61775  2.28 1.35
## umw_ident_1      1027  0.3481  0.3648  0.3657  0.33383  5.40 1.44
## umw_ident_2      1026  0.4987  0.5186  0.5198  0.49273  5.61 1.15
## umw_ident_3      1026  0.2659  0.2760  0.2767  0.23937  6.34 1.13
## umw_ident_4      1028  0.4370  0.4583  0.4594  0.42941  4.38 1.60
## future_tim1      1023  0.1115  0.0590  0.0337  0.04204  4.66 1.68
## future_tim2      1026 -0.0176 -0.0326 -0.0507 -0.04973  2.67 1.61
## future_tim3      1021 -0.1082 -0.1123 -0.1353 -0.13815  2.69 1.51
## norm_injun1      1026  0.4290  0.4688  0.4699  0.43369  2.53 1.01
## norm_injun2      1027  0.4213  0.4582  0.4593  0.41506  3.39 1.16
## norm_injun3      1025  0.1662  0.1889  0.1894  0.14032  4.21 0.95
## norm_deskr1      1025  0.3427  0.3954  0.3964  0.36136  1.87 0.88
## norm_deskr2      1029  0.3280  0.3561  0.3570  0.31766  1.79 0.72
## selbstw_in1      1026  0.4347  0.4599  0.4609  0.41777  3.48 1.03
## selbstw_in2      1028  0.4378  0.4558  0.4569  0.41319  3.38 1.10
## selbstw_ko1      1028  0.4357  0.4570  0.4580  0.41067  4.17 0.91
## selbstw_ko2      1027  0.3439  0.3684  0.3693  0.32894  3.63 1.07
## kogn_disso1      1026  0.5000  0.5108  0.5120  0.50548  2.35 1.06
## kogn_disso2      1025  0.5593  0.5659  0.5673  0.56262  2.33 1.07
## kogn_disso3      1025  0.5485  0.5547  0.5561  0.54843  2.30 1.06
## karr_job_p1      1027  0.5666  0.6051  0.6066  0.56417  2.49 1.13
## karr_job_p2      1026  0.5325  0.5731  0.5525  0.53808  2.11 1.03
## karr_job_p3      1026  0.3128  0.3570  0.3324  0.31608  1.74 1.08
## karr_job_p4      1025  0.5301  0.5658  0.5672  0.52339  2.28 1.07
## karr_unt_p1      1025  0.5613  0.6007  0.6021  0.55607  2.67 1.20
## karr_unt_p2      1023  0.5689  0.6032  0.6046  0.56768  2.22 1.06
## karr_unt_p3      1025  0.3076  0.3472  0.3480  0.30300  1.78 1.09
## karr_unt_p4      1028  0.5363  0.5660  0.5674  0.52408  2.30 1.08
## karr_finanz       975 -0.2685 -0.2623 -0.2805 -0.31359 10.58 2.77
## karr_sicher       972 -0.1234 -0.1278 -0.1281 -0.18718  9.49 3.18
## karr_status       962 -0.1462 -0.1373 -0.1377 -0.19549  5.35 3.19
## karr_erreic       967 -0.1101 -0.1132 -0.1135 -0.17748  8.08 3.39
## karr_zugang       957 -0.0890 -0.0919 -0.0921 -0.15592  5.82 3.25
## karr_intere       977  0.0332  0.0398  0.0399 -0.02234 12.11 2.57
## karr_selbst       974  0.0703  0.0767  0.0768  0.01005 10.00 3.15
## karr_ergebn       964 -0.1006 -0.0965 -0.0967 -0.15747  8.64 2.98
## karr_entwic       967 -0.0161 -0.0075 -0.0075 -0.06991  9.22 3.00
## karr_akzept       965 -0.1052 -0.1090 -0.1092 -0.15522  5.59 3.09
## karr_empfeh       955 -0.0512 -0.0500 -0.0501 -0.09440  2.78 2.51
## karr_akzpee       963 -0.0884 -0.0804 -0.0805 -0.12574  4.10 2.67
## karr_verant       969  0.3036  0.3024  0.3031  0.23673  8.57 3.64
## karr_umwelt       967  0.5031  0.5323  0.5335  0.46584  5.42 3.32
## karr_entsc1      1024  0.5216  0.5638  0.5652  0.53258  1.89 1.03
## karr_entsc2      1023  0.5867  0.6192  0.6206  0.58734  2.13 1.08
## karr_entsc3      1025  0.5595  0.5862  0.5875  0.55083  2.10 1.10
## karr_entsc4      1027  0.5744  0.5950  0.5964  0.56027  2.22 1.12
## who_wellbe1      1025  0.0407  0.0396  0.0368  0.01345  3.92 1.18
## who_wellbe2      1026 -0.0330 -0.0169 -0.0189 -0.04278  3.47 1.28
## who_wellbe3      1026  0.0450  0.0581  0.0564  0.02949  3.53 1.26
## who_wellbe4      1025  0.0097  0.0295  0.0276 -0.00084  3.11 1.40
## who_wellbe5      1027  0.1235  0.1454  0.1312  0.11547  3.89 1.24
## klima_verh1      1028  0.4332  0.4538  0.4549  0.42553  3.58 0.91
## klima_verh2      1027  0.1382  0.1689  0.1693  0.14427  3.41 1.02
## klima_verh3      1027  0.5413  0.5535  0.5548  0.54344  2.31 1.09
## klima_wiss_summ  1029  0.2393  0.2923  0.2930  0.22621  2.25 0.71
## klima_eins_mean  1029  0.5675  0.6102  0.6116  0.57610  4.08 0.80
## anx_v_aff_mean   1027  0.7783  0.7673  0.7692  0.78003  3.91 1.50
## anx_v_cog_mean   1027  0.7658  0.7744  0.7763  0.79033  2.82 1.26
## anx_v_beh_mean   1029  0.8075  0.8069  0.8089  0.81135  2.93 1.13
## anx_v_phy_mean   1027  0.7438  0.7293  0.7310  0.74799  2.49 1.32
## anx_v_bee_mean   1027  0.6528  0.6657  0.6672  0.67239  1.83 0.94
## umw_ident_mean   1029  0.5060  0.5273  0.5285  0.50361  5.43 1.03
## future_tim_mean  1023  0.1115  0.0590  0.0337  0.04204  4.66 1.68
## norm_desin_mean  1029  0.5121  0.5628  0.5641  0.51841  2.76 0.64
## selbstwirks_mean 1029  0.5212  0.5474  0.5487  0.50479  3.67 0.82
## kogn_disso_mean  1029  0.5728  0.5786  0.5800  0.57562  2.33 1.01
## karr_juu_mean    1029  0.6191  0.6618  0.6634  0.61963  2.20 0.88
## karr_entsc_mean  1029  0.6385  0.6695  0.6711  0.63625  2.09 0.96
## who_wellbe_mean  1028  0.0206  0.0333  0.0332  0.00968  3.51 1.08
## klima_verh_summ  1029  0.5216  0.5694  0.5708  0.53201  9.28 2.07
## anx_gesamt       1029  0.8665  0.8637  0.8658  0.87943  2.80 1.09
# ergibt alpha = 0.9 [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.84  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.93      0.44  8.6   0.0069 0.032  0.38
## anx_v_bee_mean       0.84      0.90    0.93      0.44  8.8   0.0067 0.034  0.37
## anx_v_beh_mean       0.83      0.89    0.93      0.43  8.2   0.0070 0.033  0.37
## anx_v_cog_mean       0.83      0.89    0.93      0.43  8.4   0.0070 0.031  0.37
## anx_v_phy_mean       0.84      0.90    0.93      0.44  8.6   0.0068 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.95      0.47  9.8   0.0063 0.039  0.40
## umw_ident_mean       0.85      0.91    0.95      0.48 10.2   0.0064 0.035  0.40
## norm_desin_mean      0.85      0.91    0.95      0.47  9.9   0.0064 0.038  0.40
## karr_juu_mean        0.85      0.90    0.94      0.46  9.3   0.0066 0.040  0.37
## karr_entsc_mean      0.84      0.90    0.94      0.45  9.0   0.0067 0.041  0.37
## karr_umwelt          0.89      0.91    0.94      0.46  9.5   0.0048 0.039  0.39
## 
##  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.65  1.8 0.94
## anx_v_beh_mean  1029  0.82  0.85  0.87   0.78  2.9 1.13
## 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.67  2.5 1.32
## anx_gesamt      1029  0.87  0.91  0.94   0.84  2.8 1.09
## klima_verh_summ 1029  0.61  0.57  0.47   0.48  9.3 2.07
## umw_ident_mean  1029  0.50  0.50  0.43   0.43  5.4 1.03
## norm_desin_mean 1029  0.52  0.56  0.48   0.47  2.8 0.64
## karr_juu_mean   1029  0.64  0.64  0.60   0.58  2.2 0.88
## karr_entsc_mean 1029  0.69  0.69  0.65   0.63  2.1 0.96
## karr_umwelt      967  0.71  0.61  0.55   0.51  5.4 3.32
# ergibt alpha = 0.86 [0.84; 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.802   3.550   7.000
# 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.    NA's 
##    1.00    3.00    4.00    3.91    5.00    7.00       2
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.    NA's 
##   1.000   1.000   1.500   1.825   2.250   6.750       2
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.927   3.750   7.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.    NA's 
##   1.000   1.750   2.750   2.821   3.750   6.500       2
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.    NA's 
##   1.000   1.250   2.250   2.494   3.500   6.750       2
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 62 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 = 12.125, df = 1027, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.2992228 0.4061935
## sample estimates:
##       cor 
## 0.3538648
# r = .35 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 ≤ .40). 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.96665 -0.55456 -0.07192  0.49177  2.91983 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 0.26723    0.24552   1.088 0.276659    
## anx_gesamt                  0.29304    0.08580   3.416 0.000661 ***
## norm_desin_mean             0.44754    0.08941   5.006 6.55e-07 ***
## anx_gesamt:norm_desin_mean -0.01479    0.02894  -0.511 0.609388    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7625 on 1025 degrees of freedom
## Multiple R-squared:  0.2516, Adjusted R-squared:  0.2494 
## F-statistic: 114.9 on 3 and 1025 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.16554 -0.60701 -0.06671  0.49756  2.77248 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                0.75220    0.32377   2.323   0.0204 *
## anx_gesamt                 0.21082    0.12401   1.700   0.0894 .
## umw_ident_mean             0.11668    0.05883   1.983   0.0476 *
## anx_gesamt:umw_ident_mean  0.01464    0.02151   0.681   0.4961  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7856 on 1025 degrees of freedom
## Multiple R-squared:  0.2057, Adjusted R-squared:  0.2033 
## F-statistic: 88.46 on 3 and 1025 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.95776 -0.54165 -0.07913  0.48357  2.65807 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                 0.27849    0.25821   1.079  0.28105   
## anx_gesamt                  0.23105    0.09023   2.561  0.01059 * 
## norm_desin_mean             0.30487    0.09403   3.242  0.00122 **
## anx_gesamt:norm_desin_mean  0.04062    0.03044   1.334  0.18234   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8019 on 1025 degrees of freedom
## Multiple R-squared:  0.3108, Adjusted R-squared:  0.3088 
## F-statistic: 154.1 on 3 and 1025 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.3918 -0.5499 -0.1093  0.5135  3.0982 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)   
## (Intercept)               0.940399   0.341204   2.756  0.00595 **
## anx_gesamt                0.115649   0.130688   0.885  0.37641   
## umw_ident_mean            0.009123   0.061996   0.147  0.88304   
## anx_gesamt:umw_ident_mean 0.049907   0.022666   2.202  0.02790 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8279 on 1025 degrees of freedom
## Multiple R-squared:  0.2655, Adjusted R-squared:  0.2633 
## F-statistic: 123.5 on 3 and 1025 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.9867 -2.1785 -0.4211  1.5689 10.9680 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                -0.99938    1.01382  -0.986 0.324501    
## anx_gesamt                  1.08266    0.35919   3.014 0.002644 ** 
## norm_desin_mean             1.40186    0.37162   3.772 0.000172 ***
## anx_gesamt:norm_desin_mean -0.06098    0.12247  -0.498 0.618629    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.978 on 963 degrees of freedom
##   (62 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.1977, Adjusted R-squared:  0.1952 
## F-statistic: 79.09 on 3 and 963 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.930 -2.131 -0.552  1.733 10.570 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)
## (Intercept)                0.89895    1.29850   0.692    0.489
## anx_gesamt                 0.39190    0.49825   0.787    0.432
## umw_ident_mean             0.31871    0.23653   1.347    0.178
## anx_gesamt:umw_ident_mean  0.10787    0.08658   1.246    0.213
## 
## Residual standard error: 3.012 on 963 degrees of freedom
##   (62 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.1792, Adjusted R-squared:  0.1766 
## F-statistic: 70.08 on 3 and 963 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] 7.066097e-05

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.1221 -2.1018 -0.4301  1.6293 10.9508 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -2.34718    0.57942  -4.051 5.51e-05 ***
## anx_gesamt       0.79689    0.09777   8.151 1.12e-15 ***
## umw_ident_mean   0.46115    0.09921   4.648 3.82e-06 ***
## norm_desin_mean  1.09487    0.16204   6.757 2.44e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.945 on 963 degrees of freedom
##   (62 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2151, Adjusted R-squared:  0.2126 
## F-statistic: 87.96 on 3 and 963 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.91587 -0.53756 -0.06681  0.48086  2.81658 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.38824    0.15255  -2.545 0.011072 *  
## anx_gesamt       0.32515    0.02545  12.775  < 2e-16 ***
## umw_ident_mean   0.09049    0.02586   3.500 0.000486 ***
## norm_desin_mean  0.39041    0.04267   9.151  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7979 on 1025 degrees of freedom
## Multiple R-squared:  0.3178, Adjusted R-squared:  0.3158 
## F-statistic: 159.1 on 3 and 1025 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.94653 -0.55249 -0.04357  0.49148  2.95047 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.06493    0.14432  -0.450    0.653    
## anx_gesamt       0.22390    0.02408   9.299  < 2e-16 ***
## umw_ident_mean   0.11259    0.02446   4.603  4.7e-06 ***
## norm_desin_mean  0.37362    0.04036   9.256  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7548 on 1025 degrees of freedom
## Multiple R-squared:  0.2666, Adjusted R-squared:  0.2645 
## F-statistic: 124.2 on 3 and 1025 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.6847 -2.2904 -0.3588  1.8345 10.8178 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     1.38661    0.30820   4.499 7.66e-06 ***
## umw_ident_mean:norm_desin_mean  0.26518    0.01924  13.782  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.036 on 965 degrees of freedom
##   (62 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.1645, Adjusted R-squared:  0.1636 
## F-statistic:   190 on 1 and 965 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.03234 -0.64243 -0.08446  0.55837  2.82332 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    0.773744   0.084569   9.149   <2e-16 ***
## umw_ident_mean:norm_desin_mean 0.086869   0.005288  16.428   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8588 on 1027 degrees of freedom
## Multiple R-squared:  0.2081, Adjusted R-squared:  0.2073 
## F-statistic: 269.9 on 1 and 1027 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.9051 -0.5818 -0.0820  0.5657  2.9952 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    1.022047   0.077493   13.19   <2e-16 ***
## umw_ident_mean:norm_desin_mean 0.077974   0.004845   16.09   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7869 on 1027 degrees of freedom
## Multiple R-squared:  0.2014, Adjusted R-squared:  0.2006 
## F-statistic:   259 on 1 and 1027 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.4657388
# 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:

# wir möchten folgende Teilnehmende von der Auswertung ausschließen: 
# Krit1 - Antworttendenzen: bei den Likert-skalierten zu mehr als 90% Antwort "1" gewählt oder nicht geantwortet (NA:= 0) 
# Krit2 - bei den für uns relevanten Variablen (betreffend: Klimaangst, Karriereabsichten, PEB, soziale Normen, Umweltidentität) 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)
#alpha(d_Likert)
# 63 Variablen, range 1 bis 7
#d_Likert$sum <- rowSums(d_Likert, na.rm = TRUE)
#filter(d_Likert, d_Likert$sum < 70)
# ergibt 4 Reihen, die wir aber zunächst im Datensatz d belassen, ggf werden sie für unsere Berechnungen ausgeschlossen (-> Krit2)

# Krit2 - fehlende Variablen
#d_rel <- d
#d_rel <- d_rel %>%
#  select(lfdn:consent_participation, duration.t2, wept_score1, wept_score2,n_missing, alter_jahre, arbeit_art1, #anx_v_aff_1:anx_v_bee_4, anx_v_aff_mean, anx_v_bee_mean, anx_v_beh_mean, anx_v_cog_mean, anx_v_phy_mean, #umw_ident_1:umw_ident_4, umw_ident_mean, norm_injun1:norm_deskr2, norm_desin_mean, karr_job_p1:karr_unt_p4, #karr_juu_mean, karr_entsc1:karr_entsc4, karr_entsc_mean, karr_umwelt, klima_verh1:klima_verh3, klima_verh_summ)

#d_fehlt <- d_rel %>%
# select(anx_v_aff_mean, anx_v_bee_mean, anx_v_beh_mean, anx_v_cog_mean, anx_v_phy_mean, umw_ident_mean, #norm_desin_mean, karr_juu_mean, karr_entsc_mean, klima_verh_summ)
#
#d_fehlt %>%
#  filter(rowSums(d_fehlt) < 10, na.rm = TRUE)
# Es sind also keine Teilnehmenden dabei, die gar keine der für uns relevanten Fragen beantwortet haben. Bei der #Berechnung der Mittelwerte war es ausreichend, wenn mindestens ein Item beantwortet war. 

# 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)
#
# Krit4 - Bearbeitungszeit
# # nicht mein Kriterium, aber auch möglich: weniger als 50% der durchschnittlichen Bearbeitungszeit:
#m_t1 <- mean(d$duration.t1, na.rm = TRUE)
#m_t1/2
#d %>%
  #filter(duration.t1 < 431)

# weniger als 5 Minuten:
#d %>%
#  filter(duration.t1 < 300)
# ergibt 27 Zeilen, aber vielleicht wurde nur sehr schnell und trotzdem ernsthaft bearbeitet, daher zusätzlich Überprüfung von $n_missing:
#d %>%
#  filter(duration.t1 < 300 & n_missing > 20)
# Sind diese fehlenden Werte für uns relevant?
#d_rel %>%
#  filter(duration.t1 < 300 & n_missing > 20)
# ergibt 6 Reihen
# bei 3 davon liegen aber für uns relevante Werte vor, insgesamt auch nur wenig mehr als 20 fehlende Werte (21, 21, 22), die Bearbeitungszeit (236, 118, 217) ist zwar teilweise sehr kurz, da aber die anderen Kriterien nicht verletzt wurden, kann hier trotzdem von einer ernsthaften Bearbeitung ausgegangen werden, wir belassen diese daher im Datensatz. 
# Bei 2 Teilnehmenden war sowohl die Bearbeitungszeit sehr kurz (78, 75) und auch die Zahl der ausgelassenen Items sehr hoch (66 und 83). Eine teilnehmende Person liegt zwar nur knapp unter 5 Minuten (299), hat aber 98 fehlende Werte, davon auch sämtliche Items zu Klimaangst. Wir entfernen diese drei aus dem Datensatz:
#d_clean <- d
#d_clean %>%
# filter(duration.t1 < 300 & n_missing > 65)
#d_clean <- d_clean  %>%
#  filter(!(duration.t1 < 300 & n_missing > 65))
# Seltsamerweise haben wir 4 obs entfernt (jetzt 1029), obwohl filter() nur die 3 zuvor betrachteten Fälle enthielt
#d_clean %>% 
#   filter(duration.t1 < 300 & n_missing > 65)
# ergibt jetzt 0 Reihen

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                          1029
##   Number of missing patterns                         1
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                                 6.346       7.108
##   Degrees of freedom                                 1           1
##   P-value (Chi-square)                           0.012       0.008
##   Scaling correction factor                                  0.893
##     Yuan-Bentler correction (Mplus variant)                       
## 
## Model Test Baseline Model:
## 
##   Test statistic                               588.143     514.553
##   Degrees of freedom                                 7           7
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  1.143
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.991       0.988
##   Tucker-Lewis Index (TLI)                       0.936       0.916
##                                                                   
##   Robust Comparative Fit Index (CFI)                         0.991
##   Robust Tucker-Lewis Index (TLI)                            0.935
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2130.273   -2130.273
##   Scaling correction factor                                  1.111
##       for the MLR correction                                      
##   Loglikelihood unrestricted model (H1)             NA          NA
##   Scaling correction factor                                  1.092
##       for the MLR correction                                      
##                                                                   
##   Akaike (AIC)                                4280.546    4280.546
##   Bayesian (BIC)                              4329.909    4329.909
##   Sample-size adjusted Bayesian (SABIC)       4298.148    4298.148
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.072       0.077
##   90 Percent confidence interval - lower         0.027       0.000
##   90 Percent confidence interval - upper         0.130       0.000
##   P-value H_0: RMSEA <= 0.050                    0.180       0.151
##   P-value H_0: RMSEA >= 0.080                    0.481       0.546
##                                                                   
##   Robust RMSEA                                               0.072
##   90 Percent confidence interval - lower                     0.029
##   90 Percent confidence interval - upper                     0.128
##   P-value H_0: Robust RMSEA <= 0.050                         0.173
##   P-value H_0: Robust RMSEA >= 0.080                         0.481
## 
## 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.325    0.026   12.378    0.000    0.325    0.366
##     MOD               0.090    0.026    3.502    0.000    0.090    0.097
##   MED ~                                                                 
##     ANX       (a1)    0.258    0.101    2.563    0.010    0.258    0.439
##     ANX:MOD   (a2)   -0.013    0.018   -0.694    0.488   -0.013   -0.147
##     MOD       (a3)    0.139    0.051    2.723    0.006    0.139    0.225
##   CRIT ~                                                                
##     MED       (b1)    0.390    0.047    8.297    0.000    0.390    0.259
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT             -0.388    0.148   -2.629    0.009   -0.388   -0.403
##    .MED               1.477    0.276    5.359    0.000    1.477    2.312
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT              0.634    0.030   21.217    0.000    0.634    0.682
##    .MED               0.340    0.017   20.349    0.000    0.340    0.833
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     ANX_MED_CRIT      0.101    0.039    2.572    0.010    0.101    0.113
##     AXM_MED_CRIT     -0.005    0.007   -0.701    0.483   -0.005   -0.038
##     MOD_MED_CRIT      0.054    0.020    2.709    0.007    0.054    0.058
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                          1029
##   Number of missing patterns                         1
## 
## Model Test User Model:
##                                               Standard      Scaled
##   Test Statistic                                 0.073       0.068
##   Degrees of freedom                                 1           1
##   P-value (Chi-square)                           0.787       0.794
##   Scaling correction factor                                  1.071
##     Yuan-Bentler correction (Mplus variant)                       
## 
## Model Test Baseline Model:
## 
##   Test statistic                               466.531     440.518
##   Degrees of freedom                                 7           7
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  1.059
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    1.000       1.000
##   Tucker-Lewis Index (TLI)                       1.014       1.015
##                                                                   
##   Robust Comparative Fit Index (CFI)                         1.000
##   Robust Tucker-Lewis Index (TLI)                            1.015
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -2587.305   -2587.305
##   Scaling correction factor                                  1.089
##       for the MLR correction                                      
##   Loglikelihood unrestricted model (H1)             NA          NA
##   Scaling correction factor                                  1.087
##       for the MLR correction                                      
##                                                                   
##   Akaike (AIC)                                5194.611    5194.611
##   Bayesian (BIC)                              5243.974    5243.974
##   Sample-size adjusted Bayesian (SABIC)       5212.213    5212.213
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.000       0.000
##   90 Percent confidence interval - lower         0.000       0.000
##   90 Percent confidence interval - upper         0.054       0.050
##   P-value H_0: RMSEA <= 0.050                    0.939       0.951
##   P-value H_0: RMSEA >= 0.080                    0.009       0.006
##                                                                   
##   Robust RMSEA                                               0.000
##   90 Percent confidence interval - lower                     0.000
##   90 Percent confidence interval - upper                     0.055
##   P-value H_0: Robust RMSEA <= 0.050                         0.937
##   P-value H_0: Robust RMSEA >= 0.080                         0.010
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.000       0.000
## 
## 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.224    0.025    9.033    0.000    0.224    0.276
##     MOD               0.374    0.044    8.416    0.000    0.374    0.271
##   MED ~                                                                 
##     ANX       (a1)    0.419    0.112    3.758    0.000    0.419    0.441
##     ANX:MOD   (a2)   -0.063    0.037   -1.713    0.087   -0.063   -0.255
##     MOD       (a3)    0.468    0.130    3.596    0.000    0.468    0.290
##   CRIT ~                                                                
##     MED       (b1)    0.113    0.024    4.752    0.000    0.113    0.132
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT             -0.065    0.140   -0.463    0.643   -0.065   -0.074
##    .MED               3.471    0.367    9.450    0.000    3.471    3.364
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .CRIT              0.568    0.026   21.988    0.000    0.568    0.733
##    .MED               0.923    0.050   18.298    0.000    0.923    0.867
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##     ANX_MED_CRIT      0.047    0.016    2.872    0.004    0.047    0.058
##     AXM_MED_CRIT     -0.007    0.005   -1.569    0.117   -0.007   -0.034
##     MOD_MED_CRIT      0.053    0.019    2.734    0.006    0.053    0.038

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 OUTSIDE the interval [-73.14, -3.92], 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.032335e+00 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.34   0.04     8.83   0.00
## 
## Slope of anx_c when umw_c = -3.849636e-16 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.39   0.03    15.11   0.00
## 
## Slope of anx_c when umw_c =  1.032335e+00 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.44   0.03    14.12   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 [-4.85, 10.79], 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.032335e+00 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.28   0.04     7.64   0.00
## 
## Slope of anx_c when umw_c = -3.849636e-16 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.29   0.02    11.95   0.00
## 
## Slope of anx_c when umw_c =  1.032335e+00 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.31   0.03    10.37   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.31, 18.18], the slope of anx_c is p
## < .05.
## 
## Note: The range of observed values of norm_c is [-1.76, 2.24]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of anx_c when norm_c = -6.389723e-01 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.32   0.03     9.52   0.00
## 
## Slope of anx_c when norm_c = -2.934700e-17 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.34   0.02    13.74   0.00
## 
## Slope of anx_c when norm_c =  6.389723e-01 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.37   0.03    12.35   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 [-5.81, 3.52], the slope of anx_c is p <
## .05.
## 
## Note: The range of observed values of norm_c is [-1.76, 2.24]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of anx_c when norm_c = -6.389723e-01 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.26   0.03     8.26   0.00
## 
## Slope of anx_c when norm_c = -2.934700e-17 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.25   0.02    10.63   0.00
## 
## Slope of anx_c when norm_c =  6.389723e-01 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.24   0.03     8.54   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.3182 -0.5777 -0.1168  0.5189  3.2381 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.86320    0.07238   11.93   <2e-16 ***
## anx_gesamt   0.43840    0.02408   18.20   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8391 on 1027 degrees of freedom
## Multiple R-squared:  0.2439, Adjusted R-squared:  0.2432 
## F-statistic: 331.3 on 1 and 1027 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.03773 -0.62595 -0.07333  0.51606  2.89753 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.25174    0.06893   18.16   <2e-16 ***
## anx_gesamt   0.34019    0.02294   14.83   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7991 on 1027 degrees of freedom
## Multiple R-squared:  0.1764, Adjusted R-squared:  0.1756 
## F-statistic:   220 on 1 and 1027 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.36344 -0.57151 -0.09228  0.52095  3.02452 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         2.0062674  0.0788307  25.450  < 2e-16 ***
## anx_c               0.4037704  0.0273656  14.755  < 2e-16 ***
## umw_c               0.1345741  0.0292045   4.608  4.6e-06 ***
## geschlecht1männlich 0.1202690  0.0565851   2.125   0.0338 *  
## alter_jahre         0.0007977  0.0022278   0.358   0.7204    
## anx_c:umw_c         0.0415600  0.0245032   1.696   0.0902 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8236 on 990 degrees of freedom
##   (33 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2601, Adjusted R-squared:  0.2564 
## F-statistic:  69.6 on 5 and 990 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.09786 -0.57698 -0.06638  0.48870  2.86685 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          2.050459   0.074632  27.474  < 2e-16 ***
## anx_c                0.323816   0.025908  12.499  < 2e-16 ***
## umw_c                0.134300   0.027649   4.857 1.38e-06 ***
## geschlecht1männlich  0.188376   0.053571   3.516 0.000457 ***
## alter_jahre          0.002714   0.002109   1.287 0.198448    
## anx_c:umw_c         -0.001139   0.023198  -0.049 0.960864    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7797 on 990 degrees of freedom
##   (33 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2108, Adjusted R-squared:  0.2068 
## F-statistic: 52.87 on 5 and 990 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.93208 -0.54597 -0.08048  0.49508  2.63216 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         1.995522   0.074580  26.757   <2e-16 ***
## anx_c               0.353675   0.026726  13.233   <2e-16 ***
## norm_c              0.399731   0.043509   9.187   <2e-16 ***
## geschlecht1männlich 0.059622   0.055089   1.082    0.279    
## alter_jahre         0.001932   0.002079   0.929    0.353    
## anx_c:norm_c        0.037448   0.032789   1.142    0.254    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.799 on 990 degrees of freedom
##   (33 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.3036, Adjusted R-squared:  0.3001 
## F-statistic: 86.34 on 5 and 990 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.83073 -0.55405 -0.04887  0.48302  3.00552 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          2.032178   0.070797  28.704   <2e-16 ***
## anx_c                0.278666   0.025370  10.984   <2e-16 ***
## norm_c               0.371419   0.041302   8.993   <2e-16 ***
## geschlecht1männlich  0.125938   0.052294   2.408   0.0162 *  
## alter_jahre          0.004173   0.001974   2.114   0.0347 *  
## anx_c:norm_c        -0.030343   0.031125  -0.975   0.3299    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7585 on 990 degrees of freedom
##   (33 Beobachtungen als fehlend gelöscht)
## Multiple R-squared:  0.2532, Adjusted R-squared:  0.2495 
## F-statistic: 67.14 on 5 and 990 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")