Voici quelques exemples de données réalisable, je voudrais tracer:a créé un cdf imbriquée qui n'atteint 1
set.seed(123)
x <- rweibull(n = 2000, shape = 2, scale = 10)
x <- round(x, digits = 0)
x <- sort(x, decreasing = FALSE)
y <- c(rep(0.1, times = 500),rep(0.25, times = 500),rep(0.4, times = 500),rep(0.85, times = 500))
z <- rbinom(n=2000, size=1, prob=y)
df1 <- data.frame(x,z)
Je veux tracer la fequency overal de z sur x.
contrairement à un cdf typique, la fonction ne doit pas atteindre 1,0, mais
sum(df1$z)/length(df1$z)
un ymax de 0,36 (721/2000).
utilisant ggplot2
nous pouvons créer une fonction de répartition de x avec la commande suivante:
library(ggplot2)
ggplot(df1, aes(x)) + stat_ecdf()
Mais je veux étendre cette parcelle pour montrer le pourcentage cumulé de z (en fonction de « x »)
Le résultat final doit aimer comme
EDIT
avec une certaine manipulation de données très pauvre, je suis en mesure de générer quelque chose de similaire à un complot cdf, mais il doit y avoir une plus belle et la méthode facile en utilisant différents packages et ggplot
mytable <- table(df1$x, df1$z)
mydf <- as.data.frame.matrix(mytable)
colnames(mydf) <- c("z_no", "z_yes")
mydf$A <- 1:length(mydf$z_no)
mydf$sum <- cumsum(mydf$z_yes)
mydf$dis <- mydf$sum/length(z)
plot(mydf$A, mydf$dis)
simplement multiplier par .35? – MichaelChirico