Analiza unui model de regresie liniară folosind IBM Amos (1/4)

Vă voi oferi un mini-serial, pe care chiar v-aș ruga să-l distribuiți, de 4 articole privind regresia liniară din perspectivă SEM, utilizându-se IBM SPSS Amos, R, Mplus și LISREL. Este un extras din lucrarea în două volume, numită „Modele de ecuații structurale”, pe care o am în lucru. Sper să vă placă, chiar dacă veți avea sentimentul că ați ajuns la mijlocul discuției. Chiar așa și este, aceste articole având un loc bine stabilit în cadrul expunerii, făcând trecerea de la analizele clasice la SEM, însă nu vă va afecta înțelegerea.

Dacă v-am trezit curiozitatea, veți putea accesa în curând cursul în format eLearning pe portalul New Skills Learning sau veți putea cumpăra cărțile atunci când vor apărea. Dacă sunteți student la Școala Doctorală de Psihologie de la Universitatea București, curiozitatea vă va fi satisfăcută începând cu al doilea semestru, iar dacă veți veni în perioada 9-15 iulie 2018 la școala de vară de la Iași, veți avea ocazia să vedeți cum se combină modelele de ecuații structurale cu psihoterapia într-un duplex pe care voi avea onoarea și plăcerea să-l susțin împreună cu profesorul Bogdan Bălan de la Université Du Québec En Outaouais – St-Jérôme, Canada. Până atunci, lectură plăcură!


Să plecăm de la o situație de cercetare:

Într-o companie multinațională, un psiholog testează un număr de 102 agenți de vânzări cu 2 baterii de teste psihologice, una de inteligență și una de memorie și le administrează 3 teste de cunoștințe de specialitate pentru a putea prezice, pe baza acestor informații, performanța lor în vânzări, operaționalizată sub forma sumelor încasate de agent. Atât punctajul la testele psihologice, cât și cel la testele de cunoștințe este exprimat sub forma mediei probelor, având o amplitudine cuprinsă între 0,00 și 100,00 de puncte.

Este un exemplu tipic de regresie liniară multiplă, în care variabila criteriu va fi „vanzari”, exprimată ca medie a sumelor încasate lunar de fiecare agent într-un an, în lei iar variabilele predictor sunt „inteligenta”, „memoria” și „cunostinte”, reprezentând mediile testelor din fiecare baterie, respectiv media rezultatelor la testele de cunoștințe, toate trei fiind exprimate sub formă zecimală și având o amplitudine cuprinsă între 0,00 și 100,00 de puncte.

Altfel spus, vom avea de estimat o singură ecuație de regresie, de forma:

În formă clasică o astfel de regresie liniară nu pune probleme, însă o vom aborda din perspectiva modelelor de ecuații structurale. Înainte de toate, după ce deschidem Amos, vom stabili baza de date după procedura deja cunoscută, apoi vom identifica variabilele latente și variabilele manifeste. Variabila afectată este „vanzari”, asupra sa exercitând efecte variabilele „inteligenta”, „memoria” și „cunostintele”, toate fiind variabile observate. Ideea regresiei liniare este, așa cum știm, să vedem în ce măsură o combinație liniară a scorurilor predictorilor poate estima scorul criteriului. Cu alte cuvinte, cât de distanțat va fi acest scor estimat față de scorul observat pe care îl avem sub forma mediei vânzărilor? Așadar, estimarea nu se poate face exact, între scorul observat și cel estimat existând întotdeauna o eroare, numită eroare de estimare.

Apoi, în mod evident, deoarece regresia liniară presupune o combinație liniară a predictorilor, aceștia vor trebui corelați, amintindu-ne și faptul că una dintre asumpțiile regresie este și lipsa corelațiilor reziduurilor predictorilor. Pentru a sistematiza toate aceste informații, le vom centraliza într-un tabel:

Utilizarea modului grafic din IBM SPSS Amos

În acest moment avem toate datele necesare pentru a începe modelarea regresiei cu ajutorul Amos, inițiind specificarea modelului prin desenarea variabilelor observate, a reziduului și a relațiilor

Lucrurile sunt mult mai clare atunci când avem diagrama de cale. Am presupus că performanța agentului de vânzări, exprimată ca medie anuală a sumelor încasate, este influențată de inteligența și memoria acestuia, evaluate cu ajutorul bateriilor de teste psihologice dar și de cunoștințele pe care le are privind vânzările, evaluate cu ajutorul unor teste specifice. Desigur, nu poți acumula cunoștințe dacă nu ai o bună memorie și un nivel de inteligență suficient de ridicat și, de asemenea, nu poți vorbi despre inteligență dacă nu poți reține informații, toate aceste lucruri fiind reprezentate prin intermediul covarianțelor. Mai mult decât atât, postulând covarianțe între toți predictorii am extras, practic, ceea ce au ei în comun, iar ce rămâne ar fi varianța lor unică. Din moment ce elementele comune au fost extrase, varianțele lor unice (erorile) ar trebui să nu mai coreleze, specificându-se astfel și una dintre asumpțiile cele mai importante ale regresiei.

Dar numai inteligența, memoria, cunoștințele afectează performanța ca agent de vânzări? În niciun caz! Ar mai putea exista încă un miliard de variabile relaționate, menționând genul biologic, comunicarea, aspectul fizic, stilul vestimentar, contextul socio-economic și așa mai departe. Toate acestea, la care se adaugă, totuși, și erorile de măsurare ale celor trei predictori, sunt grupate în ceea ce numim reziduuri pe care, evident, nu le putem măsura direct, variabila fiind una latentă.

Iată un model ce arată a fi plauzibil și, probabil, ar putea fi estimat. Modelul este unul evident recursiv, are 4 variabile observate și se pot estima maximum 4(4+1)/2=10 parametri, specificându-se 6 covarianțe și 4 efecte directe, gradele de libertate ale modelului fiind dfM=0, un model saturat.

Eroarea fiind o variabilă latentă, nu se pot estima ambii parametri, efectul asupra performanței și varianța sa unică. Din acest motiv am fixat efectul și vom estima doar varianța unică, aceea care ne interesează de fapt.

Fixarea coeficienților de cale în IBM SPSS Amos este destul de simplă. Efectuăm click dreapta cu mausul pe săgeata efectului, apoi alegem din meniul derulant opțiunea „Object Properties…” sau, având săgeata selectată, apăsăm combinația de taste „Ctrl+O”. În fereastra ce se va deschide vom merge la secțiunea „Parameters” iar în caseta „Regression weight” vom putea introduce valoarea parametrului, după care închidem fereastra.

Am remarcat deja faptul că implicit, Amos calculează doar coeficienții nestandardizați. În cazul în care dorim să calculăm și varianta standardizată, putem efectua click pe butonul din mijloc de pe al optulea rând al barei de instrumente, că folosim combinația de taste „Ctrl+A” sau să mergem la meniul „View” și să alegem opțiunea „Analysis Properties…”.

Vom obține fereastra de configurare Amos, în care regăsim o serie de opțiuni, grupate pe categorii. În secțiunea „Output” vom putea configura informațiile pe care Amos le va înscrie în fișierul cu rezultate. Una dintre acestea se referă la afișarea coeficienților standardizați („Standardized estimates”) și o putem activa bifând caseta din fața numelui opțiunii. Cea de-a doua presupune calculul pătratului coeficientului ce corelație multiplă (R2), ca indicator al proporției din varianța criteriului explicată de predictori, cu alte cuvinte o măsură a puterii predictive. Vom bifa și „Squared multiple correlation”, după care închidem formularul pentru a se memora setările și, în acest moment, putem iniția estimarea și comuta apoi la diagrama de cale de ieșire.

Inițial, diagrama de ieșire conține coeficienții nestandardizați, însă configurând anterior și calculul coeficienților standardizați vom putea acum să comutăm între cele două vizualizări prin intermediul elementelor „Unstandardized estimates” și „Standardized estimates” din cel de-al patrulea panou.

Mai multe detalii vom obține însă dacă accesăm formularul de rezultate prin intermediul tastei funcționale F10. În nodul „Estimates”, ultimul tabel conține exact pătratul coeficientului de corelație multiplă, fiind în situația de a afirma că 64,3% din varianța performanței ca agent de vânzări poate fi explicată de această combinație de predictori, restul de 35,7% reprezentând varianță reziduală, explicată de erori.

Care este însă această combinație liniară a predictorilor? Exact cea determinată de coeficienții de cale din primul tabel, putând scrie acum ecuația de regresie în note brute:

Acest lucru înseamnă că dacă scorul la inteligență crește cu un punct, vânzările ar crește cu 117,199 lei; dacă scorul la memorie crește cu un punct, vânzările cresc cu doar 50,89 lei iar dacă scorul la testele de cunoștințe crește cu un punct, atunci vânzările ar crește cu 141,199 lei. Constatăm, desigur, că erorile standard ale acestor coeficienți sunt uneori foarte mari, depășind valoarea coeficientului. Pe baza testului raportului critic, constatăm că, de fapt, doar coeficienții memoriei și ai cunoștințelor sunt statistic semnificativ diferiți de zero atunci când prezic performanța, nu și inteligența. Desigur, ne-am fi dat seama de acest lucru și dacă am fi urmărit raportul critic, în cazul inteligenței coeficientul fiind mai mare de zero cu doar 0,959 abateri standard.

Iată cum valoarea primului coeficient, deși aparent foarte mare, în realitate nu prezice mai nimic. Puterea predictorilor o vom estima nu după coeficienții bruți, ci după cei standardizați. Constatăm că cel mai important predictor este rezultatul la testele de cunoștințe, modificarea acestuia cu o abatere standard ducând modificarea performanței cu 0,573 abateri standard. Al doilea predictor este memoria, cât despre inteligență se pare că nu joacă un rol prea important în cadrul acestei predicții.

Atât în fereastra de rezultate, cât și în diagrama de cale de ieșire, avem mult mai multe informații. Putem regăsi varianțele unice ale fiecărei variabile exogene, valorile covarianțelor, ultimele putând fi reprezentate și sub forma coeficienților standardizați, precum și indicatorii globali de potrivire, tipul modelului (recursiv sau non-recursiv) și numărul de cazuri sau alte date statistice ori informative pe care nu le vom detalia în acest moment.

Utilizarea editorului de programe din IBM SPSS Amos

IBM SPSS Amos este un instrument excelent pentru specificarea modelelor și analiza SEM, mai ales pentru specialiștii din domeniul socio-uman, deoarece ne scoate din limbajul formal al modelelor statistice exprimate prin ecuații matematice și ne introduce într-un cadru grafic cu elemente ludice. Dacă modelele sunt foarte complexe, limitele Amos devin evidente, aceasta fiind și principala critică pe care o aduc utilizatorii, însă puțini cunosc faptul că aplicația utilizează limbajul de programare C# sau Visual Basic .NET pentru a specifica modele și a efectua analize SEM, nefiind cu nimic mai prejos față de alte programe sau limbaje de programare destinate aceluiași scop.

Prin urmare, vom deschide „Program Editor” și vom folosi limbajul Visual Basic .NET pentru a vedea și o altă modalitate de utilizare pe care o acceptă IBM SPSS Amos.

Interfața este foarte simplă, codul fiind organizat în clase, cuprinse între cuvintele cheie „Module” și „End Module” iar în interiorul claselor găsim metodele, cuprinse între cuvintele cheie „Sub” și „End Sub” sau „Function” și „End Function”, în funcție de tipul metodei.

Nu vom face o introducere în programare, deoarece rareori vom apela structuri mai sofisticate în analizele SEM, exploatând doar o foarte mică parte din puterea limbajelor VB.NET sau C#. În conformitate cu specificațiile utilizării programării în Amos (Arbuckle, 2016), scrierea codului debutează cu declararea motorului Amos:

Observăm două lucruri. În primul rând, putem introduce comentarii dacă le vom prefixa cu un apostrof (`). În al doilea rând, declararea unei variabile se face cu ajutorul cuvântului cheie „Dim”, specificând numele variabilei și apoi, prin „As New”, clasa din care se va crea noul obiect. Astfel, am creat un nou obiect numit „motorSem” din clasa „AmosEngine” pe care îl vom putea utiliza.

Obiectul creat va rămâne „agățat” în memorie până când îl vom distruge sau până când va ieși din scopul pentru care a fost creat și va fi colectat de o tehnologie .NET denumită „garbage collector”, fapt care ar putea pune probleme. Din acest motiv, este bine să ne asigurăm că obiectul s-a distrus după ce și-a făcut treaba, iar dacă l-am declarat ca mai sus, putem folosi o structură de tip „Try … End Try”:

Mai simplu, dacă nu dorim să scriem atât de mult cod, putem folosi direct structura „Using … End Using”:

În ambele cazuri se va crea un obiect de tip motor de analiză Amos care se va distruge după ce nu va mai fi necesar, doar că în a doua situație codul este mult mai compact și mai elegant. Mai mult decât atât, am introdus o sintaxă foarte simplă ce ne va arăta că programul funcționează. Am instruit compilatorul VB.NET să scrie în fereastra de depanare mesajul „Salutare cercetători!!”. Dacă vom rula programul, efectuând click pe butonul sub forma unei săgeți de culoare verde de pe bara cu instrumente, apăsând tasta funcțională F5 sau alegând opțiunea „Run” din meniul „File”, vom obține acest mesaj în secțiunea „Debug output” a editorului:

Urmează apoi setarea mediului de lucru. Vom dori, desigur, să afișăm rezultatele după ce se termină analiza, dorim să calculăm și coeficienții standardizați, precum și pătratul coeficientului de corelație multiplă și, desigur, matricele de covarianțe ale lotului de cercetare și toate efectele:

Urmează să inițiem modelul, specificându-l, apoi să lansăm analiza, nu înainte de a introduce calea către fișierul de date:

Metoda „BeginGroup” asta face. Introduce calea către fișierul de date și inițiază specificarea modelului. Există mai multe argumente ale acestei metode, însă nu le vom discuta acum pentru a nu lungi inutil expunerea.

Specificarea modelului este extrem de simplă și se realizează cu ajutorul metodei „AStructure”, Amos utilizând notația REM, iar lansarea analizei se face cu ajutorul metodei „FitModel”. Codul complet al specificării și identificării modelului de regresie liniară va fi următorul:

Este foarte simplu și foarte elegant, mai ales în cazul modelelor complexe, cu multe variabile. Pentru ca lucrurile să fie și mai elegante, Amos ne permite să includem chiar ecuația de regresie ca parametru al metodei „AStructure”. În loc să scriem cele 4 rânduri, am putea scrie doar unul, de forma:

Analiza va funcționa la fel, returnându-se fereastra de rezultate pe care o cunoaștem. Desigur, nu vom avea o diagramă de cale, pentru că motorul Amos se ocupă doar de analize, nu și de desenat. Pentru a putea construi o diagramă, va trebui să utilizăm și clasa „pd” din motorul grafic Amos, însă aceste lucruri le vom explora cu altă ocazie.

Codul de mai sus poate fi scris și în C# sau se poate folosi un mediu de dezvoltare, mai elaborat, cum ar fi, spre exemplu, Visual Studio, însă pentru sarcini uzuale ne va fi suficient editorul Amos.

Este posibil ca în urma analizei să se genereze unul sau mai multe mesaje de eroare. Nu este nicio problemă, le puteți ignora, iar dacă vă deranjează, utilizați „Try … End Try” în loc de „Using … End Using” și nu uitați să salvați programul folosind combinația de taste „Ctrl+S” sau alegând opțiunea „Save” din meniul „File”.


Sper că v-a plăcut și îl considerați util. Data viitoare vom vedea cum facem exact același lucru folosind limbajul R și pachetele „sem” și „lavaan”.

One thought on “Analiza unui model de regresie liniară folosind IBM Amos (1/4)”

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *