2016-07-08 15 views
0

nehme ich die folgenden Datenrahmen von Menschen mit einer gewissen Punktzahl aus haben mit ihnen verbunden sind:Erstellen eines Hubverhalten in R

Score | hasDefaulted 
10 | 0 
13 | 0 
15 | 1 
17 | 0 
... 

I, indem man zuerst die Sortierung der Bevölkerung nach Punkten ein Hubverhalten in R machen wollen, dann% der Grundgesamtheit auf der X-Achse und% der Grundeinstellung auf der Y-Achse. Ich kann kein gutes Paket finden, das mir die Kontrolle gibt, dies zu tun. Ich habe Package Lift sowie Package Gains erforscht, aber ich kann nicht herausfinden, wie man genug Kontrolle über sie bekommt, um das zu tun, was ich oben beschrieben habe. Zum Beispiel, wenn ich mit Paket Aufzug versuchen, als

plotLift(sort(dataFrame$Score, decreasing=FALSE), dataFrame$hasDefaulted) 

bekomme ich einige seltsame Handlung:

Aber meine Wünsche gegeben, sollte die Handlung, die wie eine kumulative Dichtefunktion am Ende.

Könnte jemand mir zeigen, wie man solche Pakete richtig benutzt, oder mich zu einem Paket leiten, das das erforderliche tut? Danke im Voraus.

Antwort

0

Ich versuche immer, meinen eigenen Code zu erstellen, anstatt etwas weniger flexibles zu versuchen.

Hier ist, wie ich glaube, Sie das Problem angehen können:

# Creating the data frame 
df <- data.frame("Score"=runif(100,1,100), 
       "hasDefaulted"=round(runif(100,0,1),0)) 

# Ordering the dataset 
df <- df[order(df$Score),] 

# Creating the cumulative density 
df$cumden <- cumsum(df$hasDefaulted)/sum(df$hasDefaulted) 

# Creating the % of population 
df$perpop <- (seq(nrow(df))/nrow(df))*100 

# Ploting 
plot(df$perpop,df$cumden,type="l",xlab="% of Population",ylab="% of Default's") 

enter image description here

Ist das, was Sie wollen?

+0

Ja, perfekt. Vielen Dank. –

1

Ich denke, Sie suchen nach einem Gewinn-Chart, nicht ein Lift-Chart. Ich bemerke, dass es einige Verwirrung zwischen ihnen gibt. Weitere Informationen finden Sie unter Lift Charts.

require(ROCR) 
data(ROCR.simple) 
pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels) 

gain <- performance(pred, "tpr", "rpp") 
plot(gain, main = "Gain Chart")