2016-04-20 7 views
0

Ich benutze Partykit: ctree, um meine Datenmenge, die eine Reihe von etwa 15.000 Strand Umfragen ist, zu untersuchen, die Anzahl der Trümmer von 50 gefunden verschiedene Kategorien. Es gibt viele Nullen in den Daten und eine große Verteilung der gesamten Trümmermengen. Ich habe auch eine Reihe von unabhängigen Variablen, darunter einige Faktoren, einige Zähldaten und einige kontinuierliche Daten.Extrahieren von Informationen über Terminal-Knoten in Partykit: ctree mit einer großen Anzahl von multivariaten Antworten

Hier ist ein sehr kleiner Beispieldatensatz:

Counts<- as.data.frame(matrix (rpois(100,1), ncol=5)) 
colnames(Counts)<-c("Glass", "HardPlastic", "SoftPlastic", "PlasticBag", "Fragments") 
State<-rep(c("CA","OR","WA"), each=6) 
Counts$State<-c(State,"CA","OR") 
County<-rep((1:9), each=2) 
Counts$County<-c(County, 1,4) 
Counts$Distance<-c(10, 15, 13, 19, 18, 23, 38, 40, 49, 44, 47, 45, 52, 53, 55, 59, 51, 53, 14, 33) 
Year<-rep(c("2010","2011","2012"), times=7) 
Counts$Year<-Year[1:20] 

ich den folgenden Code verwendet habe, meine Daten zu partitionieren:

M.2<-ctree(Glass + HardPlastic + SoftPlastic + PlasticBag + Fragments ~ 
     as.factor (State) + as.factor (County) + Distance + as.factor (Year), data=Counts) 
plot(M.2, terminal_panel = node_barplot, cex = 0.5) 

Dies kommt mit einem schönen Diagramm, aber wie kann ich extrahieren die Mitgliedschaft von jedem der Endknoten? Ich kann es in der Grafik sehen, wenn es nur ein paar Elemente gibt, aber sobald die Anzahl der möglichen Kategorien auf 50 steigt, wird es viel schwieriger, es grafisch zu betrachten. Ich würde gerne die Information sehen, die in den Knoten enthalten ist; insbesondere sind die relativen Wahrscheinlichkeiten jeder einzelnen Kategorie in jedem Endknoten enthalten.

Ich weiß, wenn dies eine BinaryTree-Klasse wäre, könnte ich das Knoten Argument verwenden, aber wenn ich die Klasse abfragen (M.2) sagt es mir, dass es von der Constaparty-Klasse ist, und ich konnte nicht Finde heraus, wie man Knoteninformationen von dieser Klasse erhält.

Ich bin auch auf ein sekundäres Problem gestoßen, das ist, dass, wenn ich den ctree auf meinem Beispieldatensatz laufe, es R jedes Mal abstürzt! Es funktioniert gut mit meinem tatsächlichen Datensatz, aber ich kann nicht herausfinden, was mit dem Beispielsatz falsch ist.

EDIT:

Node15:
Hartplastik 30
Glas 5
weiche Kunststoff 23
Plastiktasche 6
Fragmente 12

+0

Bis @Achim dies aussortiert, könnten Sie vielleicht Ihre gewünschte Ausgabe zeigen? Ich habe über die Jahre viele ähnliche Funktionen geschrieben, die mir helfen, die Sachen zu ergänzen, die ich aus dem 'Party' Paket vermisse. –

+0

Hallo @David, ich habe eine grundlegende mögliche Ausgabe hinzugefügt ... nicht sehr hübsch formatiert, aber Ich denke, es bringt den Punkt über? – Alexandra

Antwort

1

Der gewünschte Ausgang etwas entlang der Linien von wäre Ich habe einfach eine E-Mail mit dem Paketbetreuer (Torsten Hothorn) und dem Hauptautor von ctree() geschickt, auf die solche Anfragen am besten gerichtet werden sollten. (Er ist derzeit nicht an SO beteiligt.) Offensichtlich ist dies ein Fehler in der partykit Version von ctree() und er arbeitet daran, dies zu lösen. Zur Zeit ist es am besten, die alte Version party dafür zu verwenden - und hoffentlich wird bald eine feste partykit Version verfügbar sein.

+0

Vielen Dank, ich werde versuchen, die Party-Version! Ich habe versucht, Ihre Antwort zu verbessern, aber noch nicht genügend Reputationspunkte. – Alexandra

Verwandte Themen