Yoğunluk grafiği olasılığı nasıl hesaplanır?

Aug 17 2020

Şu sorum var: Bir yoğunluk grafiğinin olasılığını hesaplamak mümkün müdür?

Örneğin, aşağıdaki veri çerçevem ​​var

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

ve de ggplot fonksiyonu ile bir yoğunluk grafiği çiziyorum:

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

Örneğin 70'in üzerinde bir değer alma olasılığını nasıl hesaplayabilirim?

Teşekkür ederim!

Yanıtlar

2 AllanCameron Aug 17 2020 at 22:54

Verileriniz soruya dahil edilmedi, bu yüzden küçük bir rastgele örnek oluşturalım:

library(ggplot2)

set.seed(69)

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

Şimdi örneğinize göre bir yoğunluk grafiği oluşturabiliriz:

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

p

Şimdi, bu doğrunun x ve y koordinatlarını, temel R fonksiyonunu kullanarak densityve x ve y bileşenlerini bir veri çerçevesine çıkararak bulabiliriz:

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

Bunu kırmızı kesikli olarak çizdiğimizi görebiliriz, şununla geom_lineaynıdır geom_density:

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

Şimdi, birden fazla değere sahip olma olasılığını bilmek istediğimizi varsayalım. İlgilendiğimiz alanı şu şekilde gösterebiliriz:

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

Veri çerçevemizde x değerlerinin tümü eşit aralıklarla yerleştirildiğinden d, kırmızı alanın çizginin altındaki alan oranı, birden büyük x değerlerindeki tüm y değerlerinin toplamının y'nin genel toplamına basit bir oranıdır:

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

Yani> 1 olan bir x değerini alma olasılığı 0.15999 veya% 16'dır.

2020-08-17'de reprex paketi tarafından oluşturuldu (v0.3.0)