2016-11-21 7 views
0

Ich versuche, Regressionsmodelle zu bewerten, die nicht die gesamte Testmenge verwenden, sondern nur X% der besten Vorhersagen, wo das Ziel der Regression sein wird. Gibt es ein Paket in R, das dies ermöglicht?Spearman Korrelation an der Spitze X% der sortierten Daten

So zum Beispiel, wenn ich die folgende

x<-c(1,2,3,4,5,8,7,9,12,11,14,15,16,17,20,25,40) 
y<-c(0,1,2,4,5,6,8,7,10,12,15,14,13,10,18,22,30) 
df<-cbind(x,y) 
model<-lm(y~x) 
summary(model) 

Multiple R-Quadrat: 0,9432, Adjusted R-Quadrat: 0,9395

plot(y~x,df) 
abline(model) 

Ich möchte einen Parameter haben „X "(30%) berechnet nicht den gesamten Datensatz, sondern nur die besten 30% mit Spearmans Rangkorrelationsindex. In diesem Fall sollte nur berechnet werden x=c(15,16,17,20,25,40). Dieser "partielle" Korrelationsindex könnte bei der weiteren Charakterisierung von Modellen hilfreich sein, die ein schlechteres R-Quadrat aufweisen könnten, aber in einem präzisen Bereich der Domäne viel besser funktionieren (z. B. Top X% von x). Danke für jeden Zeiger.

+0

nicht ganz klar, was Sie wollen: etwas wie 'lm (y ~ x, Daten = df, Teilmenge = x> Quantil (x, 0,7))'? –

+0

@Ben. Danke. Ich möchte das Modell nicht mit weniger Daten verändern, sondern einfach das Modell auf einer Auswahlmenge "messen". –

Antwort

1

Vergleichen vorhergesagten und tatsächlichen Werte nur für den relevanten Teil des Datensatzes, das heißt

y.pred <- predict(model) 
y.err <- y-y.pred 
idx.part <- x > quantile(0.7) 

# R squared 
r.squared <- 1- var(y.err)/var(y) 
r.squared.part <- 1- var(y.err[idx.part])/var(y[idx.part]) 

Nicht sicher, wie richtig R einzustellen, wenn auf einer Teilmenge berechnet Quadrat. Für den gesamten Datensatz wird die adjusted R squared is computed durch Multiplikation des Bruchteilterms mit (n-1)/(n-p-1), wobei n die Stichprobengröße und p die Anzahl der Prädiktoren ist (in diesem Fall 1).

+0

danke für schnelle antwort! Ich vermutete, dass sich in einem Paket nichts befand. Und ich bin mir auch nicht sicher, wie man das korrigierte R-Quadrat erzeugen kann. Allerdings denke ich, dass es Situationen gibt, in denen Regressionsmodelle, die auf Top-x% -Prognosen optimiert sind (d. H. Die Maximierung der Spearman-Korrelation bei den höchsten oder niedrigsten X% -Daten), gegenüber "klassischen" Modellen, die für den gesamten Satz optimiert wurden, vorzuziehen sind. –