library(psych)
library(lavaan)
library(readxl)
Arbeitszufriedenheit <- read_excel("Arbeitszufriedenheit.xlsx")
Table of Content
- 1 Introduction
- 2 One-factorial model
- 3 Comparative observation
- 4 Conclusion
1 Introduction
In dem Beitrag zur “exploratorischen Faktorenanalyse” wurde bereits erwähnt, dass die konfirmatorische Faktorenanalyse als Strukturgleichungsmodell angewendet werden sollte, wenn die Faktorstruktur eines Datensatzes bereits bekannt ist. Nachfolgend soll dieses Verfahren vorgestellt werden.
Für die exemplarische Durchführung der konfirmatorischen Faktorenanalyse wurde der Datensatz Arbeitszufriedenheit verwendet. Eine Kopie des Datensatzes ist unter https://drive.google.com/open?id=1z2unBqG7CJMJRguwYD3uJGXHO6LLT_qP abrufbar.
2 One-factorial model
In der konfirmatorischen Faktorenanalyse werden die Beziehungen zwischen den manifesten Variablen und den latenten Variablen untersucht. In diesem Messmodell wird beschrieben, wie die latenten Variablen gemessen werden sollen. Der Unterschied zur exploratorischen Faktorenanalyse besteht darin, dass in der konfirmatorischen Faktorenanalyse sowohl die Anzahl der latenten Variablen als auch die Verbindung der Items zu diesen latenten Variablen festgelegt wird. Dies bedeutet, dass vom Benutzer selber bestimmt wird, welches Item auf welchen Faktor (latente Variable) laden darf. So kann bestimmt werden, ob das vorgegebene Modell angemessen auf die beobachteten Daten passt.
Es soll untersucht werden, ob die fünf Items zur Messung der Arbeitszufriedenheit eine gute Passung haben. Im ersten Schritt wird hierbei folgende Modellgleichung spezifiziert.
konf.fa.1.txt <- 'A.zufr. =~ Zufr.1 + Zufr.2 + Zufr.3 + Zufr.4 + Zufr.5'
Die latente Variable (hier A.zufr.) wird gemessen durch (=~) die die 5 Items Zufr.1 bis Zufr.5. Die Bezeichnung der latenten Variablen kann frei gewählt werden. Allerdings ist zu beachten, dass die genannten Items mit der selben Bezeichnung auch im Datensatz vorhanden sind. Die Modellschätzung erfolgt mit der cfa Funktion.
konf.fa.1.fit <- cfa(konf.fa.1.txt, data=Arbeitszufriedenheit)
Eine detaillierte Übersicht über die Ergebnisse kann mit der summary Funktion angefordert werden. Es werden anschließend nur die wichtigsten Elemente besprochen.
summary(konf.fa.1.fit, fit.measures=TRUE)
## lavaan 0.6-2 ended normally after 24 iterations
##
## Optimization method NLMINB
## Number of free parameters 10
##
## Number of observations 185
##
## Estimator ML
## Model Fit Test Statistic 7.689
## Degrees of freedom 5
## P-value (Chi-square) 0.174
##
## Model test baseline model:
##
## Minimum Function Test Statistic 857.480
## Degrees of freedom 10
## P-value 0.000
##
## User model versus baseline model:
##
## Comparative Fit Index (CFI) 0.997
## Tucker-Lewis Index (TLI) 0.994
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -1550.406
## Loglikelihood unrestricted model (H1) -1546.561
##
## Number of free parameters 10
## Akaike (AIC) 3120.812
## Bayesian (BIC) 3153.015
## Sample-size adjusted Bayesian (BIC) 3121.342
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.054
## 90 Percent Confidence Interval 0.000 0.125
## P-value RMSEA <= 0.05 0.392
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.018
##
## Parameter Estimates:
##
## Information Expected
## Information saturated (h1) model Structured
## Standard Errors Standard
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|)
## A.zufr. =~
## Zufr.1 1.000
## Zufr.2 0.961 0.045 21.392 0.000
## Zufr.3 0.970 0.042 22.901 0.000
## Zufr.4 0.952 0.053 17.947 0.000
## Zufr.5 0.912 0.073 12.429 0.000
##
## Variances:
## Estimate Std.Err z-value P(>|z|)
## .Zufr.1 0.484 0.078 6.231 0.000
## .Zufr.2 0.695 0.093 7.455 0.000
## .Zufr.3 0.542 0.080 6.763 0.000
## .Zufr.4 1.187 0.141 8.401 0.000
## .Zufr.5 2.762 0.302 9.146 0.000
## A.zufr. 3.375 0.402 8.387 0.000
lavaan 0.6-2 ended normally after 24 iterations
Der erste Teil der Ausgabe gibt Aufschluss über die benötigten Iterationen und der verwendeten Stichprobengröße. Des Weiteren wurde ein Chi2 Test durchgeführt um zu überprüfen, ob die beobachtete Varianz-Kovarianz-Matrix sich signifikant von der modellimplizierten Varianz-Kovarianz-Matrix unterscheidet. Mit p = .174 ist das Ergebnis nicht signifikant. Dies deutet darauf hin, dass das Modell gut auf die Daten passt.
Latent Variables:
Dieser Teil der Ergebnisse beinhaltet eine Tabelle über die Ladungskoeffizienten sowie der Varianzen der manifesten und latenten Variablen.
3 Comparative observation
Die konfirmatorische Faktorenanalyse wird oft eingesetzt, um verschiedene Faktorenmodelle empirisch miteinander zu vergleichen. Für dieses Beispiel soll untersucht werden, ob das zuvor erstellte einfaktorielle Modell besser auf die Daten passt als das nachfolgend erstellte zweifaktorielle Modell.
konf.fa.2.txt <- ' A.zufr.1 =~ Zufr.1 + Zufr.2 + Zufr.3
A.zufr.2 =~ Zufr.4 + Zufr.5 '
Es wurde festgelegt, dass die Items Zufr.1 bis Zufr.3 auf den ersten Faktor (A.zufr.1) und die Items Zufr.4 & Zufr.5 auf den zweiten Faktor (*A.zufr.2) laden.
konf.fa.2.fit <- cfa(konf.fa.2.txt, data=Arbeitszufriedenheit)
Mittels der anova Funktion werden die beiden Modelle nun miteinander verglichen.
anova(konf.fa.1.fit, konf.fa.2.fit)
## Chi Square Difference Test
##
## Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
## konf.fa.2.fit 4 3116.8 3152.2 1.6360
## konf.fa.1.fit 5 3120.8 3153.0 7.6895 6.0535 1 0.01388 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Die Spalte DF beschreibt die Freiheitsgrade der Modelle. Es folgt das AIC (Akaikes Informationskriterium) und das BIC (Bayesianische Informationskriterium). Je kleiner diese Werte ausfallen, desto besser passt das Modell auf die Daten. Die Spalte Chisq enthält den jeweiligen Chi2 Wert der beiden Modelle. Für die Fragestellung, welches Modell nun signifikant besser auf die Daten passt, betrachtet man den p-Wert in der Spalte Pr(>Chisq). Dieser ist hier unter .05 und zeigt somit ein signifikantes Ergebnis. Das bedeutet, dass das zweifaktorielle Modell besser auf die Daten passt als das einfaktorielle Modell.
4 Conclusion
Nochmal zusammengefasst:
Bei der “exploratorischen Faktorenanalyse” geht es um die Aufdeckung von unbekannten Strukturen der vorliegenden Variablen. Vor der Analyse ist die Anzahl der extrahierenden Faktoren unbekannt. Mit der exploratorischen Faktorenanalyse möchte man nun diese Faktoren “entdecken”. Es handelt sich um ein strukturerkennendes Verfahren.
Bei der konfirmatorischen Faktorenanalyse existiert hingegen schon eine konkrete Vorstellung über die mögliche Anzahl an Faktoren/latente Variablen. Mittels der konfirmatorischen Faktorenanalyse soll nun die vorgegebene Faktorenstruktur auf ihre Konsistenz mit den vorhandenen Daten ermittelt werden. Es handelt sich um ein strukturüberprüfendes Verfahren.
Source
Luhmann, M. (2011). R für Einsteiger.