Saturday 12 August 2017

Glidande Medelvärde Stata Kommando


Denna datastruktur är ganska olämplig för ändamål. Om du antar ett identifierings-id måste du omforma. t. ex. Då är ett glidande medelvärde lätt. Använd tssmooth eller bara skapa. t. ex. Mer om varför din datastruktur är ganska olämplig: Inte bara skulle beräkning av ett glidande medel behöva en slinga (inte nödvändigtvis involverande egen), men du skulle skapa flera nya extravariabler. Att använda dem i någon efterföljande analys skulle vara någonstans mellan obekväma och omöjliga. EDIT Ill ger en provslinga, medan du inte flyttar från min inställning att det är dålig teknik. Jag ser inte en anledning till din namngivningskonvention, där P1947 är ett medelvärde för 1943-1945. Jag antar att det bara är ett typsnitt. Låt oss anta att vi har data för 1913-2012. För 3 år förlorar vi ett år i varje ände. Det kan skrivas mer kortfattat, på bekostnad av ett flurry av makron i makron. Att använda ojämna vikter är lätt, som ovan. Den enda anledningen till att använda egen är att den inte ger upp om det finns missningar, vilket ovanstående kommer att göra. Som en fråga om fullständighet, notera att det är lätt att hantera missningar utan att tillgripa egen. Och nämnaren Om alla värden saknas minskar detta till 00, eller saknas. Annars, om något värde saknas, lägger vi 0 till täljaren och 0 till nämnaren, vilket är detsamma som att ignorera det. Koden är naturligtvis acceptabel enligt ovan i medeltal om 3 år, men antingen för det fallet eller för medeltal över flera år skulle vi ersätta raderna ovan med en slinga, vilket är vad som gör. Stata: Dataanalys och statistisk programvara Nicholas J Cox, Durham University, Storbritannien Christopher Baum, Boston College egen, ma () och dess begränsningar Statarsquos mest uppenbara kommando för att beräkna glidande medelvärden är ma () - funktionen hos egen. Med tanke på ett uttryck skapar det ett periodiskt rörligt medelvärde för detta uttryck. Som standard tas det som 3. måste vara udda. Men som den manuella inmatningen indikerar kan egen ma () kanske inte kombineras med varlist:. och av den anledningen är det inte tillämpligt på paneldata. I vilket fall som helst står den utanför uppsättningen kommandon som är specifikt skrivna för tidsserier, se tidsserier för detaljer. Alternativa metoder För att beräkna glidande medelvärden för paneldata finns det minst två val. Båda är beroende av att datasetet tidigare har ställts in. Det här är väldigt mycket värt att göra: inte bara kan du spara dig själv upprepade gånger med att ange panelvariabel och tidsvariabel, men Stata beter sig smart med några luckor i data. 1. Skriv din egen definition med hjälp av generera Använda tidsserier operatörer som L. och F. Ge definitionen av det rörliga genomsnittsvärdet som argumentet för ett genereringsuttag. Om du gör det här är du naturligtvis inte begränsad till lika viktiga (obevätade) centrerade rörliga medelvärden beräknade av egen ma (). Till exempel skulle lika viktiga treårs glidande medelvärden ges av och vissa vikter kan enkelt specificeras: Du kan givetvis ange ett uttryck som logg (myvar) istället för ett variabelt namn som myvar. En stor fördel med detta tillvägagångssätt är att Stata automatiskt gör det rätta för paneldata: ledande och försvagade värden utarbetas inom paneler, precis som logiken dikterar att de borde vara. Den mest anmärkningsvärda nackdelen är att kommandoraden kan bli ganska lång om det rörliga genomsnittet innefattar flera termer. Ett annat exempel är ett ensidigt rörligt medelvärde baserat endast på tidigare värden. Detta kan vara användbart för att generera en adaptiv förväntning av vilken variabel som kommer att baseras uteslutande på information till dags dato: vad kan någon förutspå för den aktuella perioden baserat på de fyra senaste värdena, med hjälp av ett fast viktningsschema (en 4-tidsperiod kan vara speciellt vanligt förekommande med kvartalsvisa tidsserier.) 2. Använd eget filter () från SSC Använd det användarskrivna egenfunktionsfiltret () från egenmore-paketet på SSC. I Stata 7 (uppdaterad efter 14 november 2001) kan du installera det här paketet efter vilket hjälp egenmore pekar på detaljer på filteret (). De två ovanstående exemplen skulle göras (I denna jämförelse är genereringsmetoden kanske mer genomskinlig, men vi kommer att se ett exempel på motsatsen i ett ögonblick.) Lags är en numlist. Lederna är negativa lags: i det här fallet -11 expanderar till -1 0 1 eller led 1, lag 0, lag 1. Koef-ficienterna, en annan numlist, multiplicera motsvarande släpande eller ledande objekt: i det här fallet är dessa föremål F1.myvar . Myvar och L1.myvar. Effekten av normaliseringsalternativet är att skala varje koefficient med summan av koefficienterna så att koefficienten (1 1 1) normaliserar motsvarar koefficienterna 13 13 13 och koefficienten (1 2 1) normaliserar motsvarar koefficienterna 14 12 14 Du måste ange inte bara lags men även koefficienterna. Eftersom egen, ma () ger det lika viktiga fallet är huvudrincipen för egen, filter () att stödja det ojämnt viktiga fallet, för vilket du måste ange koefficienter. Det kan också sägas att förplikta användarna att specificera koefficienter är ett litet extra tryck på dem för att tänka på vilka koefficienter de vill ha. Den huvudsakliga motiveringen för lika vikter är, vi antar, enkelhet, men lika vikter har äckliga frekvensdomänegenskaper, för att bara nämna ett övervägande. Det tredje exemplet ovan kan vara vilket är ungefär lika komplicerat som genereringsmetoden. Det finns fall där egen, filter () ger en enklare formulering än att generera. Om du vill ha ett nio-termins binomialfilter, vilka klimatologer tycker är användbara ser det ut att det kanske är mindre hemskt än, och lättare att få rätt än, precis som med genereringsmetoden, fungerar egen, filter () ordentligt med paneldata. Faktum är att det som sagt ovan beror på att datasetet tidigare har ställts in. En grafisk spets Efter att du har beräknat dina glidande medelvärden kommer du förmodligen att se på en graf. Det användarskrivna kommandot tsgraph är smart om tsset dataset. Installera den i en uppdaterad Stata 7 av ssc inst tsgraph. Vad sägs om delning med om ingen av ovanstående exempel använder sig av om begränsningar. Faktum är att egen, ma () inte tillåter om det ska anges. Ibland vill folk använda om man beräknar glidande medelvärden, men användningen är lite mer komplicerad än det vanligtvis är. Vad förväntar du dig av ett glidande medelvärde beräknat med if. Låt oss identifiera två möjligheter: Svag tolkning: Jag vill inte se några resultat för de uteslutna observationerna. Stark tolkning: Jag vill inte ens att du ska använda värdena för de uteslutna observationerna. Här är ett konkret exempel. Antag som en följd av vissa om villkor ingår observationer 1-42 men inte observationer 43 på. Men det rörliga genomsnittsvärdet för 42 beror bland annat på värdet för observation 43 om medelvärdet sträcker sig bakåt och framåt och är av längd åtminstone 3, och det kommer också att bero på några av observationerna 44 under vissa omständigheter. Vår gissning är att de flesta skulle gå för den svaga tolkningen, men om det är korrekt, kan inte filter () heller stödja om. Du kan alltid ignorera vad du donrsquot vill eller ens ställa in oönskade värden att sakna efteråt genom att använda ersättare. En anteckning om saknade resultat i slutet av serierna Eftersom rörliga medelvärden är funktioner av lags och leads, producerar egen, ma (), där lags och leads inte existerar, i början och slutet av serien. Ett alternativ nomiss tvingar beräkningen av kortare, ocenterade glidmedel för svansarna. Däremot, varken generera eller egna, filter () gör, eller tillåter, något speciellt för att undvika att sakna resultat. Om något av värdena som behövs för beräkning saknas, saknas det resultatet. Det är upp till användarna att bestämma om och vilken korrigering som krävs för sådana observationer, förmodligen efter att ha tittat på datasetet och med tanke på vilken underliggande vetenskap som kan bäras. Ofta kan vi vara intresserade av att generera ett rumsligt glidande medelvärde av en Karakteristiska X. Vi kan använda detta glidande medelvärde för att hjälpa till att kontrollera heterogenitet i befolkningen som kan relateras till den rumsliga fördelningen av observationer. För att kunna göra det behöver vi ha en metod för att generera ett rumsligt medelvärde. Jag kodar det här manuellt eftersom jag inte har erfarenhet av rumslig data i Stata och vet inte vad det inbyggda kommandot är (förutsatt att det finns en). Om du bara letar efter det rumsliga medelvärdet kan du gynna det inbyggda kommandot. Denna metod är emellertid flexibel och lättmodifierbar om du till exempel vill använda åtgärder utöver Euclidean 2D-distansformeln och istället föredrar 3D-formeln eller nD-formeln. På samma sätt kan glidande medelstatistik lätt ersättas med rörlig varians eller någon annan statistik som kan genereras via egenkommandot. Således kan denna övning vara användbar för att undersöka även om det är överflödigt. global Nobs 1000 clear set obs Nobs Generera 2D-koordinater gen latt runiform () 100 gen longg runiform () 100 Generera variabeln av intresse. Variabeln kommer att ha en slumpmässig komponent och en rumsberoende komponent. gen X (lattlongg) 100rnormal () två (scatter latt X) (scatter longg X) Vi kan se att även om det finns en allmän trend för större värden som longitud eller breddgrad ökning är det svårt att identifiera något starkt mönster. Nu kan vi beräkna det glidande medlet av X för varje observation. (Det finns förmodligen ett kommando för detta som jag inte vet). gen Xave. gen dist. Forv i1Nobs Beräkna avståndet för alla punkter från obs jag ersätter dist (latt-latti) 2 (longg-longgi) 2) .5 Beräkna medelvärdet av X om avståndet ligger inom intervallet av intresse egen tempx medelvärde (X) om distltmeanrange Ersätt Xave tempx om ni släpper tempx två (scatter latt Xave) (scatter longg Xave) Nu ser vi på glidande medelvärdet vi kan enkelt visuellt identifiera effekten av platsen på det förväntade värdet av X. Anmälan Det är mitt första inlägg och jag kommer försök att vara så tydlig som möjligt. Länken för huvuddatabasen är i slutet av posten. Innehåll Jag använder StataSE 12.0 under Windows 10. Jag har börjat med Stata bara några veckor sedan och jag försöker själv lära mig om ett uppdrag på ett par dagar nu (eftersom varje tabell eller figur tog mig dagar och dagar) : replikering av papperstillfället Obligatorisk skolans närvaro Påverka skolig och vinstkvot: web. stanford. edu pistaangrist. pdf som består av att visa att personer som föddes under årets sista kvartal har mer utbildning i genomsnitt än de som föddes i första kvartalen på grund av grundskolan lagar. De första siffrorna ritar ett genomsnittligt antal år av utbildning (variabel EDUC) för alla födda ett visst år (variabel YOB för födelseår) under ett visst kvartal (QOB). Det finns en generell ökande trend och att förväxla data, de använder ett glidande medelvärde (figur IV), vilket är där jag har blockerats under de senaste 5 dagarna. Problem I databasen finns 27 variabler, bland annat v4 omdirigerade EDUC, v27 omnämnd YOB (födelseår) och v18 omdirigerade QOB (kvartalet födelse). Vad som behövs för glidande medelvärdet är att för varje uppsättning personer som är födda i år c och kvartal j, beräknas det genomsnittliga antalet års utbildning inte för detta år och kvartal, men för kvartalet precis före, 2 fjärdedelar före, ett kvartal Senare och 2 fjärdedelar senare (förklarad s. 985 i papperet). Till exempel, om jag tittar på männen födda mellan 1930 och 1939 som i denna figur (figur IV i artikeln: onedrive. liveredirresi. Ntphoto2cpng), måste jag börja med kohorten född 1930, 3: e kvartalet och beräkna medelantalet Av år av utbildning för de födda 1930, 2: a kvartalet (född ett kvartal före den givna kohorten), samma för de födda 1930, 1: a kvartalet (född 2 kvartalen före den givna kohorten), samma för de födda 1930, 4: e kvartalet (Ett fjärdedel efter den givna kohorten), och samma för de födda 1931, 1: a kvartalet (2 fjärdedelar efter den givna kohorten). Då erhålls glidande medelvärde genom att lägga till dessa 4 värden och dela med 4. Denna hela processen bör upprepas för varje kohort mellan 1930, 3: e kvartalet och 1939, 2: a kvartalet. Gör-fil för do-filen (onedrive. liveredirresid6919D329B3BF1EF23227ampauthkeyAO2cxEN AGpZMgsMampithintfile2cdo), började jag med modellen för de andra figurerna och försökte använda foreach loop och många andra saker (kom inte ihåg felmeddelandena vet inte att jag skulle posta här) men fortfarande inte räkna ut hur man berätta för Stata: quotfor varje YOBQn. Beräkna medelvärdet (EDUC) för YOBQ n-1, YOBQ n-2, YOBQ n1, YOBQ n2quot. För att göra summan och dela med 4 efter det borde det vara enklare. Jag har fått en exceptionell ledtråd för undervisningsassistenten: citationstecknet tssmooth kommandot. Du måste först skapa en tidsvariabel för vilken eget gruppkommando kommer att vara mycket användbart. quot men enligt min forskning om quotegenquot och quottssetquot i datahandböckerna och i boken Cameron amp Trivedi, quotEconometrics med Stataquot (sista länken): statamanuals14degen. tfolder2cdta statamanuals14gsw11.pdf statamanuals14u11.p. Languageyntax statamanuals14u13.p. Itsubscripting onedrive. liveredirresi. intfile2cpdf Jag borde ställa in data före tssmooth men jag gick inte förbi det här steget, eftersom notationen n inte är tillåten med quotegenquot (error r (101) quotweights not allowedquot) och jag är fortfarande mycket förvirrad med hur man kombinerar egen, tsset och tssmooth. Det skulle vara bra om någon kunde hjälpa mig med hur man löser quotweights not allowedquot fel och hur man kombinerar kommandona quotegenquot, quottssetquot och quottssmoothquot. Tack så mycket Postscript: här är databasen förresten onedrive. liveredirresi. Tfolder2cdta Obs! Jag har en fil för de viktigaste andra figurerna och tabellerna i artikeln, förutom tabell I men den här filen är förmodligen inte nödvändig för info: onedrive. liveredirresi. hintfile2cdo Senast redigerad av Amarylis Durand 25 Mar 2016, 01:55. 25 mars 2016, 22:50 Här är en kortare version av min fråga: hur man undviker felet nedan (r451 med fetstil) och hur man berättar för Stata att det rörliga genomsnittet av quotmedstay1quot ska beräknas för varje värde av tps av YOB QOB för Alla som föddes samma år och samma kvartal, sortera efter fler år och kvartaler och beräkna det genomsnittliga antal års utbildning av YOB QOB. Sortera: egen medstay1 mean (EDUC) generera en ny variabel YOBNy eftersom kommandot yq kräver det första argumentet att vara mellan 1000 och 9999 och vår data för YOB i 1980-folkräkningen är mellan 30 och 49 istället för 1930 och 1949 gen YOBNewYOB ersätt YOBNew YOB1900 om CENSUS80 genererar en tidsvariabel som har formatet som krävs i hjälp tsset gen tpsyq (YOBNew, QOB) format tq tps följande instruktion returnerar r451. Upprepade tidsvärden i panelen, förmodligen för att det finns tusen personer födda under samma år och samma kvartal, uppenbarligen med samma genomsnittliga antal års utbildning. Hur man undviker det här felet tsset medstay1 tps instruktion för att ha det glidande genomsnittet MA men jag vill att flyttningen av medelvärdet av medstay1 ska beräknas för varje värde av den tidvariabel quottpsquot. Vilket kommando skulle tillåta mig att göra det här eller gör det automatiskt automatiskt med MA MA medstay1. Fönster (2 0 2) Jag hoppas att någon kan hjälpa.

No comments:

Post a Comment