Stata omite variabilele „coliniare” după termenul de interacțiune (Programare, Stata, Interacțiune, Multicoliniaritate)

Alice a intrebat.

În Stata, am descoperit recent că, atunci când folosesc aceeași variabilă în mai mulți termeni de interacțiune într-un model de regresie, Stata semnalează coliniaritatea acelei variabile. De exemplu, rulând:

regress dep i.gender##c.age i.ethnicity##c.age

Marchează următorul mesaj:

note: age omitted because of collinearity

Vârsta este totuși inclusă în tabelul de regresie ulterior, dar de două ori, prima dată cu un coeficient, SE etc., așa cum ne-am aștepta, dar apoi a doua oară spunând omitted.

Am făcut analize similare de multe ori înainte, dar nu am avut niciodată acest lucru (sau cel puțin nu l-am observat niciodată). Este strident, pentru că este de la sine înțeles că vârsta este coliniară cu ea însăși. Dar asta nu ar trebui să conteze, pentru că nu este ca și cum ar exista două variabile numite „vârstă” pe care încerc să le introduc simultan. Este foarte clar că este o singură variabilă pe care o folosesc în doi termeni de interacțiune. A mai întâlnit cineva acest lucru și cunoaște o modalitate de a-l suprima?

1 răspunsuri
Marcelo Avila

Da, stata nu analizează intrarea pentru a verifica dacă variabilele sunt exact aceleași, dar puteți suprima variabilele omise din cauza multicolinearității folosind noomitted opțiune, sau asigurându-vă că includeți fiecare variabilă doar o singură dată în regresie, folosind single # pentru termenii de interacțiune.

sysuse nlsw88

reg wage i.south##c.age i.union##c.age 
reg wage i.south##c.age i.union#c.age i.union // only one each

reg wage age age age 
reg wage age age age, noomitted // suppress output. 

O altă problemă posibilă se datorează utilizării unor date rare prin construirea unui număr prea mare de termeni de interacțiune și există doar un singur tip de observație pentru o variabilă fictivă generată (fie toate „1”, fie toate „0”). A se vedea următorul exemplu.

cls
reg wage i.south##age    // runs fine
replace south = 1 if age == 46
reg wage i.south##age    // note: 1.south#46.age omitted because of collinearity
reg wage i.south##c.age  // runs fine

În orice caz, nu sunt sigur că se aplică la problema dvs., deoarece ați făcut o regresie explicită pe o variabilă continuă. age interacționat cu etnia și sexul. Nu cred că această problemă apare atunci când se utilizează o variabilă continuă. Poate?