如何计算R中的一些基本统计量,仅使用密度和支持度?

如何计算R中的一些基本统计量,仅使用密度和支持度?,r,statistics,probability,distribution,R,Statistics,Probability,Distribution,我没有样本,我想计算一个分布的方差,均值,中位数和模式,我只有一个带密度的向量和一个带支持度的向量。有没有一种简单的方法可以用这些信息计算R中的统计数据 假设我只有以下信息: Support Density sum(Density) == 1 #TRUE length(Support)==length(Density)# TRUE 如果你不需要一个数学解,而一个经验解是可以的,你可以通过抽样得到一个非常好的近似值 让我们生成一些数据: set.seed(6854684) x = rnorm(5

我没有样本,我想计算一个分布的方差,均值,中位数和模式,我只有一个带密度的向量和一个带支持度的向量。有没有一种简单的方法可以用这些信息计算R中的统计数据

假设我只有以下信息:

Support
Density
sum(Density) == 1 #TRUE
length(Support)==length(Density)# TRUE

如果你不需要一个数学解,而一个经验解是可以的,你可以通过抽样得到一个非常好的近似值

让我们生成一些数据:

set.seed(6854684)
x = rnorm(50,mean=10,sd=1)
x_support = density(x)$x
x_density = density(x)$y
# see our example:
plot(x_support, x_density )
# the real mean of x
mean(x)
现在,为了“逆转”该过程,我们从该密度分布生成一个大样本:

x_sampled = sample(x = x_support, 1000000, replace = T, prob = x_density)
# get the statistics
mean(x_sampled)
median(x_sampled)
var(x_sampled)
etc...

如果你不需要一个数学解,而一个经验解是可以的,你可以通过抽样得到一个非常好的近似值

让我们生成一些数据:

set.seed(6854684)
x = rnorm(50,mean=10,sd=1)
x_support = density(x)$x
x_density = density(x)$y
# see our example:
plot(x_support, x_density )
# the real mean of x
mean(x)
现在,为了“逆转”该过程,我们从该密度分布生成一个大样本:

x_sampled = sample(x = x_support, 1000000, replace = T, prob = x_density)
# get the statistics
mean(x_sampled)
median(x_sampled)
var(x_sampled)
etc...

你必须做加权求和

F.e.,从@Johann示例开始

set.seed(312345)
x = rnorm(1000, mean=10, sd=1)
x_support = density(x)$x
x_density = density(x)$y

plot(x_support, x_density)
mean(x)
印刷品

[1] 10.00558
我相信你在找什么

m = weighted.mean(x_support, x_density)
将平均值计算为值的加权平均值,生成输出

10.0055796130192
这里有weighted.sd、weighted.sum函数,这些函数应该可以帮助您处理您要查找的其他数量

密谋


你必须做加权求和

F.e.,从@Johann示例开始

set.seed(312345)
x = rnorm(1000, mean=10, sd=1)
x_support = density(x)$x
x_density = density(x)$y

plot(x_support, x_density)
mean(x)
印刷品

[1] 10.00558
我相信你在找什么

m = weighted.mean(x_support, x_density)
将平均值计算为值的加权平均值,生成输出

10.0055796130192
这里有weighted.sd、weighted.sum函数,这些函数应该可以帮助您处理您要查找的其他数量

密谋


你的支持向量是密度的x轴吗?换句话说,如果你画出x=支撑,y=密度,你就得到了正确比例的实际分布?是的,确实如此!你的支持向量是密度的x轴吗?换句话说,如果你画出x=支撑,y=密度,你就得到了正确比例的实际分布?是的,确实如此!这里的问题是,我需要所有东西的精确值。只需将1000000增加到一个更大的数字,直到获得所需的精度!开个玩笑,我不知道如何解析解。我怀疑,除非分布是离散的,否则精确值是不可能的。这里的问题是,我需要所有东西的精确值。只需将1000000增加到一个更大的数字,直到达到所需的精度!只是开玩笑,我不知道如何解析地解决它。我怀疑,除非分布是离散的,否则精确的值是不可能的。