Sper că cineva mă poate ajuta deoarece sunt blocat cu această problemă de ceva timp.
Am un grup de companii S & P500 din 2010 – 2014 și vreau să conduc o regresie care să includă efecte fixe pe industrie și pe an.
Sunt un începător în analiza datelor de panou și, de asemenea, Stata, și nu găsesc răspunsul oriunde. Sunt atât de confuz, încât nu sunt sigur dacă efectele fixe ale industriei și ale anului sunt echivalente cu efectele fixate în secțiune și perioadă.
Comentarii
- Acolo ‘ sa nice lucrare în SJ despre efecte fixe de înaltă dimensiune, inclusiv o revizuire a altor comenzi.
Răspuns
Să spunem că aveți o anumită variabilă de categorie $ c_i $ (de exemplu, c poate fi compania din industrie în care se află $ i $). Un punct matematic important de reținut este că rularea unei regresii de efecte fixe cu efecte fixe pentru $ c $ este echivalent cu executarea unei regresii regulate cu variabile de indicator pentru fiecare valoare posibilă de $ c $.
O strategie de bază ar putea fi:
- să folosești
xtset industryvar
în Stata pentru a indica că doriți efecte fixe pentru fiecare valoare unică a industriei. - Generați variabile fictive pentru fiecare an.
- Apelați
xtreg
cu opțiuneafe
pentru a indica efectele fixe, inclusiv variabilele false pentru anul ca variabile din partea dreaptă.
Mai multe ex pe bună dreptate, ați putea face ceva de genul:
xtset industry xtreg y x1 x2 i.year, fe
Aceasta presupune că year
este o variabilă care deține anul, industry
este o variabilă care deține industria etc …
Comentarii
- Dragă Matei, mulțumesc atât de mult pentru răspunsul tău util. Am încercat după cum ați recomandat în Stata și sunt mulțumit de rezultatul obținut. Te-ar deranja dacă verific din nou cu tine – am 418 companii din indexul S & P 500, peste 5 ani 2020 – 2014 și am descărcat coduri SIC pentru fiecare companie în controlul efectelor industriei. Astfel am făcut: xtset sic; xtreg y x1 x2 x3 … i.year, fe îmi cer scuze în avans dacă întrebarea mea vi se pare o prostie, dar sunt un începător absolut și nu am pe cineva din Uni care să mă poată ajuta cu Panel. Salutări, Milica
- da, așa ‘ este modul în care ai face asta. Un alt gând aleatoriu, ai putea folosi coduri SIC din 4 cifre sau ai putea încerca, de asemenea, coduri sic din 3 cifre (de exemplu, generează o nouă variabilă SIC3 luând codul din 4 cifre, împărțind la 10 și scăpând restul cu funcția etaj
gen sic3 = floor(sic4/10)
). - Vă mulțumim pentru răspunsul dvs. amabil și util. Cu stimă, Milica
Răspuns
În acest context, o regresie cu efect fix (sau în cadrul estimatorului) este o metoda de modelare cu date de tip panou sau longitudinale. Acest estimator diferențiază media variabilelor unității de observație de fiecare variabilă:
Pentru indivizii $ i \ în 1 \ dots N $, observați în perioadele $ 1 \ dots T $ și covariabile $ X_k $ , și variabila dependentă $ Y $, estimatorul efectului fix efectuează următoarea transformare:
$ \ breve {Y} _ {it} = Y_ {it } – \ bar {Y} _i $ și
$ \ breve {X} _ {kit} = X_ {kit} – \ bar {X} _ {ki} $ pentru $ k = 1 \ dots K $
Regresia se efectuează asupra variabilelor transformate. În stata, aceasta este implementată utilizând comanda xtreg
cu comanda fe
opțiune.
Această comandă probabil nu va funcționa în situația dvs., deoarece este concepută pentru diferențierea mediilor pentru fiecare unitate de observație. Este probabil să aveți mai multe companii care operează într-o anumită industrie și doriți să diferențiați media industriei. Acesta este un caz simplu al unui model liniar ierarhic.
În acest situație, doriți să utilizați operatorul i.
în Stata:
reg y i.industry i.year
Puteți utiliza și areg
comanda pentru a obține rezultate identice:
areg y i.year, absorb(industry)
Comanda areg
poate fi util atunci când numărul nivelurilor variabilei absorbite (numărul industriilor din acest exemplu) este ridicat.
Dacă este adevărat că există mai multe firme în aceeași industrie, așa cum cred că ar fi cazul, atunci este o practică obișnuită, care este de bun simț și susținută asimptotic, să vă grupați erorile standard la nivel de industrie. În stata, acest lucru se realizează de obicei cu opțiunea vce(cluster varname)
.Deci, de exemplu, comanda regress
ar deveni
reg y i.industry i.year, vce(cluster industry)
Într-o notă similară, o dezvoltare destul de recentă are au fost făcute în construirea erorilor standard robuste ale clusterelor bidirecționale și multidirecționale (a se vedea, de exemplu, lucrarea din 2011 a Cameron, Gelbach și Miller în Journal of Business and Economic Statistics ). Dacă sunteți îngrijorat de șocurile care afectează întregul set de stocuri într-o anumită perioadă de timp, acest lucru ar putea merita implementat. Doug Miller a scris un fișier .ado numit cgm.ado care implementează o metodă de clusterizare pe mai multe căi.
Comentarii
- Aș sugera, de asemenea, gruparea erorilor dacă se urmează această abordare.
- Acest lucru este ‘ adevărat. M-am gândit să adaug această sugestie, dar m-am abținut ca fiind în afara domeniului de aplicare. ‘ o voi adăuga în.
- Eu ‘ M lupt să văd cum xtreg, fe este deloc nepotrivit, deoarece
reg y x i.industry i.year, vce(cluster industry)
va genera estimări identice pentru x caxtset industry
urmat dextreg y x i.year, vce(robust)
. Includerea manechinilor sau degradarea bazată pe id este exact același lucru dintr-o perspectivă matematică, algebră liniară. De fapt, pentru un număr mare de variabile fictive, xtreg va calcula mai repede deoarece 10000 efecte fixe + 2 variabile de interes ar implica rezolvarea unui sistem variabil 10002 în timp ce ar fi doar un sistem cu 2 variabile pe datele transformate. > @MatthewGunn Sunt de acord cu tine în cazul în care industria este o unitate de observație care este observată în timp. Cu toate acestea, atunci când există mai multe unități de observație (firme) pe industrie, atunci discuția tipică FE șixtreg .., fe
trebuie ajustate. Rulareaxtset
într-un astfel de caz duce la o eroare .: ” valori de timp repetate în cadrul panoului. ” - puteți avea mai multe firme pe industrie. ‘ este în regulă, nu = „5d913695bc”>
nu a setat și setul.