如何计算密度图的概率?
How calculate probabillity of density plot?
我有以下问题:是否可以计算密度图的概率?
例如,我有以下数据框
test<- data.frame(
Gruppe = rep(c("Aktien","Aktien"),
times=c(136, 37)),
Zufriedenheit = c(f_keineErf, f_Erf))
我用 de ggplot 函数绘制密度图:
ggplot(test, aes(x=Zufriedenheit)) +geom_density()
我如何计算获得 70 以上值的概率?
谢谢!
你的数据没有包含在问题中,所以让我们随机抽取一个小样本:
library(ggplot2)
set.seed(69)
df <- data.frame(x = rnorm(10))
现在我们可以根据您的示例创建密度图:
p <- ggplot(df, aes(x)) +
geom_density() +
xlim(c(-5, 5))
p
现在,我们实际上可以使用基本 R 函数 density
并将其 x 和 y 分量提取到数据框中来找到这条线的 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)
现在假设我们想知道大于 1 的概率。我们可以这样显示我们感兴趣的区域:
p + geom_area(data = d[d$x >= 1,], aes(x, y), fill = "red")
由于x值在我们的数据框中都是等间距的d
,所以红色区域占线下面积的比例是x值大于的所有y值之和的简单比值一到 y 的总和:
sum(d$y[d$x > 1])/sum(d$y)
#> [1] 0.1599931
所以 x 值 > 1 的概率是 0.15999,即 16%
由 reprex package (v0.3.0)
于 2020-08-17 创建
我有以下问题:是否可以计算密度图的概率?
例如,我有以下数据框
test<- data.frame(
Gruppe = rep(c("Aktien","Aktien"),
times=c(136, 37)),
Zufriedenheit = c(f_keineErf, f_Erf))
我用 de ggplot 函数绘制密度图:
ggplot(test, aes(x=Zufriedenheit)) +geom_density()
我如何计算获得 70 以上值的概率?
谢谢!
你的数据没有包含在问题中,所以让我们随机抽取一个小样本:
library(ggplot2)
set.seed(69)
df <- data.frame(x = rnorm(10))
现在我们可以根据您的示例创建密度图:
p <- ggplot(df, aes(x)) +
geom_density() +
xlim(c(-5, 5))
p
现在,我们实际上可以使用基本 R 函数 density
并将其 x 和 y 分量提取到数据框中来找到这条线的 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)
现在假设我们想知道大于 1 的概率。我们可以这样显示我们感兴趣的区域:
p + geom_area(data = d[d$x >= 1,], aes(x, y), fill = "red")
由于x值在我们的数据框中都是等间距的d
,所以红色区域占线下面积的比例是x值大于的所有y值之和的简单比值一到 y 的总和:
sum(d$y[d$x > 1])/sum(d$y)
#> [1] 0.1599931
所以 x 值 > 1 的概率是 0.15999,即 16%
由 reprex package (v0.3.0)
于 2020-08-17 创建