Structural Equation Modeling: wat het is en wanneer je het gebruikt
Ontdek de typen structural equation models. Leer hoe je theoretische aannames maakt, een verondersteld model bouwt, de model fit beoordeelt en de resultaten interpreteert in structural equation modeling.
Structural equation modeling (SEM) stelt ons in staat om causale relaties tussen variabelen te onderzoeken en te begrijpen hoe elke variabele bijdraagt aan de algehele prestatie. SEM is een krachtig hulpmiddel dat factoranalyse en meervoudige regressie combineert om relaties tussen meerdere variabelen te analyseren. Dat lijkt een beetje op hoe we in het dagelijks leven kijken naar hoe factoren zoals houding, zelfvertrouwen en communicatieve vaardigheden samen de prestatie tijdens een sollicitatiegesprek beïnvloeden.
Laten we SEM, de toepassingen en praktische voorbeelden in Python verkennen. Als je nieuw bent met enkele kernideeën, zoals het concept van latente factoren, probeer dan ook onze cursus Factoranalyse.
Wat is structural equation modeling?
Structural equation modeling geeft de causale relaties weer tussen latente en geobserveerde variabelen. De geobserveerde variabelen zijn wat we direct kunnen meten. Latente constructen worden afgeleid en niet direct gemeten.
Om deze relaties effectief vast te leggen, is SEM verdeeld in twee hoofdcomponenten: het meetmodel en het structurele model. Het meetmodel specificeert de relaties tussen geobserveerde variabelen en hun bijbehorende latente variabelen, terwijl het structurele model de relaties tussen latente variabelen specificeert.
Statistische technieken zoals correlatie en regressie zijn niet efficiënt voor het bestuderen van complexe multivariate relaties. SEM is geschikt voor het modelleren van complexe, veelzijdige constructen die met meetfouten worden gemeten. Het is ook nuttig omdat het helpt om een systeem van relaties te specificeren. Traditionele methoden helpen ons een afhankelijke variabele en een set voorspellers te bestuderen. Hoewel correlatie geen causaliteit is, helpt SEM ons de causale relatie tussen de geobserveerde variabele en latente constructen te begrijpen.
Enkele toepassingen van SEM zijn onder andere:
Sociale wetenschappen: SEM kan worden gebruikt om de invloed van culturele waarden op menselijk gedrag in verschillende samenlevingen te bestuderen.
Ziekterisicomodellering: SEM kan worden toegepast op ziekterisicomodellering om het risico op ziekten zoals diabetes of hartziekten te bepalen.
Kernconcepten van structural equation modeling
Hier zijn enkele van de kernconcepten in structural equation modeling:
Geobserveerde variabelen: Geobserveerde variabelen worden direct in het onderzoek gemeten. Voorbeelden zijn antwoorden op vragen in een vragenlijst.
Latente variabelen: Latente variabelen worden afgeleid uit de geobserveerde variabelen in het onderzoek. Bijvoorbeeld het intelligentieniveau in de beoordeling van iemands schoolprestaties.
Endogene variabelen: Dit zijn ook wel afhankelijke variabelen. Bijvoorbeeld, in y = x1 + x2 + x3 is y de endogene variabele omdat deze afhangt van de waarden van x1, x2, …, xn.
Exogene variabelen: Dit zijn onafhankelijke variabelen. Bijvoorbeeld, de slaaptijd van een atleet is onafhankelijk van het type racefiets.
Meetmodel: meet de relaties tussen latente constructen en geobserveerde variabelen. Het confirmatieve factoranalyse-raamwerk test de onderliggende hypothese van het meetmodel.
Structureel model: Dit model onderzoekt causale relaties tussen latente constructen. Het wordt schematisch weergegeven met padanalyse.
Statistische aannames bij structural equation modeling
Hoewel SEM uitstekend is voor het modelleren van causale relaties, zijn er enkele onderliggende aannames over de data. De aannames omvatten:
Lineariteit: SEM gaat uit van lineaire relaties tussen de latente constructen en de geobserveerde variabelen. Het is niet geschikt voor niet-lineaire datasets, omdat het onjuiste resultaten kan geven.
Multicollineariteit: SEM gaat uit van minimale multicollineariteit tussen geobserveerde variabelen. Zo kunnen de slaaptijd en voeding van een sporter sterk gecorreleerd zijn. SEM veronderstelt weinig correlatie tussen dergelijke variabelen.
Steekproefaannames: Voor SEM-taken heb je een voldoende steekproefomvang van minimaal 200 nodig voor goede resultaten. Je hebt geen enorme datasets zoals bij LLM’s nodig, maar een kleinere steekproef kan onnauwkeurige resultaten opleveren.
Multivariatenormaliteit: SEM gaat ervan uit dat de data multivariaat normaal verdeeld is. Het is niet geschikt voor niet-normale data. Je kunt tests uitvoeren om de normaliteit te controleren.
Ontbrekendedata: SEM gaat ervan uit dat de data compleet is.Een manier waarop SEM met ontbrekende data omgaat is door aan te nemen dat data willekeurig ontbreekt. Ontbrekende data kan de schatting van het model verstoren.
Specificatiefout: SEM gaat ervan uit dat het gedefinieerde model correct is gespecificeerd. Het veronderstelt dat het meet- en structurele model ten minste alle relevante variabelen bevatten.
Typen structural equation models
Er zijn verschillende typen structural equation modeling. Zonder specifieke volgorde zijn dat:
Padanalyse: Dit is een type SEM en een uitbreiding van regressiemodellen die alleen met geobserveerde variabelen (ook wel predictors) werken. Padendigrammen geven deze relaties visueel weer met pijlen om de richting aan te geven.
Confirmatieve factoranalyse (CFA): Dit is een type SEM dat wordt gebruikt om de geldigheid van meetmodellen te testen. Het verifieert of de geobserveerde data past bij een vooraf gespecificeerd model.
Structurele modellen met latente variabelen (LVSM): Modelleert de relaties tussen latente constructen en geobserveerde variabelen. Het modelleert ook de relatie tussen de latente constructen zelf.
Latente groeimodellen: Latente groeimodellen zijn een gespecialiseerd type SEM dat zich richt op het modelleren van verandering in de tijd. Ze worden gebruikt om de trajecten van latente variabelen (bijv. psychologische kenmerken of gedrag) te bestuderen en hoe die zich ontwikkelen, rekening houdend met veranderingen op individueel en groepsniveau.
Voorbeeld van structural equation modeling in Python
Een SEM-model ontwikkelen in Python vergt maar een paar stappen; we kunnen de bibliotheek semopy gebruiken om het eenvoudig te maken. In de volgende tutorial gaan we ervan uit dat je bekend bent met de Python-syntax.
Voordat we onze dataset downloaden en ons model maken, nemen we even de tijd om al onze constructen te definiëren. We moeten dus de latente en geobserveerde variabelen identificeren. In het geval van onze dataset zijn de geobserveerde variabelen aan ons gegeven als gelabelde features en dat zijn x1 tot en met x3 en y1 tot en met y8. De latente variabelen die we willen bestuderen hebben deze namen, die we zullen uitleggen: ind60, dem60, dem65.
Geobserveerde variabelen
y1: persvrijheid, 1960
y2: vrijheid van politieke oppositie, 1960
y3: eerlijkheid van verkiezingen, 1960
y4: effectiviteit van gekozen wetgevende macht, 1960
y5 -y8: dezelfde variabelen als y1-y4, respectievelijk, gemeten in 1965
x1: het bnp per hoofd van de bevolking, 1960
x2: het energieverbruik per hoofd van de bevolking, 1960
x3: het percentage van de beroepsbevolking in de industrie, 1960
Latente variabelen
ind60: exogene latente variabele over industrialisatie.
dem60: endogene latente variabele over democratie in 1960.
dem65: endogene latente variabele over democratie in 1965.
Het meetmodel opstellen
Het doel is om een theoretisch model te definiëren dat de relatie tussen de latente constructen en geobserveerde variabelen specificeert.
# Measurement model
ind60 =~ x1 + x2 + x3
demo60 =~ y1 + y2 + y3 + y4
dem65 =~ y5 + y6 + y7 + y8Mogelijk gemaakt door
Het structurele model specificeren
Hier specificeren we de relaties tussen de latente constructen zelf.
Vervolgens definiëren we het model en passen we de data
import semopy
# Define the model
model = semopy.Model(model_spec)#Fit the model
model.fit(data)# Inspect the resultsprint(model.inspect())Mogelijk gemaakt door
De resultaten interpreteren
We plotten het resultaat van het model om de padrepresentatie te begrijpen. De plot wordt opgeslagen als political_sem_model.png.
semopy.semplot(model,'political_sem_model.png')print("SEM Model diagram saved as 'political_sem_model.png'.")
img = plt.imread('political_sem_model.png')
plt.imshow(img)
plt.axis('off')
plt.show()Mogelijk gemaakt door
SEM-padendiagram voor de politieke-democratie-dataset. Bron: afbeelding door de auteur
Het diagram laat zien hoe het pad de latente constructen (in cirkels) en de geobserveerde variabelen relateert. Padcoëfficiënten dichter bij 1 of -1 duiden op sterke relaties tussen variabelen en die nabij 0 op zwakke relaties.
De standaarddeviaties in de tabel vallen binnen het bereik. Grotere waarden kunnen duiden op multicollineariteit of een onjuist gespecificeerd model. De p-waarden bepalen de statistische significantie van de padcoëfficiënten. Een p-waarde kleiner dan 0,05 duidt meestal op een statistisch significant pad. We zien twee gevallen waarin de p-waarde groter is dan 0,05.
Al met al laten de resultaten zien dat ind60 een significante invloed heeft op dem60, dat op zijn beurt een significante invloed heeft op dem65.
Model fit beoordelen
Het veronderstelde model moet overeenkomen met de geobserveerde relaties om de SEM-model fit te beoordelen. Er worden verschillende fit-indices gebruikt om te beoordelen hoe goed het model bij de data past. Hier zijn veelgebruikte:
Chi-kwadraattoets: Vergelijkt de geobserveerde covariantiematrix met de door het model geïmpliceerde covariantiematrix. Een niet-significante chi-kwadraat duidt op een goede fit.
Root Mean Square Error of Approximation: Beoordeelt hoe goed het model de data benadert, gecorrigeerd voor modelcomplexiteit. Waarden onder 0,05 en tot 0,08 zijn acceptabel.
Veelvoorkomende uitdagingen en oplossingen in SEM
Enkele veelvoorkomende uitdagingen van de structural equation modeling-techniek zijn de volgende:
Niet-normaliteit van data: SEM gaat er doorgaans van uit dat de data een normale verdeling volgt. Het gebruik van niet-normale data kan de standaardfouten, p-waarden en fit-indices beïnvloeden, wat leidt tot onbetrouwbare schattingen. Datatransformatietechnieken kunnen worden toegepast om de data te normaliseren.
Ontbrekende data: Voor SEM is complete data nodig. Ontbrekende data kan tot vertekende resultaten leiden. Je kunt waarschijnlijkheidsbenaderingen zoals full information maximum likelihood (FIML) gebruiken om dit aan te pakken.
In dit artikel hebben we SEM uitgebreid besproken, inclusief de toepassingen, implementatie, voordelen en beperkingen. SEM is een krachtig instrument voor het onderzoeken van complexe relaties en causale interacties tussen geobserveerde en latente variabelen. Probeer het eens uit in Python of R voor je volgende analyseproject.
Als je geïnteresseerd bent in het idee van structural equation modeling maar de voorkeur geeft aan R, kun je de cursus Structural Equation Modeling with lavaan in R volgen, met gedetailleerde stapsgewijze instructies. Je kunt ook starten met het Statistician in R-carrièrepad. Als je je aan Python commit, lees dan de semopy-documentatie voor meer use-cases van SEM in Python. Ben je tot slot geïnteresseerd in geavanceerde Python-modellen die zowel voorspellen als verklaren, en wil je ideeën over modelarchitectuur en featureselectie verkennen, probeer dan ons carrièrepad Machine Learning Scientist in Python.
Wat is structural equation modeling (SEM) en hoe werkt het?⌄
Structural equation modeling is een multivariate statistische techniek die wordt gebruikt om complexe relaties tussen latente en geobserveerde variabelen te analyseren.
Wat is het verschil tussen confirmatieve factoranalyse (CFA) en structural equation modeling (SEM)?⌄
Confirmatieve factoranalyse (CFA) is een type SEM dat zich richt op de relaties tussen latente variabelen en hun bijbehorende geobserveerde variabelen. SEM gaat daarentegen verder dan meetmodellen en omvat zowel structurele als meetcomponenten, waardoor je complexe oorzaak-gevolgrelaties tussen latente en geobserveerde variabelen kunt analyseren.
Wat zijn de belangrijkste stappen bij het uitvoeren van SEM-analyse?⌄
De belangrijkste stappen in SEM-analyse zijn: (1) Definieer de theoretische relaties tussen variabelen; (2) Identificeer het model en zorg dat het aantal datapunten groter is dan het aantal parameters; (3) Pas het model op de data; (4) Beoordeel de model fit met indices zoals chi-kwadraat of RMSEA; en (5) Interpreteer de resultaten door padcoëfficiënten en model fit-indicatoren te bekijken.
Wat zijn enkele uitdagingen bij het gebruik van SEM?⌄
Enkele veelvoorkomende uitdagingen zijn modelselectie — waarbij het model mogelijk niet genoeg datapunten heeft om parameters te schatten —, multicollineariteit tussen variabelen, een slechte model fit — waarbij de data niet goed aansluit bij het veronderstelde model —, en steekproefomvang, omdat kleine steekproeven tot onbetrouwbare resultaten kunnen leiden.
Welk Python-pakket kan ik gebruiken voor SEM?⌄
semopy is een Python-pakket dat bewerkingen voor structural equation modeling ondersteunt.
Structural equation modeling (SEM) stelt ons in staat om causale relaties tussen variabelen te onderzoeken en te begrijpen hoe elke variabele bijdraagt aan de algehele prestatie. SEM is een krachtig hulpmiddel dat factoranalyse en meervoudige regressie combineert om relaties tussen meerdere variabelen te analyseren. Dat lijkt een beetje op hoe we in het dagelijks leven kijken naar hoe factoren zoals houding, zelfvertrouwen en communicatieve vaardigheden samen de prestatie tijdens een sollicitatiegesprek beïnvloeden.
Laten we SEM, de toepassingen en praktische voorbeelden in Python verkennen. Als je nieuw bent met enkele kernideeën, zoals het concept van latente factoren, probeer dan ook onze cursus Factoranalyse.
Wat is structural equation modeling?
Structural equation modeling geeft de causale relaties weer tussen latente en geobserveerde variabelen. De geobserveerde variabelen zijn wat we direct kunnen meten. Latente constructen worden afgeleid en niet direct gemeten.
Om deze relaties effectief vast te leggen, is SEM verdeeld in twee hoofdcomponenten: het meetmodel en het structurele model. Het meetmodel specificeert de relaties tussen geobserveerde variabelen en hun bijbehorende latente variabelen, terwijl het structurele model de relaties tussen latente variabelen specificeert.
Waarom gebruiken onderzoekers structural equation modeling?
Statistische technieken zoals correlatie en regressie zijn niet efficiënt voor het bestuderen van complexe multivariate relaties. SEM is geschikt voor het modelleren van complexe, veelzijdige constructen die met meetfouten worden gemeten. Het is ook nuttig omdat het helpt om een systeem van relaties te specificeren. Traditionele methoden helpen ons een afhankelijke variabele en een set voorspellers te bestuderen. Hoewel correlatie geen causaliteit is, helpt SEM ons de causale relatie tussen de geobserveerde variabele en latente constructen te begrijpen.
Enkele toepassingen van SEM zijn onder andere:
Kernconcepten van structural equation modeling
Hier zijn enkele van de kernconcepten in structural equation modeling:
Statistische aannames bij structural equation modeling
Hoewel SEM uitstekend is voor het modelleren van causale relaties, zijn er enkele onderliggende aannames over de data. De aannames omvatten:
Typen structural equation models
Er zijn verschillende typen structural equation modeling. Zonder specifieke volgorde zijn dat:
Voorbeeld van structural equation modeling in Python
Een SEM-model ontwikkelen in Python vergt maar een paar stappen; we kunnen de bibliotheek
semopygebruiken om het eenvoudig te maken. In de volgende tutorial gaan we ervan uit dat je bekend bent met de Python-syntax.Benodigde libraries installeren
Let op: Voor macOS-gebruikers. Als je deze fout tegenkomt tijdens het installeren van het pakket:
Installeer
graphvizvia Homebrew in je terminalConstructen definiëren
Voordat we onze dataset downloaden en ons model maken, nemen we even de tijd om al onze constructen te definiëren. We moeten dus de latente en geobserveerde variabelen identificeren. In het geval van onze dataset zijn de geobserveerde variabelen aan ons gegeven als gelabelde features en dat zijn
x1tot en metx3eny1tot en mety8. De latente variabelen die we willen bestuderen hebben deze namen, die we zullen uitleggen:ind60,dem60,dem65.Geobserveerde variabelen
y1: persvrijheid, 1960y2: vrijheid van politieke oppositie, 1960y3: eerlijkheid van verkiezingen, 1960y4: effectiviteit van gekozen wetgevende macht, 1960y5-y8: dezelfde variabelen alsy1-y4, respectievelijk, gemeten in 1965x1: het bnp per hoofd van de bevolking, 1960x2: het energieverbruik per hoofd van de bevolking, 1960x3: het percentage van de beroepsbevolking in de industrie, 1960Latente variabelen
ind60: exogene latente variabele over industrialisatie.dem60: endogene latente variabele over democratie in 1960.dem65: endogene latente variabele over democratie in 1965.Het meetmodel opstellen
Het doel is om een theoretisch model te definiëren dat de relatie tussen de latente constructen en geobserveerde variabelen specificeert.
Het structurele model specificeren
Hier specificeren we de relaties tussen de latente constructen zelf.
De correlaties specificeren
Hier willen we variabelen specificeren die sterk met elkaar correleren.
De dataset voorbereiden
Voor deze tutorial gebruiken we de dataset
PoliticalDemocracy.csvdie doorsemopywordt geleverd. Je kunt deze downloaden via deze GitHub-repository.Het SEM-model definiëren
We moeten de structurele en meetdefinities combineren in een modelspecificatie.
Vervolgens definiëren we het model en passen we de data
De resultaten interpreteren
We plotten het resultaat van het model om de padrepresentatie te begrijpen. De plot wordt opgeslagen als
political_sem_model.png.SEM-padendiagram voor de politieke-democratie-dataset. Bron: afbeelding door de auteur
Het diagram laat zien hoe het pad de latente constructen (in cirkels) en de geobserveerde variabelen relateert. Padcoëfficiënten dichter bij 1 of -1 duiden op sterke relaties tussen variabelen en die nabij 0 op zwakke relaties.
De standaarddeviaties in de tabel vallen binnen het bereik. Grotere waarden kunnen duiden op multicollineariteit of een onjuist gespecificeerd model. De p-waarden bepalen de statistische significantie van de padcoëfficiënten. Een p-waarde kleiner dan 0,05 duidt meestal op een statistisch significant pad. We zien twee gevallen waarin de p-waarde groter is dan 0,05.
Al met al laten de resultaten zien dat
ind60een significante invloed heeft opdem60, dat op zijn beurt een significante invloed heeft opdem65.Model fit beoordelen
Het veronderstelde model moet overeenkomen met de geobserveerde relaties om de SEM-model fit te beoordelen. Er worden verschillende fit-indices gebruikt om te beoordelen hoe goed het model bij de data past. Hier zijn veelgebruikte:
Veelvoorkomende uitdagingen en oplossingen in SEM
Enkele veelvoorkomende uitdagingen van de structural equation modeling-techniek zijn de volgende:
Conclusie
In dit artikel hebben we SEM uitgebreid besproken, inclusief de toepassingen, implementatie, voordelen en beperkingen. SEM is een krachtig instrument voor het onderzoeken van complexe relaties en causale interacties tussen geobserveerde en latente variabelen. Probeer het eens uit in Python of R voor je volgende analyseproject.
Als je geïnteresseerd bent in het idee van structural equation modeling maar de voorkeur geeft aan R, kun je de cursus Structural Equation Modeling with lavaan in R volgen, met gedetailleerde stapsgewijze instructies. Je kunt ook starten met het Statistician in R-carrièrepad. Als je je aan Python commit, lees dan de semopy-documentatie voor meer use-cases van SEM in Python. Ben je tot slot geïnteresseerd in geavanceerde Python-modellen die zowel voorspellen als verklaren, en wil je ideeën over modelarchitectuur en featureselectie verkennen, probeer dan ons carrièrepad Machine Learning Scientist in Python.