Comment calculer la probabilité du graphique de densité?

Aug 17 2020

J'ai la question suivante: est-il possible de calculer une probabilité d'un graphique de densité?

Donc, par exemple, j'ai la trame de données suivante

 test<- data.frame(
  Gruppe = rep(c("Aktien","Aktien"), 
               times=c(136, 37)),
  Zufriedenheit = c(f_keineErf, f_Erf))

et je trace un graphique de densité, avec la fonction de ggplot:

 ggplot(test, aes(x=Zufriedenheit)) +geom_density()

Comment puis-je calculer la probabilité par exemple d'obtenir une valeur supérieure à 70?

Je vous remercie!

Réponses

2 AllanCameron Aug 17 2020 at 22:54

Vos données ne sont pas incluses dans la question, alors constituons un petit échantillon aléatoire:

library(ggplot2)

set.seed(69)

df <- data.frame(x = rnorm(10))

Maintenant, nous pouvons créer un graphique de densité selon votre exemple:

p <- ggplot(df, aes(x)) + 
  geom_density() +
  xlim(c(-5, 5))

p

Maintenant, nous pouvons en fait trouver les coordonnées x et y de cette ligne en utilisant la fonction de base R densityet en extrayant ses composantes x et y dans un bloc de données:

dens <- density(df$x) d <- data.frame(x = dens$x, y = dens$y)

head(d)
#>           x            y
#> 1 -3.157056 0.0009453767
#> 2 -3.144949 0.0010145927
#> 3 -3.132841 0.0010870523
#> 4 -3.120733 0.0011665920
#> 5 -3.108625 0.0012488375
#> 6 -3.096517 0.0013382316

Nous pouvons voir le tracé comme un pointillé rouge, geom_linec'est la même chose que geom_density:

p + geom_line(data = d, aes(x, y), col = "red", linetype = 2, size = 2) 

Supposons maintenant que nous voulions connaître la probabilité d'avoir une valeur supérieure à un. Nous pouvons montrer la zone qui nous intéresse comme ceci:

p + geom_area(data = d[d$x >= 1,], aes(x, y), fill = "red")

Étant donné que les valeurs x sont toutes également espacées dans notre bloc de données d, la proportion de la zone rouge de la zone sous la ligne est un simple rapport de la somme de toutes les valeurs y à des valeurs x supérieures à un à la somme totale de y:

sum(d$y[d$x > 1])/sum(d$y)
#> [1] 0.1599931

Ainsi, la probabilité d'obtenir une valeur x de> 1 est de 0,15999, soit 16%

Créé le 2020-08-17 par le package reprex (v0.3.0)