Erklärung einer Dauer aus verschieden skalierten Faktoren

Alle Verfahren der Regressionanalyse.

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon futureherbert » Mo 28. Jan 2013, 02:18

Puh :)

Neuronale Netze hab ich jetzt erstmal garnicht betrachtet, damit habe ich mich zugegebenermaßen nie wirklich beschäftigt, die werde ich wohl jetzt auch nicht noch zusätzlich angehen - ich will ja erstmal mit Regression oder Bäumen klarkommen. SVM genauso, denen bin ich vorher sogar noch nie begegnet.

Dass ich beim stumpfen Aggregieren einiges verzerre hab ich so glaube ich wohl echt übersehen. Autsch. Ja, Du hast Recht.. Dann machen die Dummys wohl auch Sinn.
Andererseits könnte ich doch auch die Fahrer-ID als kategorische Variable betrachten und einfach sehen, ob meine Bäume durch diese Dimension eine Partition vornehmen, oder?
Alle nicht bewertbaren Fahrer kriegen halt dieselbe ID x und sind darin nicht zu unterscheiden. Sollte dann ein Erklärungsgehalt drin liegen, würde der Baum nach meinem Verständnis zwar lange an den möglichen Splitmengen arbeiten - aber auch hier würde ich einfach mal sehen, ob mich das wirklich stört..

(kann man eigentlich die Komplexität der Partitionierung auf mehrere Rechnungen verteilen? Schon, oder? Müsste doch problemfrei gehen, nach einem ersten Split abzubrechen, und die Berechnung der zwei disjunkten Mengen auf zwei getrennten PCs weiterlaufen zu lassen.)

Und da ich gerade so schön am Nachbohren bin:
Die Dummys mögen ja ein Weg sein, eine nicht vollständig dokumentierte kategorielle Variable zu codieren, das seh ich - aber was würde man tun, wenn mir jetzt für die Hälfte der Daten nicht bekannt wäre, wie schwer das Paket war, für die andere Hälfte aber ein normaler metrischer Wert vorliegt?

LG und weiter Danke für die engagierte Nachhilfe :)
futureherbert
Beobachter
Beobachter
 
Beiträge: 10
Registriert: Do 24. Jan 2013, 23:10
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon bele » Di 29. Jan 2013, 16:22

futureherbert hat geschrieben:Dass ich beim stumpfen Aggregieren einiges verzerre hab ich so glaube ich wohl echt übersehen. Autsch. Ja, Du hast Recht.. Dann machen die Dummys wohl auch Sinn.

Dann hat sich der Weg ins Forum ja schon gelohnt :lol:

Andererseits könnte ich doch auch die Fahrer-ID als kategorische Variable betrachten und einfach sehen, ob meine Bäume durch diese Dimension eine Partition vornehmen, oder?

Radio Eriwan sagt: Im Prinzip ja, aber Du musst halt schauen, was Deine Software macht. Wenn Du ein Programm erwischst, das einen Baum höchstens 30 Verzweigungen tief berechnet, dann könnte das mit 100 Fahrernamen knapp werden. Das liegt aber dann an der konkreten Softwarerealisierung die Du Dir suchst.


(kann man eigentlich die Komplexität der Partitionierung auf mehrere Rechnungen verteilen? Schon, oder? Müsste doch problemfrei gehen, nach einem ersten Split abzubrechen, und die Berechnung der zwei disjunkten Mengen auf zwei getrennten PCs weiterlaufen zu lassen.)

Keine Ahnung, ob es solche Implementierungen gibt. Aber um die Rechenzeit würde ich mir erst Gedanken machen, nachdem ich es ausprobiert habe.

Die Dummys mögen ja ein Weg sein, eine nicht vollständig dokumentierte kategorielle Variable zu codieren, das seh ich - aber was würde man tun, wenn mir jetzt für die Hälfte der Daten nicht bekannt wäre, wie schwer das Paket war, für die andere Hälfte aber ein normaler metrischer Wert vorliegt?

Für eine verlässliche Antwort bräuchtest Du einen Fachmann, nicht mich. Mein wenig qualifizierter Ansatz würde wahrscheinlich zweistufig laufen: Erstmal ohne Einbeziehung des Gewichts regredieren und nachher schauen, ob man mit den Datensätzen, für die ein Gewicht bekannt ist, in einer zweiten Regression eine Feinkorrektur vornehmen kann.

LG und weiter Danke für die engagierte Nachhilfe :)

LG zurück,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5785
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

folgende User möchten sich bei bele bedanken:
futureherbert

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon futureherbert » Di 29. Jan 2013, 17:06

Ein Split eines kategoriellen Merkmals wird immer nur nach einzelnen Werten (und damit wie Du andeutest in einem tief verschachtelten Baum) geschehen, weil weitere Werte in einen einzigen Split reinzunehmen niemals einen höheren (höchstens gleichen) Informationsgewinn erreichen kann, richtig?
Das hieße dann ja, dass ich immer Splits "ist Fahrer = 'Peter'?", aber nie Splits nach "ist Fahrer enthalten in ('Peter', 'Dieter', 'Anna')?" erhielte. Ist dann ja auch nicht anders als eine Dummycodierung.. Ich schaue morgen mal, was mir R so auswirft an Bäumen.

Btw. zum Thema auswerfen. Weißt Du, ob man aus R die erhaltenen Bäume bzw Wälder exportieren kann? Also in irgendnem Markup Format, das ich woanders interpretieren kann, beispielsweise.
Sind die letztlich angewandten Abfragen auch als nicht-grafische Repräsentation einsehbar?
Nicht nur interessant, um zu sehen ob ich die Parallelisierung selber basteln könnte, sondern auch um solche Prognosen mal in irgendwelchen Programmen einbauen zu können.

LG
futureherbert
Beobachter
Beobachter
 
Beiträge: 10
Registriert: Do 24. Jan 2013, 23:10
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon bele » Di 29. Jan 2013, 18:02

Hi!

Es gibt verschiedene R packages für Deine Aufgabe und Du musst ein wenig schauen, welches Dir passt. Nehmen wir als Beispiel rpart. Führe auf Deinem Rechner aus:
Code: Alles auswählen
library(rpart)
fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis)
plot(fit)
text(fit)
fit


Hier wird das package geladen, eine Regression mit dem Nachem "fit" erstellt. Diese dann grafisch dargestellt (package party kann das schöner!) und mit der letzten Zeile dargestellt. Nach Aufruf der letzten Zeile gibt R Dir den Baum in Programmierer-tauglicher Weise aus:
Code: Alles auswählen
> fit
n= 81

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 81 17 absent (0.79012346 0.20987654) 
   2) Start>=8.5 62  6 absent (0.90322581 0.09677419) 
     4) Start>=14.5 29  0 absent (1.00000000 0.00000000) *
     5) Start< 14.5 33  6 absent (0.81818182 0.18181818) 
      10) Age< 55 12  0 absent (1.00000000 0.00000000) *
      11) Age>=55 21  6 absent (0.71428571 0.28571429) 
        22) Age>=111 14  2 absent (0.85714286 0.14285714) *
        23) Age< 111 7  3 present (0.42857143 0.57142857) *
   3) Start< 8.5 19  8 present (0.42105263 0.57894737) *

1) ist die Wurzel, von der aus eine Aufteilung in 2) und 3) erfolgt.
2) enthält die Fälle, in denen Start>8,5 ist und wird wieder unterteilt in die Knoten 4) und 5), Knoten 5) wird wieder unterteilt in die Knoten 10) und 11)...

Am besten vergleichst Du das mit der ausgegebenen Grafik. Man muss sich ein wenig einfinden, aber dann geht's.

Nicht nur interessant, um zu sehen ob ich die Parallelisierung selber basteln könnte, sondern auch um solche Prognosen mal in irgendwelchen Programmen einbauen zu können.


Das klappt so natürlich nur mit Bäumen, nicht mit z. B. randomForests. Eine andere Möglichkeit bleibt aber immer: Du kannst ein Programm schreiben, welches im Hintergrund R aufruft. R läuft im Hintergrund und Dein Programm wendet dann die Ausgabe von R an. Das kann auf Kommandozeilenebene erfolgen oder über eines der vielen Interfaces zu vielen Programmiersprachen: http://rpy.sourceforge.net/ , http://www.rforge.net/rJava/ , http://dirk.eddelbuettel.com/code/rinside.html , ...

Mit R setzt Du auf volle Kompatibiliät!

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5785
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon bele » Di 29. Jan 2013, 18:07

Hier noch ein Beispiel eines rpart-Baums der nach Namen trennt:

Code: Alles auswählen
library(rpart)

# sinnlose Daten
daten <- data.frame(name=rep(c("Frank","Fritz","Viola","Franzi"),60),
           wetter=rep(c("kalt","warm", "mittel"),80),
                    sonstwas=1:240,
                    fahrzeit=rep(c(1,1,3,8,1,3,4,9,3,1,3,9),20) )
str(daten)
head(daten)

regr <- rpart(fahrzeit ~ name+wetter+sonstwas, data=daten )
plot(regr)
text(regr)
regr


Ergebnis (bitte mit Grafik vergleichen!):
Code: Alles auswählen
node), split, n, deviance, yval
      * denotes terminal node

1) root 240 2113.33300 3.833333 
  2) name=Frank,Fritz,Viola 180  231.11110 2.222222 
    4) name=Frank,Fritz 120  106.66670 1.666667 
      8) wetter=kalt,warm 80    0.00000 1.000000 *
      9) wetter=mittel 40    0.00000 3.000000 *
    5) name=Viola 60   13.33333 3.333333 *
  3) name=Franzi 60   13.33333 8.666667 *


Ich habe aber echt keine Ahnung, wie das bei den großen Datenmengen von Dir skaliert!

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5785
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon futureherbert » Di 29. Jan 2013, 18:47

Ich schau mal was das tut, rpart und party waren jetzt sowieso eingeplant.
wollte auch noch mal probieren, was mit c5.0 rausbekommen würde - das scheint ja auch ganz gut zu gehen..

so oder so aber zu diesen "formeln" a la "y ~ x1 + x2 + x3": das sieht nur linear aus, hat im baum aber keine lineare bedeutung, oder?
futureherbert
Beobachter
Beobachter
 
Beiträge: 10
Registriert: Do 24. Jan 2013, 23:10
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon bele » Mi 30. Jan 2013, 08:38

Nein, in R wird diese Formelschreibweise für lineare und nicht-lineare Regressionen genutzt. Am besten liest Du die Tilde als "wird vorhergesagt durch".
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5785
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon futureherbert » Do 31. Jan 2013, 22:19

Ähm .. nur mal so gefragt..
Wie lange dauert das Aufspannen durch rpart oder eines party-Baumes?

Ich habe gestern nach knapp 30 Stunden den ersten Versuch mit dem Komplettmodell abgebrochen und nun rattert er seit ner Stunde an einem "Test" von gammeligen 1000 Datensätzen.
So werde ich doch nie einen nützlichen Wald erstellen können.. Und vor allem: kann ich den Fortschritt ausgeben lassen?
Oder kann ich die Berechnung beschleunigen? Indem ich binär vorhersagen lasse anstelle des genauen Zeitintervalles? Brauche ich die Surrogates?
futureherbert
Beobachter
Beobachter
 
Beiträge: 10
Registriert: Do 24. Jan 2013, 23:10
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon bele » Do 31. Jan 2013, 23:23

Sorry, das überschreitet jetzt leider meine Kenntnisse. Wieviele Prädiktoren hast Du denn im Modell? Eventuell kann man sich da ja von unten an ein erträgliches Maß herantasten? Ich drück Dir mal die Daumen, dass entweder Dein R nur abgestürzt ist (hatte ich aber bisher keine Probleme mit) oder dass die linearen Regressionen flott gehen und gut fitten.

Toi, toi, toi!
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5785
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

Re: Erklärung einer Dauer aus verschieden skalierten Faktore

Beitragvon futureherbert » Fr 1. Feb 2013, 00:22

damn. dann siehts nicht gut aus.

gibt es für die linearen Regressionen Pakete, die die Variablenauswahl vornehmen, so dass ich ganz stumpf R die Arbeit machen lassen kann? Oder ist die Erkennung von Abhängigkeiten/Irrelevanz mein Problem, dass ich durch schrittweises Anpassen lösen muss?
futureherbert
Beobachter
Beobachter
 
Beiträge: 10
Registriert: Do 24. Jan 2013, 23:10
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

VorherigeNächste

Zurück zu Regressionanalyse

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste