घनत्व प्लॉट की संभाव्यता की गणना कैसे करें?

Aug 17 2020

मेरे पास निम्नलिखित प्रश्न हैं: क्या घनत्व घनत्व की संभावना की गणना करना संभव है?

उदाहरण के लिए, मेरे पास डेटा फ्रेम है

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

और मैं एक घनत्व की साजिश रचता हूं, डे ggplot फ़ंक्शन के साथ:

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

मैं उदाहरण के लिए 70 से ऊपर मूल्य प्राप्त करने की संभावना की गणना कैसे कर सकता हूं?

धन्यवाद!

जवाब

2 AllanCameron Aug 17 2020 at 22:54

आपका डेटा प्रश्न में शामिल नहीं है, तो चलो एक छोटा सा यादृच्छिक नमूना बनाते हैं:

library(ggplot2)

set.seed(69)

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

अब हम आपके उदाहरण के अनुसार घनत्व प्लॉट बना सकते हैं:

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

p

अब, हम वास्तव में बेस आर फ़ंक्शन का उपयोग करके इस लाइन के x और y निर्देशांक पा सकते हैं densityऔर इसके x और y घटकों को एक डेटा उपकरण में निकाल सकते हैं:

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

हम इस साजिश रचने देख सकते हैं के रूप में एक लाल धराशायी geom_lineयह रूप में ही है geom_density:

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

अब मान लीजिए कि हम एक से अधिक मूल्य होने की संभावना जानना चाहते हैं। हम इस तरह से रुचि रखने वाले क्षेत्र को दिखा सकते हैं:

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

चूंकि x मान सभी समान रूप से हमारे डेटा फ़्रेम में हैं d, तो लाइन के तहत क्षेत्र के लाल क्षेत्र का अनुपात सभी y मानों के योग का एक सरल अनुपात होता है, जो x मानों की तुलना में एक से अधिक होता है।

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

तो> 1 का x मान प्राप्त करने की संभावना 0.15999, या 16% है

2020-08-17 को रेप्रेक्स पैकेज (v0.3.0) द्वारा बनाया गया