Seite 1 von 3

Zeitliche Konsistenz in Stata

BeitragVerfasst: Fr 13. Aug 2021, 13:29
von BwBw
Hallo Zusammen,

ich argumentiere in meiner Masterarbeit, dass sich sozial verantwortliches Verhalten von Unternehmen verstärkt positiv auswirkt, wenn soziale Handlungen konsistent auftreten.
Ein Paper, an dem ich mich orientiere beschreibt die Operationalisierung der Variable Zeitliche Konsistenz folgendermaßen: Die Social performance scores für die letzten 5 Jahre "were regressed against time". Basierend auf der Standartabweichung des Regressionskoeffizienten wird anschließend die Zeitliche Konsistenz festgestellt.

Meinem Verständnis nach habe ich "Time" als unabhängige Variable zu Behandeln, während "Social Performance Scores" die abhängige Variable darstellt.
Mir ist allerdings unklar, wie ich eine "Regression against time" in Stata durchführe.

Über Tipps und Anregungen würde ich mich sehr freuen.

Viele Grüße

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Fr 13. Aug 2021, 20:30
von Staxa
Prinzipiell ist das ganz einfach

Code: Alles auswählen
reg score c.timevar


Der Vorteil des Verfahrens ist mir allerdings nicht wirklich klar. Du kannst die zeitliche Variation ja auch sehr viel einfacher messen, hier gezeigt am Beispiel Lohn:


Code: Alles auswählen
webuse nlswork, clear
bysort idcode: egen variation = sd(ln_wage)
egen pickone = tag(idcode)
hist variation if pickone == 1
sum variation if pickone == 1, det
list idcode year ln_wage variation in 1/70, sepby(idcode)


Je größer der Wert von variation, desto stärker schwankt der Lohn einer Person über die Zeit hinweg.

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: So 15. Aug 2021, 23:41
von BwBw
Hallo Staxa,

vielen Dank für Deine Hilfreiche Antwort!
Ich möchte nicht die Variation betrachten, da dies Firmen, die ihren Score verbessert haben als Inkonstant ausweisen würde.

Code: Alles auswählen
reg score c.timevar


Kannst Du mir sagen, wie ich hier den Zeitraum auf die letzten 5Jahre beschränke?

Beste Grüße,
BwBw

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 08:15
von Staxa
Aber gerade das ist ja die Definition von Variation, also Veränderung über die Zeit hinweg. Eine Firma, die immer den selben Wert hat, hat eine Standardabweichung von 0, also perfekte Konstanz. Und was ist, wenn eine Firma sich mal verbessert und mal verschlechtert? Hier musst du genau definieren, was du am Ende eigentlich messen willst.


Angenommen deine Variable zur Zeitmessung ist years mit 2011, 2012, 2013, ... als Werten, dann:

Code: Alles auswählen
reg score c.timevar if inrange(years, 2016, 2021)

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 10:56
von BwBw
Hallo Staxa,

danke für Deinen Hinweis. Ich werde auf jeden Fall darauf achten, die Vorteile von meinem Ansatz herauszuarbeiten und das Vorgehen genau zu definieren.

Ich habe mit deinen Vorschlag:
Code: Alles auswählen
reg score c.timevar if inrange(years, 2016, 2021)

sowohl in meinem Datensatz als auch in dem nlswork Datensatz experimentiert.

Leider ist es mir nicht gelungen zu einem Ergebnis zu kommen, da ich die Fehlermeldung 'inrange not found' bekomme. Alternativ bekomme ich die Fehlermeldung 'Type mismatch', was mich verwundert, da es sich bei beiden Variablen um numerische handelt.
Weisst Du einen Ansatzpunkt, wie ich mein Problem angehen kann?

Viele Grüße,
BwBw

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 11:29
von Staxa
Das ist aber seltsam, ist da vielleicht irgendwo ein Tippfehler? inrange ist eine Funktion in Stata, siehe help inrange. Als Beispiel:

Code: Alles auswählen
sysuse auto, clear
sum mpg if inrange(price, 6000, 8000)


Welche Stata Version nutzt du? Bitte einmal deinen ganzen Output hier zeigen, also das, was im Fenster am Ende erscheint.

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 12:20
von BwBw
Hallo Staxa,

ich weiß nun was ich falsch gemacht habe. Ich habe ein Leerzeichen zwischen inrange und die Klammer gesetzt. Da hatte ich wohl ein Brett vorm Kopf, tut mir leid.
Da mein Datensatz einen Zeitraum von 20Jahren beinhaltet habe ich den von Dir vorgeschlagenen Code umgeschrieben zu:

Code: Alles auswählen
reg Score c.fyear if inrange(fyear, fyear, fyear[_n-4]


Dies müsste sicherstellen, dass jeweils die letzten 5Jahre berücksichtigt werden, nicht wahr?

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 12:43
von Staxa
Da wäre ich vorsichtig hier die Referenz so zu setzen. Also was genau meinst du mit "letzte 5 Jahre"? Also ist das ein bestimmtes Zeitfenster, das für alle Firmen identisch ist, oder jeweils die letzten 5 Einträge einer Firma, auch wenn das dann zeitlich asynchron sein kann?

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 13:29
von BwBw
Ich arbeite mit einem Datensatz, der im Zeitraum von 1995 bis 2013 S&P500 Unternehmen einmal jährlich einen CSR Score zuordnet.
Die Zeitliche Konsistenz soll eine Moderierende Variable in der Beziehung von CSR und FInanzieller Performance darstellen, wobei ich die zur Berechnung der zeitlichen Konsistenz die jeweils letzten 5Jahre berücksichtigen möchte.

Bezogen auf Deine Rückfrage bedeutet dies, dass ein Fokus auf die letzten 5 Jahre automatisch die letzten 5 Einträge erfasst. Insofern sollte es nicht zeitlich asynchron sein.

Ich bedanke mich ganz herzlich für Deinen Input Staxa!

Re: Zeitliche Konsistenz in Stata

BeitragVerfasst: Mo 16. Aug 2021, 13:37
von Staxa
Warum nutzt du dann nicht einfach

Code: Alles auswählen
...if inrange(year, 2008, 2013)


Andernfalls könnte es ja sein, dass Firma A nur Daten von 2005 bis 2010 hat, Firma B aber Daten von 2002 bis 2007, usw...