Hoofdstuk 18 Exploratorieve Factoranalyse
18.1 Intro
Exploratieve Factoranalyse (EFA) is een manier om te zoeken naar onderliggende factoren om een set variabelen te verklaren. Deze methode wordt vaak toegepast om schalen te construeren uit een grote set items. Deze set items wordt teruggebracht tot een kleiner aantal factoren.
18.1.1 Voorbeeld data
Dit voorbeeld gebruikt de Rosetta Stats voorbeeld dataset “pp15” (Zie Hoofdstuk 3 voor informatie over de dataset en hoofdstuk 4 voor een uitleg hoe datasets in te laden).
Uit deze dataset gebruiken we de volgende variabelen: highDose_AttBeliefs_long
, highDose_AttBeliefs_intensity
, highDose_AttBeliefs_intoxicated
, highDose_AttBeliefs_energy
, highDose_AttBeliefs_euphoria
, highDose_AttBeliefs_insight
, highDose_AttBeliefs_connection
, highDose_AttBeliefs_contact
& highDose_AttBeliefs_sex
.
18.2 jamovi
In het tabblad “Analyses”, klik op de knop “Factor” en uit het menu dat verschijnt, kies “Exploratory Factor Analysis”. Uit de variabelen in je dataset, selecteer de items die je wilt includeren en verplaats ze naar het vak genaamd “Variables” aan de rechterkant. Nu verschijnt automatisch de factoranalyse in het vak met de resultaten met de standaardinstellingen. Onderaan de analyse kun je allerlei verschillende instellingen specificeren en aanpassen. Zo kun je bijvoorbeeld kiezen dat je alleen factoren wilt behouden met een eigenwaarde groter dan 1, dat je de correlatie tussen de factoren wilt zien, de scree plot, en nog meer extra’s.
Uiteindelijk ziet de onderliggende code er dan als volgt uit:
jmv::efa(
data = data,
vars = vars(highDose_AttBeliefs_long, highDose_AttBeliefs_intensity, highDose_AttBeliefs_intoxicated, highDose_AttBeliefs_energy, highDose_AttBeliefs_euphoria, highDose_AttBeliefs_insight, highDose_AttBeliefs_connection, highDose_AttBeliefs_contact, highDose_AttBeliefs_sex),
nFactorMethod = "eigen",
screePlot = TRUE,
factorCor = TRUE,
factorScoresOV = list(
synced=list()))
18.3 R
In R kun je de rosetta
package gebruiken om de EFA uit te voeren met het volgende commando:
::factorAnalysis(
rosettadata = dat,
items = c(
'highDose_AttBeliefs_long',
'highDose_AttBeliefs_intensity',
'highDose_AttBeliefs_intoxicated',
'highDose_AttBeliefs_energy',
'highDose_AttBeliefs_euphoria',
'highDose_AttBeliefs_insight',
'highDose_AttBeliefs_connection',
'highDose_AttBeliefs_contact',
'highDose_AttBeliefs_sex'
),nfactors = "eigen"
);
Let erop dat deze functie je verplicht om direct aan te geven hoeveel factoren je wilt overhouden aan het eind, met het nfactors
argument. In het bovenstaande voorbeeld is dit gespecificeerd met “eigen
”, wat wil zeggen dat het Kaiser criterion gebruikt wordt. Dit criterion geeft je de mogelijkheid om de minimale eigenwaarde te bepalen (staat standaard ingesteld op 1
)
Om overige informatie aan te vragen, zoals een samenvatting, de correlaties tussen de factoren, een scree plot, of residuen, kun je extra opties specificeren in het commando. Ook kun je bijvoorbeeld item labels toevoegen aan je set met variabelen.
::factorAnalysis(
rosettadata = dat,
items = c(
'highDose_AttBeliefs_long',
'highDose_AttBeliefs_intensity',
'highDose_AttBeliefs_intoxicated',
'highDose_AttBeliefs_energy',
'highDose_AttBeliefs_euphoria',
'highDose_AttBeliefs_insight',
'highDose_AttBeliefs_connection',
'highDose_AttBeliefs_contact',
'highDose_AttBeliefs_sex'
),itemLabels = c(
'Expectation that a high dose results in a longer trip',
'Expectation that a high dose results in a more intense trip',
'Expectation that a high dose makes you more intoxicated',
'Expectation that a high dose provides more energy',
'Expectation that a high dose produces more euphoria',
'Expectation that a high dose yields more insight',
'Expectation that a high dose strengthens your connection with others',
'Expectation that a high dose facilitates making contact with others',
'Expectation that a high dose improves sex'
),nfactors = "eigen",
summary = TRUE,
correlations = TRUE,
scree = TRUE,
residuals = TRUE
);
18.3.1 SPSS
In SPSS kun je het FACTOR
commando gebruiken. Belangrijke argumenten om te gebruiken zijn /VARIABLES
om de items te specificeren, /CRITERIA
om te bepalen hoeveel factoren er moeten overblijven (of hoe dat beslist moet worden: gebruik MINEIGEN(1)
om alleen factoren met een eigenwaarde hoger dan 1, of bijvoorbeeld FACTORS(2)
om 2 factoren te extraheren), /EXTRACTION
om de manier waarop de factoren worden berekend te kiezen (zoals OLS
voor ordinary least squares regressie, of ML
voor de maximum likelihood methode), en /ROTATION
om de rotatie vast te stellen (bijv. NOROTATE
als je geen rotatie wilt, of VARIMAX
als je orthogonale rotatie wilt).
FACTOR
/VARIABLES
highDose_AttBeliefs_long
highDose_AttBeliefs_intensity
highDose_AttBeliefs_intoxicated
highDose_AttBeliefs_energy
highDose_AttBeliefs_euphoria
highDose_AttBeliefs_insight
highDose_AttBeliefs_connection
highDose_AttBeliefs_contact
highDose_AttBeliefs_sex
/CRITERIA =
MINEIGEN(1)
/EXTRACTION =
ULS
/ROTATION =
OBLIMIN
.
Voor specifieke uitkomsten kun je /PRINT
en /PLOT
gebruiken om bijvoorbeeld een scree plot te zien:
FACTOR
/VARIABLES
highDose_AttBeliefs_long
highDose_AttBeliefs_intensity
highDose_AttBeliefs_intoxicated
highDose_AttBeliefs_energy
highDose_AttBeliefs_euphoria
highDose_AttBeliefs_insight
highDose_AttBeliefs_connection
highDose_AttBeliefs_contact
highDose_AttBeliefs_sex
/CRITERIA =
FACTORS(1)
/PRINT =
INITIAL
EXTRACTION
UNIVARIATE
CORRELATION
REPR
/PLOT =
EIGEN
/EXTRACTION =
ULS
/ROTATION =
OBLIMIN
.
Meer informatie is te vinden in de SPSS manual: