我可以根据样本大小以及最小值和最大值重建正态分布吗?我可以使用中点来代表均值


14

从统计上讲,我知道这可能有些困难,但这是我的问题。

我有很多范围数据,即变量的最小,最大和样本大小。对于其中一些数据,我也有一个平均值,但并不多。我想将这些范围相互比较,以量化每个范围的变异性,并比较均值。我有充分的理由假设分布在均值周围是对称的,并且数据将具有高斯分布。因此,我想我可以证明在没有均值时使用分布的中点作为均值的代理。

我想做的是为每个范围重建一个分布,然后使用该分布为该分布提供标准偏差或标准误差。我仅有的信息是从样本中观察到的最大值和最小值,以及将中点作为平均值的代表。

这样,我希望能够基于我拥有的范围数据和我的假设(对称分布和正态分布)来计算每组的加权均值,并计算出每组的变异系数。

我打算使用R来做到这一点,因此任何代码帮助也将不胜感激。


2
我想知道为什么您说您有最小,最大和最大值的数据;然后,您仅获得有关预期的最小和最大信息。它是-观察到的还是预期的?
Scortchi-恢复莫妮卡

抱歉,这是我的错误。观察到最大和最小数据(从现实生活中的对象测量)。我已经修改了该职位。
green_thinlake

Answers:


11

对于最小的联合累积分布函数x(1)&最大x(n)为样品n从高斯分布均值μ和标准偏差σ

F(x(1),x(n);μ,σ)=Pr(X(1)<x(1),X(n)<x(n))=Pr(X(n)<x(n))Pr(X(1)>x(1),X(n)<x(n)=Φ(x(n)μσ)n[Φ(x(n)μσ)Φ(x(1)μσ)]n

其中Φ()是标准的高斯CDF。关于x(1)微分x(n)给出联合概率密度函数。

f(x(1),x(n);μ,σ)=n(n1)[Φ(x(n)μσ)Φ(x(1)μσ)]n2ϕ(x(n)μσ)ϕ(x(1)μσ)1个σ2

其中是标准的高斯PDF。取不包含参数的对数和丢弃项可提供对数似然函数ϕ

(μ,σ;x(1),x(n))=(n2)log[Φ(x(n)μσ)Φ(x(1)μσ)]+logϕ(x(n)μσ)+logϕ(x(1)μσ)2logσ

这看起来并不很听话的,但它很容易看到它最大化的任何值通过设定μ = μ = X ñ + X 1 σ,即中点,当一个CDF的自变量为另一个的自变量的负数时,第一项最大化。第二和第三项代表两个独立正态变量的联合可能性。μ=μ^=x(n)+x(1)2

μ到对数似然&写- [R = X Ñ - X 1 给出 σ ; X 1 X Ñ μ= ñ - 2 日志[ 1 - 2 Φ rμ^r=x(n)x(1)

(σ;x(1),x(n),μ^)=(n2)log[12Φ(r2σ)]r24σ22logσ

此表达必须(例如,与数字最大化optimize来自R的stat包),以找到σ。(原来,σ = ķσ^,其中 ķ只在根据一个恒定 Ñ -perhaps有人数学上更熟练比我能显示为什么。)σ^=k(n)rkn

没有附带的精确度,估算就没有用。观察到的Fisher信息可以通过数字方式进行评估(例如,hessian使用R's numDeriv包装),并用于计算近似标准误差:

σ=-2σ; μ

I(μ)=2(μ;σ^)(μ)2|μ=μ^
I(σ)=2(σ;μ^)(σ)2|σ=σ^

以 偏差(MLE是否一致),方差和均方误差来比较的似然度和矩量法估计值,将是很有意思的 。除了最小和最大以外,对于那些已知样本均值的群体也存在估计问题。σ


1
+1。将常数到对数似然不会改变其最大值的位置,而是将其转换为σ / rn的函数,从而将使其最大化的σ / r的值是某个函数n k n 。等同地σ = ķ2log(r)σ/rnσ/rnk(n)如权利要求你。换句话说,要使用的相关量是标准偏差与(观察到的)范围的比率,或者是其倒数,也与倒数密切相关。σ^=k(n)[R学生化范围

@whuber:谢谢!事后看来似乎很明显。我将其纳入答案。
Scortchi-恢复莫妮卡

1

μσ[R=Xñ-X1个99.7

μ+3σXñ

μ-3σX1个

从第一个减去第二个,我们得到

6σXñ-X1个=[R
σ^=1个6X¯ñ-X¯1个
条形表示平均值。在这种情况下,您假设所有子样本都来自同一分布(您写过具有预期范围)。如果每个样本是具有不同均值和方差的不同法线,则可以对每个样本使用公式,但是标准偏差的估计值中的不确定性/可能不准确会更大。

Having a value for the mean and for the standard deviation completely characterizes the normal distribution.


3
这既不是小数字的近似值 ñ 也不大的渐近结果 ñ
Scortchi-恢复莫妮卡

1
@Stortchi好吧,我并不是说这是一个很好的估计-但是我相信,易于实施的解决方案(甚至是非常粗糙的解决方案)总是很好,以便对手头的问题有一个定量的认识。复杂而有效的方法,例如该问题的另一答案中概述的方法。
Alecos Papadopoulos

我不会说:“样本范围的预期结果大约是标准偏差的6倍。 ñ 从200到1000“。但是我是否在您的推导中缺少一些细微之处,或者它不能很好地证明将范围除以任何数字是合理的?
Scortchi-恢复莫妮卡

@Scortchi好吧,这种方法的精神是“如果我们期望几乎所有实现都落在6 sigma之内,那么就可以预期极端实现将接近边界” –真的,这就是全部。也许我已经习惯于在极其不完整的信息下工作,因此不得不对它进行定量的描述... :)
Alecos Papadopoulos 2014年

4
我可以回答,甚至会有更多的观察结果 10σ 的平均值,可以给出更好的估计 σ^=[R10。我不是因为这是胡扯。任意数量1.13将是对的某些值的粗略估计ñ
Scortchi-恢复莫妮卡

1

获得正态分布最大值的分布函数很简单(请参见代码中的“ P.max.norm”)。从中(借助一些演算),您可以获得分位数功能(请参见“ Q.max.norm”)。

使用“ Q.max.norm”和“ Q.min.norm”可以获得与N相关的范围的中位数。使用Alecos Papadopoulos提出的想法(在先前的答案中),您可以计算sd。

尝试这个:

N = 100000    # the size of the sample

# Probability function given q and N
P.max.norm <- function(q, N=1, mean=0, sd=1){
    pnorm(q,mean,sd)^N
} 
# Quantile functions given p and N
Q.max.norm <- function(p, N=1, mean=0, sd=1){
    qnorm(p^(1/N),mean,sd)
} 
Q.min.norm <- function(p, N=1, mean=0, sd=1){
    mean-(Q.max.norm(p, N=N, mean=mean, sd=sd)-mean)
} 

### lets test it (takes some time)
Q.max.norm(0.5, N=N)  # The median on the maximum
Q.min.norm(0.5, N=N)  # The median on the minimum

iter = 100
median(replicate(iter, max(rnorm(N))))
median(replicate(iter, min(rnorm(N))))
# it is quite OK

### Lets try to get estimations
true_mean = -3
true_sd = 2
N = 100000

x = rnorm(N, true_mean, true_sd)  # simulation
x.vec = range(x)                  # observations

# estimation
est_mean = mean(x.vec)
est_sd = diff(x.vec)/(Q.max.norm(0.5, N=N)-Q.min.norm(0.5, N=N))

c(true_mean, true_sd)
c(est_mean, est_sd)

# Quite good, but only for large N
# -3  2
# -3.252606  1.981593

2
继续这种方法, Ë[R=σ-1个-1个-ΦXñ-ΦXñdX=σd2ñ,在哪里 [R 是范围& Φ标准正态累积分布函数。您可以找到的表格值d2ñ 在统计过程控制文献中,对积分进行数值评估,或为您的模拟 ñ
Scortchi-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.