# --- Alle Berechnungen an einer Stelle (Details in den Abschnitten) ----------
kwb_items <- c("F09_a", "F09_b", "F09_c", "F10_a", "F10_b", "F10_c", "F10_d", "F10_e")
gewicht <- datensatz$weight_trunc_norm

daten_kwb <- datensatz |>
  select(all_of(kwb_items)) |>
  setze_na(spalten = everything()) |>
  rekodiere_negativ()

alpha_kwb <- psych::alpha(daten_kwb, check.keys = FALSE)

design  <- svy_design_imputationen()
cfa_kwb <- fitte_survey_modell(sem_modelle$cfa_kwb, design, typ = "cfa", std.ov = TRUE)
cfa_1f  <- fitte_survey_modell(sem_modelle$cfa_kwb_einfaktor, design, typ = "cfa", mimic = "Mplus")

fit  <- fit_indizes(cfa_kwb)
fit1 <- fit_indizes(cfa_1f)
fitwert <- function(ix, f = fit) f$wert[f$fit_index == ix]

reli   <- semTools::reliability(cfa_kwb)
reliL2 <- semTools::reliabilityL2(cfa_kwb, "KWB")

ladungen <- lavaan::standardizedSolution(cfa_kwb) |>
  filter(op == "=~") |>
  transmute(
    faktor = lhs, indikator = rhs,
    ladung = round(est.std, 3),
    indikatorrel = round(est.std^2, 3),
    p = pvalue
  )

Wie stark ist das Klimawandelbewusstsein in der Bevölkerung — und beeinflusst es, ob Menschen Windkraft- und Biogasanlagen in ihrer Region akzeptieren? Um das zu untersuchen, fehlte ein entscheidendes Werkzeug: ein erprobtes Messinstrument für Klimawandelbewusstsein. Diese Seite stellt die dafür entwickelte Skala vor — acht kurze Aussagen, denen Befragte zustimmen oder widersprechen — und zeigt, dass sie zuverlässig misst, was sie messen soll.

Auf einen Blick

CFI
0.978
Ziel ≥ 0.95
RMSEA
0.051
Ziel ≤ 0.05–0.08
SRMR
0.036
Ziel ≤ 0.08
χ²/df
2.53
Ziel < 3
Cronbachs α
0.83
8 Items, Ziel ≥ 0.7
ω L2 (KWB)
0.85
Second-Order, Ziel ≥ 0.7

Die CFA (konfirmatorische Faktorenanalyse) bestätigt das Messinstrument: Klimawandelbewusstsein (KWB) lässt sich als Second-Order-Konstrukt mit den drei Subdimensionen kognitiv, konativ und affektiv reliabel und valide messen. Alle Fit-Indizes erreichen ihre Zielwerte, alle Faktorladungen sind hochsignifikant, und das einfaktorielle Alternativmodell wird klar verworfen (ΔCFI = 0.261).

Reproduktionsgüte: Diese Auswertung reproduziert Kapitel 7.2 der Dissertation mit dem klimawandelbewusstsein-Paket. Der χ²-Wert (42.980), der Skalierungsfaktor (1.345) sowie sämtliche standardisierten Faktorladungen und Reliabilitätskoeffizienten stimmen exakt mit den Tabellen 38–44 überein. CFI/TLI/RMSEA weichen in der 2.–3. Nachkommastelle ab (z.B. RMSEA 0.051 statt 0.060), weil neuere lavaan-Versionen die robusten Varianten dieser Indizes nach einer korrigierten Formel berechnen — der Modellbefund ändert sich dadurch nicht (die Abweichung ist zugunsten des Modells).

1 Hintergrund: Warum ein Messinstrument für Klimawandelbewusstsein?

Warum akzeptieren Menschen Windräder oder Biogasanlagen in ihrer Nachbarschaft — oder lehnen sie ab? Die Akzeptanzforschung hat dafür bisher vor allem drei Dinge untersucht: Belastungen wie Lärm oder Geruch, Eigenschaften der Technik selbst und die Frage, ob Planungsverfahren als fair empfunden werden. Ob auch das Klimawandelbewusstsein der Bevölkerung eine Rolle spielt, war dagegen offen (Huijts, Molin & Steg 2012; Schweizer-Ries 2008).

Um diese Frage beantworten zu können, brauchte die Dissertation zunächst ein validiertes Messinstrument: eine Skala, die Klimawandelbewusstsein als eigenständiges Einstellungskonstrukt — getrennt vom allgemeinen Umweltbewusstsein — reliabel erfasst. Konzeptionelles Vorbild war die dreidimensionale Struktur der Umweltbewusstseinsskala; entsprechend wurde das Konstrukt als Second-Order-Faktor mit drei Komponenten angelegt (Diss., Kap. 3.2).

Begriffsdefinition (Diss., Kap. 3.2.11)

Klimawandelbewusstsein ist die Einsicht in die Gefährdungen durch den Klimawandel und den eigenen (anthropogenen) Beitrag (kognitive Dimension), die emotionale Besorgnis über die Folgen (affektive Dimension) sowie die Einsicht in die Notwendigkeit und die Bereitschaft zur Abhilfe (konative Dimension). Es wird als mehrdimensionales Einstellungskonstrukt mit übergeordnetem Second-Order-Faktor modelliert.

Datenbasis: Postalische Querschnittsbefragung in der Metropolregion Bremen-Oldenburg nach modifizierter Total-Design-Method auf Basis einer Einwohnermeldeamtsstichprobe (Rücklauf 31.4 %, bereinigt n = 577). Gegen Unit-Nonresponse-Bias wurde ein Propensity-Score-Gewicht eingesetzt, Item-Nonresponse wurde in den Modellen per multipler Imputation (m = 10) behandelt. Dieser Bericht validiert das Messinstrument entlang von Kapitel 7.2 der Dissertation — reproduziert mit dem klimawandelbewusstsein-Paket.

2 Das Messinstrument

Kurz erklärt: Wie misst man Klimawandelbewusstsein?

Eine Einstellung wie Klimawandelbewusstsein lässt sich nicht direkt beobachten oder mit einer einzelnen Frage erfassen. Stattdessen legt man Befragten mehrere Aussagen (Items) zur Zustimmung vor, die verschiedene Facetten des Konstrukts abdecken. Ob diese Items tatsächlich dasselbe zugrunde liegende Konstrukt messen, prüft anschließend die konfirmatorische Faktorenanalyse (CFA): Sie testet, wie gut die beobachteten Antwortmuster zur theoretisch erwarteten Struktur passen. Kennzahlen wie der CFI (Comparative Fit Index) oder der RMSEA (Root Mean Square Error of Approximation) fassen diese Passung zusammen — die Kacheln oben zeigen sie auf einen Blick.

Die Skala besteht aus acht Items in drei Dimensionen: Wissen und Überzeugungen (kognitiv, F09_a–c, negativ formuliert), handlungsbezogene Einstellungen (konativ, F10_a–c) und emotionale Bewertung (affektiv, F10_d–e).

konstrukte |>
  filter(item %in% kwb_items) |>
  mutate(dimension = case_when(
    item %in% c("F09_a", "F09_b", "F09_c") ~ "kognitiv",
    item %in% c("F10_a", "F10_b", "F10_c") ~ "konativ",
    .default = "affektiv"
  ), polung = if_else(negativ, "− (rekodiert)", "+")) |>
  select(Dimension = dimension, Item = item, Formulierung = text, Polung = polung) |>
  tab(caption = "Die acht Items der KWB-Skala (5-stufige Likert-Skala von „Stimme voll und ganz zu“ bis „Stimme gar nicht zu“)")
Die acht Items der KWB-Skala (5-stufige Likert-Skala von „Stimme voll und ganz zu“ bis „Stimme gar nicht zu“)
Dimension Item Formulierung Polung
kognitiv F09_a Es ist gar nicht sicher, dass es tatsächlich einen Klimawandel gibt − (rekodiert)
kognitiv F09_b Nach meiner Einschätzung wird die Problematik des Klimawandels von vielen Klimaschützerinnen und Klimaschützern übertrieben − (rekodiert)
kognitiv F09_c Die Veränderung des Klimas ist gar nicht so gefährlich wie behauptet wird − (rekodiert)
konativ F10_a Klimawandel ist ein Thema, das mir persönlich wichtig ist
konativ F10_b Klimawandel ist ein Thema, über das ich häufig mit Freundinnen/Freunden oder Bekannten rede
konativ F10_c Personen, die mir wichtig sind, finden es gut, wenn ich mich klimabewusst verhalte
affektiv F10_d Es macht mir Angst, wenn ich an die Folgen des Klimawandels denke
affektiv F10_e Die Vorstellung, dass der Mensch durch seine Eingriffe in die Natur das Klima verndert, erschreckt mich

3 Deskriptive Befunde (gewichtet)

Die Zustimmung zu den KWB-Items ist insgesamt hoch: Nach Rekodierung liegen die gewichteten Mittelwerte zwischen 1.972 und 3.057 auf der 5-stufigen Skala. Der Anteil fehlender Werte bleibt mit maximal ~9 % (F10_c) unkritisch und wurde in den Modellanalysen per multipler Imputation (m = 10) behandelt.

beschreibe_gewichtet(daten_kwb, gewicht) |>
  select(Item = item, N = n, `Fehlend %` = fehlend_prozent,
         Mittelwert = mittelwert, SD = sd, Median = median) |>
  tab(caption = "Gewichtete Itemstatistiken (rekodierte Items)")
Gewichtete Itemstatistiken (rekodierte Items)
Item N Fehlend % Mittelwert SD Median
F09_a 564 2.25 2.167 1.170 2
F09_b 566 1.91 2.399 1.101 2
F09_c 554 3.99 1.972 0.996 2
F10_a 575 0.35 2.128 0.902 2
F10_b 570 1.21 3.057 1.018 3
F10_c 524 9.19 2.856 1.049 3
F10_d 568 1.56 2.548 1.198 2
F10_e 576 0.17 2.098 1.074 2
plot_likert("KWB", titel = "Klimawandelbewusstsein",
            umbruch = 46, items = kwb_items)
Divergierendes Balkendiagramm der KWB-Items (gewichtet). Die Teils/teils-Kategorie (grau) ist halbiert und beiden Seiten zugeschlagen; links Zustimmung, rechts Ablehnung.

Divergierendes Balkendiagramm der KWB-Items (gewichtet). Die Teils/teils-Kategorie (grau) ist halbiert und beiden Seiten zugeschlagen; links Zustimmung, rechts Ablehnung.

4 Itemanalyse

Die interne Konsistenz der acht Items ist mit α = 0.829 gut (Cutoff 0.7, besser 0.8); die mittlere Inter-Item-Korrelation von 0.38 liegt über dem Zielwert von 0.3.

alpha_kwb$item.stats |>
  tibble::rownames_to_column("Item") |>
  transmute(Item, n = n, Trennschärfe = round(r.drop, 3)) |>
  left_join(
    tibble(Item = rownames(alpha_kwb$alpha.drop),
           `α ohne Item` = round(alpha_kwb$alpha.drop$raw_alpha, 3)),
    by = "Item"
  ) |>
  tab(caption = sprintf(
    "Itemstatistiken: Trennschärfe und Alpha-if-item-deleted (Gesamt-α = %.3f)",
    alpha_kwb$total$raw_alpha
  ))
Itemstatistiken: Trennschärfe und Alpha-if-item-deleted (Gesamt-α = 0.829)
Item n Trennschärfe α ohne Item
F09_a 564 0.390 0.834
F09_b 566 0.642 0.797
F09_c 554 0.604 0.804
F10_a 575 0.628 0.803
F10_b 570 0.536 0.812
F10_c 524 0.493 0.818
F10_d 568 0.635 0.798
F10_e 576 0.547 0.811

5 Konfirmatorische Faktorenanalyse

Spezifikation (wie Diss., Kap. 7.2.6): Second-Order-Faktor KWB über drei Primärfaktoren, Markervariablen-Identifikation, keine Kreuzladungen oder Fehlertermkorrelationen. Schätzung: MLM (robuste Standardfehler, Satorra-Bentler-korrigiertes χ²) auf einem Survey-Design aus 10 multipel imputierten Datensätzen mit Nonresponse-Gewicht (lavaan.survey). Der Second-Order-Faktor ist mit drei Indikatoren gerade identifiziert.

So sieht die geprüfte Struktur aus — erst der Überblick, dann die Kennzahlen:

if (requireNamespace("semPlot", quietly = TRUE)) {
  lbls <- c("F09_a", "F09_b", "F09_c", "F10_a", "F10_b", "F10_c",
            "F10_d", "F10_e", "kognitiv", "konativ", "affektiv", "KWB")
  semPlot::semPaths(cfa_kwb,
    whatLabels = "std", style = "lisrel", layout = "tree2",
    intercepts = FALSE, nCharNodes = 0, nCharEdges = 0, curvePivot = TRUE,
    sizeMan = 7, sizeLat = 9, edge.label.cex = 0.9, nodeLabels = lbls
  )
} else {
  message("Paket 'semPlot' nicht installiert - Pfaddiagramm übersprungen ",
          "(Installation: analysis/00_setup.R).")
}

5.1 Globaler Modellfit

Das Modell konvergierte problemlos (27 Parameter, 17 Freiheitsgrade), ohne unplausible Werte. Alle Fit-Indizes erreichen ihre Zielwerte:

diss_fit <- c(
  chisq.scaled = 42.980, npar = 27, df.scaled = 17, pvalue.scaled = 0.000,
  `chisq/df-ratio` = 2.53, chisq.scaling.factor = 1.345,
  cfi.scaled = 0.980, tli.scaled = 0.967,
  rmsea.scaled = 0.060, rmsea.ci.lower.scaled = 0.038,
  rmsea.ci.upper.scaled = 0.082, rmsea.pvalue.scaled = 0.415, srmr = 0.036
)
kriterium <- c(
  `chisq/df-ratio` = "< 3", cfi.scaled = "≥ 0.95", tli.scaled = "≥ 0.95",
  rmsea.scaled = "≤ 0.05 (0.08)", srmr = "≤ 0.08"
)
erfuellt <- function(ix, w) {
  switch(ix,
    "chisq/df-ratio" = if (w < 3) "✓" else "✗",
    "cfi.scaled" = ,
    "tli.scaled" = if (w >= .95) "✓" else "✗",
    "rmsea.scaled" = if (w <= .05) "✓" else if (w <= .08) "(✓)" else "✗",
    "srmr" = if (w <= .08) "✓" else "✗",
    ""
  )
}

fit |>
  mutate(
    Kriterium = coalesce(kriterium[fit_index], "—"),
    `erfüllt?` = vapply(seq_len(n()), \(i) erfuellt(fit_index[i], wert[i]), ""),
    `Diss. (Tab. 38)` = diss_fit[fit_index],
    `Δ` = round(wert - diss_fit[fit_index], 3)
  ) |>
  rename(`Fit-Index` = fit_index, Reproduktion = wert) |>
  tab(caption = "Globaler Modellfit mit Satorra-Bentler-Korrektur, Vergleich mit Dissertation (Tabelle 38). Abweichungen bei CFI/TLI/RMSEA gehen auf geänderte Formeln für robuste Fit-Indizes in neueren lavaan-Versionen zurück.")
Globaler Modellfit mit Satorra-Bentler-Korrektur, Vergleich mit Dissertation (Tabelle 38). Abweichungen bei CFI/TLI/RMSEA gehen auf geänderte Formeln für robuste Fit-Indizes in neueren lavaan-Versionen zurück.
Fit-Index Reproduktion Kriterium erfüllt? Diss. (Tab. 38) Δ
chisq.scaled 42.980 — 42.980 0.000
npar 27.000 — 27.000 0.000
df.scaled 17.000 — 17.000 0.000
pvalue.scaled 0.000 — 0.000 0.000
chisq/df-ratio 2.528 < 3 ✓ 2.530 -0.002
chisq.scaling.factor 1.345 — 1.345 0.000
cfi.scaled 0.978 ≥ 0.95 ✓ 0.980 -0.002
tli.scaled 0.964 ≥ 0.95 ✓ 0.967 -0.003
rmsea.scaled 0.051 ≤ 0.05 (0.08) (✓) 0.060 -0.009
rmsea.ci.lower.scaled 0.035 — 0.038 -0.003
rmsea.ci.upper.scaled 0.068 — 0.082 -0.014
rmsea.pvalue.scaled 0.415 — 0.415 0.000
srmr 0.036 ≤ 0.08 ✓ 0.036 0.000

Die statistische Power der RMSEA-Tests liegt über dem Zielniveau von 0.8 (close fit: 0.858, Diss.: 0.858) — die Stichprobe ist groß genug, um einen schlechten Fit zu entdecken.

5.2 Faktorladungen

Alle Ladungen sind hochsignifikant (p < .001) und — bis auf F09_a (0.614) und F10_c (0.664), die den Zielwert von 0.7 knapp verfehlen, inhaltlich aber relevante Facetten abdecken — ausreichend hoch. Auf der zweiten Ebene lädt die affektive Dimension am stärksten auf das KWB (0.937), die kognitive am schwächsten (0.648), was die Dissertation auf die negative Formulierung der kognitiven Items zurückführt. Alle Werte stimmen exakt mit den Tabellen 40–43 der Dissertation überein.

ladungen |>
  mutate(
    ebene = factor(
      if_else(faktor == "KWB", "Second-Order: KWB", paste("Primärfaktor:", faktor)),
      levels = c("Primärfaktor: Kog", "Primärfaktor: Kon",
                 "Primärfaktor: Aff", "Second-Order: KWB")
    ),
    indikator = forcats::fct_reorder(indikator, ladung),
    ueber_ziel = ladung >= 0.7
  ) |>
  ggplot(aes(x = ladung, y = indikator)) +
  geom_vline(xintercept = 0.7, linetype = "dashed", colour = "grey60") +
  geom_segment(aes(x = 0, xend = ladung, yend = indikator),
               colour = "grey80", linewidth = 0.6) +
  geom_point(aes(colour = ueber_ziel), size = 3.4) +
  geom_text(aes(label = sprintf("%.3f", ladung)),
            hjust = -0.4, size = 3.2, colour = "#3a4652") +
  scale_colour_manual(values = c(`TRUE` = "#2c7fb8", `FALSE` = "#f0946c"),
                      guide = "none") +
  facet_grid(ebene ~ ., scales = "free_y", space = "free_y") +
  scale_x_continuous(limits = c(0, 1.12), breaks = seq(0, 1, .25)) +
  labs(x = "Standardisierte Ladung", y = NULL) +
  theme_diss(base_size = 11.5) +
  theme(
    strip.text.y = element_text(angle = 0, hjust = 0, face = "bold"),
    panel.grid.major.y = element_blank(),
    panel.spacing.y = unit(4, "pt"),
    plot.title.position = "plot"
  )
Standardisierte Faktorladungen des Second-Order-Modells; gestrichelte Linie = Zielwert 0.7. Alle Ladungen p < .001.

Standardisierte Faktorladungen des Second-Order-Modells; gestrichelte Linie = Zielwert 0.7. Alle Ladungen p < .001.

diss_ladungen <- tribble(
  ~faktor, ~indikator, ~diss_std,
  "Kog", "F09_a", 0.614, "Kog", "F09_b", 0.818, "Kog", "F09_c", 0.847,
  "Kon", "F10_a", 0.823, "Kon", "F10_b", 0.699, "Kon", "F10_c", 0.664,
  "Aff", "F10_d", 0.850, "Aff", "F10_e", 0.724,
  "KWB", "Kog", 0.648, "KWB", "Kon", 0.747, "KWB", "Aff", 0.937
)

ladungen |>
  left_join(diss_ladungen, by = c("faktor", "indikator")) |>
  mutate(
    p = if_else(p < .001, "< .001", sprintf("%.3f", p)),
    `Δ` = round(ladung - diss_std, 3)
  ) |>
  select(Faktor = faktor, Indikator = indikator, `Std. Ladung` = ladung,
         `Indikatorrel. (λ²)` = indikatorrel, p, `Diss.` = diss_std, `Δ`) |>
  tab(caption = "Standardisierte Faktorladungen im Vergleich zur Dissertation (Tabellen 40–43).")
Standardisierte Faktorladungen im Vergleich zur Dissertation (Tabellen 40–43).
Faktor Indikator Std. Ladung Indikatorrel. (λ²) p Diss. Δ
Kog F09_a 0.614 0.376 < .001 0.614 0
Kog F09_b 0.818 0.669 < .001 0.818 0
Kog F09_c 0.847 0.717 < .001 0.847 0
Kon F10_a 0.823 0.677 < .001 0.823 0
Kon F10_b 0.699 0.489 < .001 0.699 0
Kon F10_c 0.664 0.440 < .001 0.664 0
Aff F10_d 0.850 0.722 < .001 0.850 0
Aff F10_e 0.724 0.524 < .001 0.724 0
KWB Aff 0.937 0.878 < .001 0.937 0
KWB Kog 0.648 0.420 < .001 0.648 0
KWB Kon 0.747 0.558 < .001 0.747 0

5.3 Reliabilität und durchschnittlich extrahierte Varianz (DEV)

Alle Faktoren erreichen die Zielwerte (ω ≥ 0.7, DEV ≥ 0.5); der konservativste Koeffizient ω₃ liegt zwischen 0.759 und 0.793. Der Second-Order-Faktor erreicht ω L2 = 0.853. Identisch mit Tabelle 44 der Dissertation.

reli |>
  as.data.frame() |>
  tibble::rownames_to_column("Koeffizient") |>
  mutate(across(where(is.numeric), \(x) round(x, 3))) |>
  tab(caption = "Reliabilität der Faktoren erster Ordnung (avevar = DEV). Zielwerte: α/ω ≥ 0.7, DEV ≥ 0.5.")
Reliabilität der Faktoren erster Ordnung (avevar = DEV). Zielwerte: α/ω ≥ 0.7, DEV ≥ 0.5.
Koeffizient Kog Kon Aff
alpha 0.800 0.773 0.759
omega 0.799 0.766 0.773
omega2 0.799 0.766 0.773
omega3 0.793 0.759 0.773
avevar 0.572 0.522 0.634
reliL2 |>
  round(3) |>
  as.data.frame() |>
  setNames("Wert") |>
  tibble::rownames_to_column("Koeffizient") |>
  tab(caption = "Reliabilität des Second-Order-Faktors KWB (reliabilityL2).")
Reliabilität des Second-Order-Faktors KWB (reliabilityL2).
Koeffizient Wert
omegaL1 0.707
omegaL2 0.853
partialOmegaL1 0.860

6 Modellvergleich: Second-Order vs. einfaktoriell

Kritiker reflektiver Second-Order-Strukturen halten den übergeordneten Faktor für redundant. Der Test des einfaktoriellen Alternativmodells zeigt das Gegenteil: Es verfehlt sämtliche Zielwerte (CFI 0.717, RMSEA 0.179, SRMR 0.099) und wird auch per χ²-Differenzentest hochsignifikant verworfen. Die differenzierte Struktur mit drei Subdimensionen ist klar überlegen (Diss., Tabellen 49/50).

fit |>
  rename(`Second-Order` = wert) |>
  left_join(fit1 |> rename(`Ein-Faktor` = wert), by = "fit_index") |>
  rename(`Fit-Index` = fit_index) |>
  tab(caption = "Fit-Vergleich beider Modelle (Reproduktion; Diss.-Werte Ein-Faktor: χ² 391.39, CFI 0.72, TLI 0.60, RMSEA 0.18, SRMR 0.10).")
Fit-Vergleich beider Modelle (Reproduktion; Diss.-Werte Ein-Faktor: χ² 391.39, CFI 0.72, TLI 0.60, RMSEA 0.18, SRMR 0.10).
Fit-Index Second-Order Ein-Faktor
chisq.scaled 42.980 391.392
npar 27.000 24.000
df.scaled 17.000 20.000
pvalue.scaled 0.000 0.000
chisq/df-ratio 2.528 19.570
chisq.scaling.factor 1.345 1.308
cfi.scaled 0.978 0.717
tli.scaled 0.964 0.603
rmsea.scaled 0.051 0.179
rmsea.ci.lower.scaled 0.035 0.166
rmsea.ci.upper.scaled 0.068 0.193
rmsea.pvalue.scaled 0.415 0.000
srmr 0.036 0.099
lavaan::lavTestLRT(cfa_kwb, cfa_1f) |>
  as.data.frame() |>
  tibble::rownames_to_column("Modell") |>
  mutate(Modell = c("Second-Order", "Ein-Faktor"),
         across(where(is.numeric), \(x) round(x, 3))) |>
  tab(caption = "χ²-Differenzentest (vgl. Diss., Tabelle 50).")
χ²-Differenzentest (vgl. Diss., Tabelle 50).
Modell Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
Second-Order 17 12007.22 12124.88 57.815 NA NA NA NA
Ein-Faktor 20 12455.46 12560.05 512.056 413.17 0.51 3 0

Fazit

Die CFA bestätigt das Messmodell (Diss., Kap. 7.3): guter globaler Fit, hochsignifikante und ausreichend hohe Ladungen, nachgewiesene Reliabilität. Das einfaktorielle Alternativmodell wird wegen inakzeptablen Modellfits verworfen; die Hypothesen H1a und H1b gelten als bestätigt. Damit ist das Messmodell für die Strukturgleichungsmodelle einsetzbar. Empfehlung für künftige Erhebungen: Itemformulierungen einheitlich polen.

Die Skala weiterverwenden

Die KWB-Skala steht anderen Forschungsprojekten offen zur Verfügung — etwa in der Akzeptanz-, Umwelt- oder Risikoforschung. Was sie mitbringt: acht kurze Items (Tabelle in Abschnitt 2), eine bestätigte Second-Order-Struktur mit drei Dimensionen, gute Reliabilität (ω L2 = 0.85) und eine Validierung an einer Einwohnermeldeamts-Stichprobe (n = 577, gewichtet). Die lavaan-Modellsyntax und der komplette Auswertungscode liegen im begleitenden R-Paket klimawandelbewusstsein auf GitHub — die CFA lässt sich damit in wenigen Zeilen auf eigene Daten übertragen.

Wer die Skala einsetzt, zitiert bitte:

Ohlsen, Niels (2018): Klimawandelbewusstsein und Akzeptanz erneuerbarer Energien. Dissertation, Universität Bremen, Fachbereich Sozialwissenschaften. Volltext über die Staats- und Universitätsbibliothek Bremen (SuUB).

Über Rückmeldungen aus der Praxis — Erfahrungen mit der Skala, Ergebnisse, Adaptionen — freue ich mich.

Reproduzierbarkeit

Details zu Daten, Methode und Software
  • Daten: datensatz (n = 577, gewichtet) und imputationen (MICE, m = 10, seed 121012) aus dem Paket; Quelle siehe MAPPING.md.
  • Modellsyntax: sem_modelle$cfa_kwb / sem_modelle$cfa_kwb_einfaktor — zeichengenau aus den Originalskripten der Dissertation übernommen.
  • Schätzung: fitte_survey_modell() = lavaan (MLM) + lavaan.survey (Design-Gewichtung, MI-Pooling), identisch zur Dissertation.
  • Bekannte Abweichung: Robuste CFI/TLI/RMSEA-Formeln wurden in lavaan ≥ 0.6.6 korrigiert; χ², Ladungen und Reliabilitäten sind exakt reproduziert.
si <- sessionInfo()
tibble(Paket = names(si$otherPkgs),
       Version = vapply(si$otherPkgs, \(p) as.character(p$Version), "")) |>
  arrange(Paket) |>
  tab(caption = paste("Geladene Pakete unter", si$R.version$version.string))
Geladene Pakete unter R version 4.3.2 (2023-10-31 ucrt)
Paket Version
dplyr 1.1.4
ggplot2 4.0.3
klimawandelbewusstsein 1.0.0
knitr 1.45
testthat 3.2.1
tidyr 1.3.0