Jag hoppas att någon kan hjälpa mig eftersom jag har fastnat med detta problem under en längre tid.

Jag har en panel med S & P500-företag från 2010 – 2014 och jag vill köra en regression inklusive bransch- och årsfasta effekter.

Jag är nybörjare i paneldataanalys och även Stata, och jag kan inte hitta svaret var som helst. Jag är så förvirrad att jag inte är säker på om bransch- och årseffekter motsvarar tvärsnitts- och periodeffekter.

Kommentarer

  • Där ' sa trevligt papper i SJ om höga dimensionella fixade effekter, inklusive en granskning av andra kommandon.

Svar

Låt oss säga att du har någon kategorivariabel $ c_i $ (t.ex. c kan vara branschföretaget $ i $ är i). En viktig matematisk punkt att tänka på är att köra en fast effektregression med fasta effekter för $ c $ motsvarar att köra en vanlig regression med indikatorvariabler för varje möjligt värde på $ c $.

En grundläggande strategi kan vara att:

  1. använda xtset industryvar i Stata för att ange att du vill ha fasta effekter för varje unikt värde för industrivar.
  2. Skapa dummyvariabler för varje år.
  3. Ring xtreg med alternativet fe för att indikera fasta effekter, inklusive dummyvariablerna för året som variabler på höger sida.

Mer ex plicitly, du kan göra något som:

xtset industry xtreg y x1 x2 i.year, fe 

Detta förutsätter att year är en variabel som innehåller året, industry är en variabel som håller branschen etc …

Kommentarer

  • Kära Matthew, tack så mycket för ditt hjälpsamma svar. Jag försökte som du rekommenderade i Stata, och jag är nöjd med det resultat jag får. Kan du tänka dig om jag kollar igen med dig – jag har 418 företag från S & P 500-index, över 5 år 2020 – 2014, och jag har laddat ner SIC-koder för varje företag till kontroll för branscheffekter. Således har jag gjort: xtset sic; xtreg y x1 x2 x3 … jag, år, jag ber om ursäkt i förväg om min fråga verkar dum för dig, men jag är en nybörjare och har ingen på min Uni som kan hjälpa mig med Panel. Vänliga hälsningar, Milica
  • ja, att ' är hur du skulle göra det. En annan slumpmässig tanke, du kan använda 4-siffriga SIC-koder eller du kan också prova 3-siffriga sic-koder (t.ex. generera en ny variabel SIC3 genom att ta den fyrsiffriga koden, dela med 10 och hoppa av resten med golv () -funktionen, dvs. gen sic3 = floor(sic4/10)).
  • Tack för ditt vänliga och hjälpsamma svar. Med vänliga hälsningar, Milica

Svar

I detta sammanhang är en fast effektregression (eller inom estimatorn) en metod för modellering med panel- eller longitudinella data. Denna uppskattning skiljer sig från genomsnittet för observationsenhetens variabler från varje variabel:

För individer $ i \ i 1 \ punkter N $, observerade i perioder $ 1 \ punkter T $, och samvarierar $ X_k $ och beroende variabel $ Y $, den uppskattade effekten för fast effekt utför följande omvandling:

$ \ breve {Y} _ {it} = Y_ {it } – \ bar {Y} _i $ och
$ \ breve {X} _ {kit} = X_ {kit} – \ bar {X} _ {ki} $ för $ k = 1 \ punkter K $

Regressionen utförs på de transformerade variablerna. I stata implementeras detta med kommandot xtreg med fe -alternativ.

Detta kommando fungerar förmodligen inte i din situation, eftersom det är utformat för att skilja genomsnittet för varje observationsenhet. Det är troligt att du kommer att ha flera företag som arbetar i en viss bransch och du vill skilja på branschgenomsnittet. Detta är ett enkelt fall av en hierarkisk linjär modell.

I detta situation vill du använda operatorn i. i Stata:

reg y i.industry i.year 

Du kan också använda areg för att få identiska resultat:

areg y i.year, absorb(industry) 

Kommandot areg användbart när antalet nivåer av den absorberade variabeln (antalet branscher i detta exempel) är hög.

Om det är sant att det finns flera företag inom samma bransch som jag misstänker är fallet, då är det en vanlig praxis, som är förnuftigt och stöds asymptotiskt, att klustera dina standardfel på branschnivå. I stata uppnås detta vanligtvis med alternativet vce(cluster varname).Så till exempel skulle ditt regress -kommando bli

reg y i.industry i.year, vce(cluster industry) 

På en liknande anteckning har en ganska ny utveckling har gjorts för att konstruera tvåvägs- och flervägskluster med robusta standardfel (se till exempel Cameron, Gelbach och Millers artikel 2011 i Journal of Business and Economic Statistics ). orolig för chocker som påverkar hela lageruppsättningen under en viss tidsperiod kan det vara värt att implementera. Doug Miller skrev en .ado-fil som heter cgm.ado som implementerar en metod för flervägskluster.

Kommentarer

  • Jag föreslår också att felen grupperas om denna metod följs.
  • Det är '. Jag tänkte lägga till detta förslag, men avstod som kanske utanför räckvidden. Jag ' Jag lägger till det.
  • I ' jag kämpar för att se hur xtreg, fe är alls olämpligt eftersom reg y x i.industry i.year, vce(cluster industry) genererar identiska uppskattningar för x som xtset industry följt av xtreg y x i.year, vce(robust). Att inkludera dummies eller förnedrande baserat på id är exakt samma sak ur ett matematiskt, linjärt algebraperspektiv. Faktum är att för ett stort antal dummyvariabler kommer xtreg att beräkna snabbare eftersom 10000 fasta effekter + 2 intressanta variabler skulle innebära att man löser ett 10002 variabelt system medan det bara skulle vara ett 2-variabelt system på de transformerade data.
  • @MatthewGunn Jag håller med dig i fallet att industrin är en observationsenhet som observeras över tiden. Men när det finns flera observationsenheter (företag) per bransch måste den typiska FE-diskussionen och xtreg .., fe justeras. Att köra xtset i ett sådant fall resulterar i ett fel .: " upprepade tidsvärden i panelen. "
  • du kan ha flera företag per bransch. Att ' är bra, bara ' ställer inte in tsset också.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *