einen Kreis / eine konvexe Hülle um einen bestimmten Prozentsatz von Punkten zeichnen

Ich hab

x=rnorm(100)
y=rnorm(100)
plot(x,y)
abline(h=0); abline(v=0)

Ab Punkt(0,0) und nach außen gehen Ich möchte eine Kontur / einen Kreis / eine Ellipse / eine freihändige konvexe Hülle zeichnen, die einen bestimmten Prozentsatz von Punkten einschließt.

Gibt es Funktionen oder Pakete, die dies automatisieren können? Bisher habe ich Folgendes versucht, aber ich kann nur einen Kreis mit einer Extrapolation und einer Annäherung erhalten.

Ich habe dies bisher versucht:

#calculate radius
r<- sqrt(x^2+y^2)

df<-data.frame(radius=seq(0,3,0.1), percentage=NA)

#get the percentage of points that have a smaller radius than i
k<-1
for (i in seq(0,3,0.1)){
  df$percentage[k] <- sum(r<i)/length(r)
  k<-k+1
}

#extrapolation function
prox.function<- approxfun(df$percentage, df$radius)


#get the radius of the circle that encloses about 50% of
prox.function(.50)

#draw the circle
library(plotrix)
draw.circle(0,0,prox.function(.50))

Antworten auf die Frage(4)

Ihre Antwort auf die Frage