Чи можу я відновити нормальний розподіл за розміром вибірки, значеннями min та max? Я можу використовувати середню точку для проксі середнього


14

Я знаю, що це може бути трохи моторошно, статистично, але це моя проблема.

У мене дуже багато даних про діапазон, тобто мінімальний, максимальний і розмір вибірки змінної. Для деяких із цих даних я також маю на увазі, але не багато. Я хочу порівняти ці діапазони один з одним, щоб кількісно визначити мінливість кожного діапазону, а також порівняти засоби. У мене є вагомі підстави припустити, що розподіл симетричний навколо середнього значення, і що дані матимуть розподіл Гаусса. З цієї причини я думаю, що можу виправдати, використовуючи середину точки розподілу як проксі для середнього, коли вона відсутня.

Що я хочу зробити, це реконструювати розподіл для кожного діапазону, а потім використовувати його для надання стандартного відхилення або стандартної помилки для цього розподілу. Єдина інформація, яку я маю, - це макс та хв, що спостерігаються у вибірці, і середня точка як проксі для середнього.

Таким чином я сподіваюся, що зможу обчислити зважені засоби для кожної групи, а також розробити коефіцієнт варіації для кожної групи, виходячи з даних про діапазон і моїх припущень (симетричного та нормального розподілу).

Я планую використовувати R для цього, тому будь-яка допомога з кодом буде також вдячна.


2
Мені було цікаво, чому ви кажете, що у вас є дані для мінімальних та максимальних & максимальних значень; потім пізніше, що у вас є інформація лише про очікуваний мінімум та максимум. Що це - спостерігається чи очікується?
Scortchi

Вибачте, це моя помилка. Максимальні та мінімальні дані спостерігаються (вимірюються з об'єктів реального життя). Я внесла зміни до посади.
green_thinlake

Відповіді:


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 ) дає функцію щільності ймовірності спільнихΦ()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σ

Це не виглядає дуже слухняною , але це легко бачити , що це максимально незалежно від значення , встановивши ц = ц = х ( п ) + х ( 1 )σ , тобто середина - перший додаток максимізується, коли аргумент одного CDF є негативним аргументом іншого; другий і третій терміни представляють спільну ймовірність двох незалежних нормальних змінних.μ=μ^=x(n)+x(1)2

Підставляючи М в лог-правдоподібності і писати г = х ( п ) - х ( 1 ) дає л ( σ ; х ( 1 ) , х ( п ) , μ ) = ( п - 2 ) журнал [ 1 - 2 Φ ( - rμ^r=x(n)x(1)

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

Цей вислів має бути розгорнуто чисельно (наприклад, optimizeз R в statпакеті) , щоб знайти σ . (Виявляється, що сг = К ( п ) г , де до постійна , що залежить тільки від п -Можливо хто - то більш математично спритним , ніж я міг би показати , чому.)σ^σ^=k(n)rkn

Оцінки не є корисними без супутньої міри точності. Спостережувана інформація Фішера може бути оцінена чисельно (наприклад, з пакета hessianR numDeriv) та використана для обчислення приблизних стандартних помилок:

я(σ)=-2(σ; μ )

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

σ


1
2log(r)σ/rnσ/rnk(n)σ^=k(n)r , як ви претендувати. Іншими словами, відповідна кількість, з якою потрібно працювати, - це відношення стандартного відхилення до (спостережуваного) діапазону або однаково добре його зворотного - що тісно пов'язане зВивчений діапазон .
whuber

@whuber: Дякую! Здається очевидним із заднім оглядом. Я включу це у відповідь.
Scortchi

1

μσR=x(n)x(1)99.7

μ+3σx(n)

μ3σx(1)

Віднімаючи друге від першого, отримуємо

6σx(n)x(1)=R
σ^=16(x¯(n)x¯(1))
where the bar denotes averages. This is when you assume that all sub-samples come from the same distribution (you wrote about having expected ranges). If each sample is a different normal, with different mean and variance, then you can use the formula for each sample, but the uncertainty / possible inaccuracy in the estimated value of the standard deviation will be much larger.

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


3
That's neither a close approximation for small n nor an asymptotic result for large n.
Scortchi - Reinstate Monica

1
@Stortchi Well, I didn't say that it is a good estimate -but I believe that it is always good to have easily implemented solutions, even very rough, in order to get a quantitative sense of the issue at hand, alongside the more sophisticated and efficient approaches like for example the one outlined in the other answer to this question.
Alecos Papadopoulos

I wouldn't carp at "the expectation of the sample range turns out to be about 6 times the standard deviation for values of n from 200 to 1000". But am I missing something subtle in your derivation, or wouldn't it work just as well to justify dividing the range by any number?
Scortchi - Reinstate Monica

@Scortchi Well, the spirit of the approach is "if we expect almost all realizations to fall within 6 sigmas, then it is reasonable to expect that the extreme realizations will be near the border" -that's all there is to it, really. Perhaps I am too used to operate under extremely incomplete information, and obliged to say something quantitative about it... :)
Alecos Papadopoulos

4
I could reply that even more observations would fall within 10σ of the mean, giving a better estimate σ^=R10. I shan't because it's nonsense. Any number over 1.13 will be a rough estimate for some value of n.
Scortchi - Reinstate Monica

1

It is straightforward to get the distribution function of the maximum of the normal distribution (see "P.max.norm" in code). From it (with some calculus) you can get the quantile function (see "Q.max.norm").

Using "Q.max.norm" and "Q.min.norm" you can get the median of the range that is related with N. Using the idea presented by Alecos Papadopoulos (in previous answer) you can calculate sd.

Try this:

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
Continuing this approach, E(R)=σ1(1Φ(x))nΦ(x)ndx=σd2(n), where R is the range & Φ() the standard normal cumulative distribution function. You can find tabulated values of d2 for small n in the statistical process control literature, numerically evaluate the integral, or simulate for your n.
Scortchi - Reinstate Monica
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.