Zeitberechnung im lm- model

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Zeitberechnung im lm- model

Beitrag von Regression »

Liebes Forum ich habe folgendes Anliegen:
Gegeben sei folgender Datensatz:

Code: Alles auswählen

"1";"2016-09-29";83
"2";"2016-09-30";80
"3";"2016-10-01";78
"4";"2016-10-03";77
"5";"2016-10-04";75
"6";"2016-10-05";73
"7";"2016-10-06";69
"8";"2016-10-07";62
"9";"2016-10-08";60
"10";"2016-10-10";58
"11";"2016-10-11";56
"12";"2016-10-12";55
"13";"2016-10-13";53
"14";"2016-10-14";49
"15";"2016-10-15";48
"16";"2016-10-17";46
"17";"2016-10-18";44
"18";"2016-10-19";43
"19";"2016-10-20";41
"20";"2016-10-21";38
"21";"2016-10-22";36
"22";"2016-10-24";34
"23";"2016-10-25";33
"24";"2016-10-26";32
"25";"2016-10-27";30
"26";"2016-10-28";27
"27";"2016-10-29";26
"28";"2016-11-01";24
"29";"2016-11-02";22
"30";"2016-11-03";19
"31";"2016-11-04";16
"32";"2016-11-05";14
"33";"2016-11-07";12
"34";"2016-11-08";10
zu einem gewissen Zeitpunkt gibt es ein entsprechendes Wert x, dieser kann die Werte zwischen 0:100 annehmen.
Dieser Datensatz ist nicht vollständig. Mich interessiert nun die "Lebensdauer" (in Tagen) von x.
Der Format von Datum ist Date, und von Wert x num.
Um die Start- und End-Werte zu bekommen verwende ich die lineare Regression:

Code: Alles auswählen

model.lm<-lm(TestData$x~TestData$Datum)
Das model.lm liefert mir die Koeffizienten mit denen ich den Start- und Endwert berechnen kann:
Da model.lm y=Intercept+(x*beta) liefert, und ich an x interessiert bin, muss ich noch in (y-Intercept)/beta=x umformen.

Code: Alles auswählen

(Wert-(model.lm$coefficients[1]))/model.lm$coefficients[2]
Der Wert in dieser Formel soll 100 für Start und 0 für Ende annehmen.
Das Problem bei mir ist nun, dass natürlich ein numerischer Wert aus dieser Formel rauskommt.
Nun möchte ich

Code: Alles auswählen

Ende-Start
berechnen, was selbstverständlich wieder ein numerischer Wert ist.
Hier weiß ich leider nicht, wie ich diesen Wert in "Tage" umwandeln kann.

Für den Endwert bekommen ich end=69076.27 und für den Startwert start=69477.26

Nun habe ich mit

Code: Alles auswählen

as.Date(end, origin="1900-01-01") 
versucht, da ich gelesen hab, das R ab diesem Datum rechnet.
Als Ergenbis erhalte ich "2089-02-14" was überhaupt nicht hinkommen kann.
(Meine Hoffnung war, dass ich anschließend mit difftime, das Gewünschte Ergebnis erlange)

Also eventuell meine Frage ganz allgemein:
Wie geht man mit Datum-Variable in lm um.
Ich hätte erwartet, dass es ein absolut Standard Problem ist, bin aber mit Google nicht wirklich weiter gekommen.
Bin wirklich am verzweifeln.

Ich bedanke mich für eure Antworten im Voraus.
Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Re: Zeitberechnung im lm- model

Beitrag von Regression »

Ich habs raus!

Was sich noch jmd für interessiert:
Das origin war falsch gewält!
mit

Code: Alles auswählen

ende<-as.Date(ende,origin = "1970-01-01")
liefert das Gewünschte.

Beste Grüße an alle
Antworten