Mam nadzieję, że ktoś może mi pomóc, ponieważ utknąłem z tym problemem od dłuższego czasu.
Mam panel spółek S & P500 z lat 2010 – 2014 i chcę przeprowadzić regresję obejmującą efekty stałe dla branży i roku.
Jestem początkującym w analizie danych panelowych, a także w Stata i nie mogę nigdzie znaleźć odpowiedzi. Jestem tak zdezorientowany, że nie jestem pewien, czy efekty stałe branżowe i roczne są równoważne efektom stałym w przekroju i okresie.
Komentarze
- Tam ' sa fajnie artykuł w SJ na temat stałych efektów o dużych wymiarach, w tym przegląd innych poleceń.
Odpowiedź
Powiedzmy, że masz jakąś zmienną kategorii $ c_i $ (np. C może być firmą branżową, do której należy $ i $). Ważnym punktem matematycznym, o którym należy pamiętać, jest to, że przeprowadzanie regresji efektów stałych z efektami stałymi dla $ c $ jest równoważne uruchomieniu regularnej regresji ze zmiennymi wskaźnikowymi dla każdej możliwej wartości $ c $.
Podstawową strategią może być:
- użyj
xtset industryvar
w Stata, aby wskazać, że chcesz uzyskać stałe efekty dla każdej unikalnej wartości zmiennej industry. - Generuj fikcyjne zmienne dla każdego roku.
- Zadzwoń pod numer
xtreg
z opcjąfe
wskazującą efekty stałe, w tym zmienne fikcyjne dla roku jako zmienne po prawej stronie.
Więcej dawny Plicitly, możesz zrobić coś takiego:
xtset industry xtreg y x1 x2 i.year, fe
Zakłada się, że year
jest zmienną, która przechowuje rok, industry
to zmienna określająca branżę itp. …
Komentarze
- Drogi Mateuszu, dziękuję tyle za twoją pomocną odpowiedź. Spróbowałem tak, jak radziłeś w Stata i jestem zadowolony z wyniku, jaki otrzymałem. Czy miałbyś coś przeciwko, jeśli jeszcze raz sprawdzę z Tobą – mam 418 firm z indeksu S & P 500, w okresie 5 lat 2020 – 2014 i pobrałem kody SIC dla każdej firmy, aby kontrola efektów branżowych. W ten sposób zrobiłem: xtset sic; xtreg y x1 x2 x3 … i.rok, np. z góry przepraszam, jeśli moje pytanie wydaje ci się głupie, ale jestem absolutnie początkującym i nie mam nikogo na moim uniwersytecie, kto mógłby mi pomóc w panelu. Pozdrawiam, Milica
- tak, ' tak byś to zrobił. Kolejna przypadkowa myśl, możesz użyć 4-cyfrowych kodów SIC lub możesz również wypróbować 3-cyfrowe kody sic (np. Wygeneruj nową zmienną SIC3, biorąc 4-cyfrowy kod, dzieląc przez 10 i odcinając resztę za pomocą funkcji floor (), tj.
gen sic3 = floor(sic4/10)
). - Dziękuję za miłą i pomocną odpowiedź. Z poważaniem, Milica
Odpowiedź
W tym kontekście regresja z efektem stałym (lub w estymatorze) jest metoda modelowania z danymi panelowymi lub danymi wzdłużnymi. Ten estymator różni się od średniej zmiennych jednostki obserwacyjnej z każdej zmiennej:
Dla osobników $ i \ in 1 \ dots N $, obserwowanych w okresach $ 1 \ dots T $ i współzmiennych $ X_k $ i zmienna zależna $ Y $, estymator efektów stałych wykonuje następującą transformację:
$ \ breve {Y} _ {it} = Y_ {it } – \ bar {Y} _i $ i
$ \ breve {X} _ {zestaw} = X_ {zestaw} – \ bar {X} _ {ki} $ za $ k = 1 \ kropki K $
Regresja jest wykonywana na przekształconych zmiennych. W stata jest to realizowane za pomocą polecenia xtreg
z fe
.
To polecenie prawdopodobnie nie zadziała w twojej sytuacji, ponieważ jest przeznaczone do różnicowania średnich dla każdej jednostki obserwacyjnej. Prawdopodobnie będziesz mieć wiele firm, które działają w określonej branży i chcesz odróżnić średnią branżową. Jest to prosty przypadek hierarchicznego modelu liniowego.
W tym sytuacji, chcesz użyć operatora i.
w Stata:
reg y i.industry i.year
Możesz również użyć areg
, aby uzyskać identyczne wyniki:
areg y i.year, absorb(industry)
Polecenie areg
można przydatne, gdy liczba poziomów wchłanianej zmiennej (liczba branż w tym przykładzie) jest wysoka.
Jeśli prawdą jest, że istnieje wiele firm w tej samej branży, co podejrzewam, w takim przypadku powszechną praktyką, która jest rozsądna i asymptotyczna, jest grupowanie błędów standardowych na poziomie branżowym. W stata jest to zwykle realizowane za pomocą opcji vce(cluster varname)
.Na przykład polecenie regress
zmieniłoby się w
reg y i.industry i.year, vce(cluster industry)
Podobnie, całkiem niedawno podczas konstruowania dwukierunkowych i wielokierunkowych błędów standardowych klastrów (patrz na przykład artykuł Camerona, Gelbacha i Millera z 2011 r. w Journal of Business and Economic Statistics ). Jeśli jesteś martwiąc się o wstrząsy, które wpłyną na cały zestaw akcji w danym okresie, warto to wdrożyć. Doug Miller napisał plik .ado o nazwie cgm.ado, który implementuje jedną metodę grupowania wielostronnego.
Komentarze
- Sugerowałbym również grupowanie błędów, jeśli zastosuje się takie podejście.
- To ' jest prawdą. Myślałem o dodaniu tej sugestii, ale powstrzymałem się, bo być może poza zakresem. ' dodam ją.
- I ' z trudem widzę, jak xtreg, fe jest w ogóle nieodpowiedni, ponieważ
reg y x i.industry i.year, vce(cluster industry)
wygeneruje identyczne oszacowania dla x jakxtset industry
, po którym nastąpixtreg y x i.year, vce(robust)
. Włączanie manekinów lub poniżanie oparte na id jest dokładnie tym samym z matematycznej, liniowej perspektywy algebry. W rzeczywistości dla dużej liczby zmiennych fikcyjnych xtreg będzie obliczał szybciej, ponieważ 10000 efektów stałych + 2 interesujące zmienne wymagałyby rozwiązania systemu zmiennych 10002, podczas gdy byłby to tylko system 2 zmiennych na przekształconych danych. - @MatthewGunn Zgadzam się z Tobą, że przemysł jest jednostką obserwacyjną, którą obserwuje się w czasie. Jeśli jednak na branżę przypada wiele jednostek obserwacyjnych (firm), należy dostosować typową dyskusję dotyczącą FE i
xtreg .., fe
. Uruchomieniextset
w takim przypadku skutkuje błędem .: " powtórzone wartości czasu w panelu. " - możesz mieć wiele firm w każdej branży. To ' jest w porządku, po prostu nie ' nie ustawiaj tsset.