Trendmodell

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Antworten
kingerde
Beiträge: 9
Registriert: Do Jun 03, 2021 9:34 pm

Trendmodell

Beitrag von kingerde »

Guten Morgen,

ich habe momentan einen Datensatz mit verschiedenen Unternehmen und einem Zeitraum von 2005-2020. Ich möchte eine Trendregression durchführen, die in etwa so aussieht:

Code: Alles auswählen

lnX_t = lnX_0 +[b] t * g_x[/b] + e_t^X


Ich konnte im Internet nichts dazu finden und habe leider keine Ahnung von so einem Modell. Was ich jetzt machen würde ist eine neue Spalte mit "t" hinzuzufügen und dann eine Regression mit X als abhängige Variable und t als unabhängige Variable für jedes Unternehmen laufen zu lassen.

Code: Alles auswählen

df$t <- NA;
df$t <- df$YEAR - min(df$YEAR) + 1

lm(lnX ~ t) #so würde das Regressionsmodell aussehen#
oder müsste man anstelle

Code: Alles auswählen

lm (), ts ()
verwenden?

Code: Alles auswählen

 DATENSATZ BEISPIEL
Code Name 		Jahr	lnX	
1 Beispiel Unternehmen 1 2005	500
1 Beispiel Unternehmen 1 2006	300
1 Beispiel Unternehmen 1 2007	400
1 Beispiel Unternehmen 1 2008	200
1 Beispiel Unternehmen 1 2009	800
1 Beispiel Unternehmen 1 2010	700
1 Beispiel Unternehmen 1 2011	350
2 Beispiel Unternehmen 2 2005	280
2 Beispiel Unternehmen 2 2006	299
2 Beispiel Unternehmen 2 2007	123
2 Beispiel Unternehmen 2 2008	254
2 Beispiel Unternehmen 2 2009	1231
2 Beispiel Unternehmen 2 2010	5
2 Beispiel Unternehmen 2 2011	23
Danke für eure Hilfe
Zuletzt geändert von kingerde am Sa Jun 12, 2021 4:51 pm, insgesamt 1-mal geändert.
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Trendmodell

Beitrag von schubbiaschwilli »

Gude!

Ehrlich gesagt, komme ich mit dem Ausdruck

Code: Alles auswählen

lnX_t = lnX_0 +[b] t * g_x[/b] + e_t^X
nicht so richtig klar - Ist das jetzt so hingetippt, oder ein Stück Code, oder? Was sollen die einzelnen Ausdrücke sein (g_x, e_t^X), was genau ist dein Regressor, was genau die Regressanden (und nein, t kann es nicht sein)?

Dank&Gruß
Schubbiaschwilli
kingerde
Beiträge: 9
Registriert: Do Jun 03, 2021 9:34 pm

Re: Trendmodell

Beitrag von kingerde »

schubbiaschwilli hat geschrieben: Sa Jun 12, 2021 2:16 pm Gude!

Ehrlich gesagt, komme ich mit dem Ausdruck

Code: Alles auswählen

lnX_t = lnX_0 +[b] t * g_x[/b] + e_t^X
nicht so richtig klar - Ist das jetzt so hingetippt, oder ein Stück Code, oder? Was sollen die einzelnen Ausdrücke sein (g_x, e_t^X), was genau ist dein Regressor, was genau die Regressanden (und nein, t kann es nicht sein)?

Dank&Gruß
Schubbiaschwilli
Hey,
nein, dass soll kein Code sein, sondern wie das Modell auszusehen hat. Es ist quasi identisch (habe es leider sehr schlecht aufgeschrieben) wie hier: Bild
https://www.dummies.com/education/math/ ... ion-model/


Eine Trendregression mit t als unabhängige Variable,
X ist die abhängige Variable
g ist das Wachstum von X

Da t die unabhängige Variable ist, hätte ich dieses Regressionsmodell gebildet:

Code: Alles auswählen

lm(lnX ~ t)
Ich hoffe das war verständlicher.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Trendmodell

Beitrag von bigben »

kingerde hat geschrieben: Sa Jun 12, 2021 4:57 pmDa t die unabhängige Variable ist, hätte ich dieses Regressionsmodell gebildet:

Code: Alles auswählen

lm(lnX ~ t)
Du solltest lm noch mitteilen, in welchem Dataframe diese Werte zu finden sind. Wenn der Dataframe df heißt, dann wäre der Aufruf

Code: Alles auswählen

lm(lnX ~ t, data = df)
Also so, wie hier im Beispiel gezeigt: http://forum.r-statistik.de/viewtopic.p ... 837#p15837


im Übrigen ist die Zeile

Code: Alles auswählen

df$t <- NA;
komplett überflüssig, weil df$t ja gleich in der nächsten Zeile ja wieder was ganz anderes zugewiesen wird. Ein Semikolon am Zeilenende braucht es in R auch nicht.

Je nachdem, was Du mit der Trendregression vorhast kann man wahrscheinlich auch überlegen, ob man

Code: Alles auswählen

df$t <- df$YEAR - min(df$YEAR) + 1
weglässt und gleich die Regression mit

Code: Alles auswählen

lm(lnX ~ YEAR, data = df)
macht. Aber das musst Du entscheiden, ob das besser ist.

Nicht das es schlimm wäre oder performance-relevant, aber überflüssige Codezeilen lenken halt ab.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten