Como calcular a probabilidade do gráfico de densidade?

Aug 17 2020

Tenho a seguinte pergunta: É possível calcular a probabilidade de um gráfico de densidade?

Por exemplo, tenho o seguinte quadro de dados

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

e eu ploto um gráfico de densidade, com a função de ggplot:

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

Como posso calcular a probabilidade, por exemplo, de obter um valor acima de 70?

Obrigado!

Respostas

2 AllanCameron Aug 17 2020 at 22:54

Seus dados não estão incluídos na pergunta, então vamos fazer uma pequena amostra aleatória:

library(ggplot2)

set.seed(69)

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

Agora podemos criar um gráfico de densidade de acordo com seu exemplo:

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

p

Agora, podemos realmente encontrar as coordenadas xey desta linha usando a função R de base densitye extraindo seus componentes xey em um quadro de dados:

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

Podemos ver isso como um traço vermelho geom_line, é o mesmo que geom_density:

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

Agora suponha que desejamos saber a probabilidade de ter um valor de mais de um. Podemos mostrar a área que nos interessa assim:

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

Uma vez que os valores x são todos igualmente espaçados em nosso quadro de dados d, então a proporção da área vermelha da área sob a linha é uma proporção simples da soma de todos os valores y em valores x maiores que um para a grande soma de y:

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

Portanto, a probabilidade de obter um valor x de> 1 é 0,15999, ou 16%

Criado em 2020-08-17 pelo pacote reprex (v0.3.0)