Стандартное отклонение бин-наблюдений


25

У меня есть набор данных наблюдений за образцами, которые хранятся в виде отсчетов в пределах диапазона. например:

min/max  count
40/44    1
45/49    2
50/54    3
55/59    4
70/74    1

Теперь найти среднюю оценку из этого довольно просто. Просто используйте среднее значение (или медиану) каждого бина диапазона в качестве наблюдения и счетчик в качестве веса и найдите средневзвешенное значение:

x¯=1i=1Nwii=1Nwixi

Для моего теста это дает мне 53,82.

Мой вопрос сейчас заключается в том, как правильно найти стандартное отклонение (или дисперсию)?

В процессе поиска я нашел несколько ответов, но я не уверен, что, если таковые имеются, действительно подходит для моего набора данных. Мне удалось найти следующую формулу как по другому вопросу здесь, так и по случайному документу NIST .

s2=i=1Nwi(xix¯)2(M1)Mi=1Nwi

Что дает стандартное отклонение 8,35 для моего теста. Тем не менее, статья в Википедии о взвешенных средних дает обе формулы:

s2=i=1Nwi(i=1Nwi)2i=1Nwi2i=1Nwi(xix¯)2

а также

s2=1(i=1Nwi)1i=1Nwi(xix¯)2

Которые дают стандартные отклонения 8,66 и 7,83, соответственно, для моего теста.

Обновить

Спасибо @whuber, который предложил заглянуть в Исправления Шеппарда, и ваши полезные комментарии, связанные с ними. К сожалению, мне трудно понять, какие ресурсы я могу найти по этому поводу (и я не могу найти хороших примеров). Напомним, однако, что я понимаю, что следующее является предвзятой оценкой дисперсии:

s2=1i=1Nwii=1Nwi(xix¯)2

Я также понимаю, что большинство стандартных поправок на смещение относятся к прямым случайным выборкам нормального распределения. Поэтому я вижу две потенциальные проблемы для меня:

  1. Это случайные сэмплы (я уверен, что именно здесь появляются поправки Шеппарда).
  2. Неизвестно, предназначены ли данные для нормального распределения (поэтому я предполагаю, что нет, что, я уверен, делает недействительными исправления Шеппарда).

Итак, мой обновленный вопрос: Каков подходящий метод для обработки смещения, налагаемого «простой» формулой взвешенного стандартного отклонения / дисперсии для ненормального распределения? В частности, в отношении связанных данных.

Примечание: я использую следующие термины:

  • s2 - взвешенная дисперсия
  • N - количество наблюдений. (т.е. количество бинов)
  • M - число ненулевых весов. (т.е. количество бинов с количеством)
  • wi являются весами (то есть счет)
  • xi - наблюдения. (т.е. мусорное ведро означает)
  • x¯ - взвешенное среднее.

5
Google "исправления Шеппарда" для стандартных решений этой проблемы.
whuber

@whuber, я боюсь, что мой google-foo подводит меня ... Я не нахожу много о том, как использовать исправления Шеппарда. Насколько я могу судить, это исправление для бинарного характера данных, и в моем тестовом примере будет использоваться как , гдеc- размер бункеров (в моем тестовом случае 4). Это верно? В любом случае, то, что я обнаружил, похоже, не помогает мне с вычислениемs2. s2c212cs2
chezy525

Второй удар в моем поиске Google дает явную формулу (уравнение 9).
whuber

@ whuber, это было пару месяцев, и я попытался прочитать документ, который вы связали пару раз. Я думаю, что я все еще что-то упускаю, но самое лучшее, что я придумал, это то, что последнее уравнение, которое я перечислил, является правильным как объективная оценка. Это правильно?
chezy525

Исправления Шеппарда не предполагают нормальности.
Glen_b

Ответы:


18

В этом ответе представлены два решения: поправки Шеппарда и оценка максимального правдоподобия. Оба близко согласны с оценкой стандартного отклонения: для первого и 7,69 для второго (при корректировке, чтобы быть сопоставимым с обычным «несмещенным» оценщиком).7.707.69


Исправления Шеппарда

«Поправки Шеппарда» - это формулы, которые корректируют моменты, вычисленные по двоичным данным (например, таким)

  • предполагается, что данные регулируются распределением, поддерживаемым на конечном интервале [a,b]

  • этот интервал делится последовательно на равные ячейки с общей шириной которая относительно мала (ни одна ячейка не содержит большую долю всех данных)h

  • распределение имеет непрерывную функцию плотности.

Они получены из формулы суммы Эйлера-Маклаурина, которая аппроксимирует интегралы в терминах линейных комбинаций значений подынтегрального выражения в равномерно распределенных точках и, следовательно, в целом применима (а не только к нормальным распределениям).

Хотя, строго говоря, нормальное распределение не поддерживается на конечном интервале, в очень близком приближении это так. По существу, вся его вероятность содержится в семи стандартных отклонениях от среднего. Поэтому поправки Шеппарда применимы к данным, предположительно поступающим из нормального распределения.

Первые два исправления Шеппарда

  1. Используйте среднее значение данных в двоичном виде для среднего значения данных (т. Е. Коррекция среднего значения не требуется).

  2. Вычитание из дисперсии Binned данных для получения (приблизительно) дисперсии данных.h2/12

Где взялось? Это равно дисперсии равномерной переменной, распределенной по интервалу длины h . Таким образом, интуитивно понятно, что поправка Шеппарда для второго момента предполагает, что биннинг данных - эффективная замена их на среднюю точку каждого бина - добавляет примерно равномерно распределенное значение в диапазоне от - h / 2 до h / 2 , откуда он надувается. дисперсия по ч 2 / 12 .h2/12hh/2h/2h2/12

Давайте сделаем расчеты. Я использую, Rчтобы проиллюстрировать их, начиная с указания количества и корзин:

counts <- c(1,2,3,4,1)
bin.lower <- c(40, 45, 50, 55, 70)
bin.upper <- c(45, 50, 55, 60, 75)

Правильная формула для использования при подсчете исходит из репликации ширины бина на суммы, заданные подсчетами; то есть, данные в двоичном виде эквивалентны

42.5, 47.5, 47.5, 52.5, 52.5, 57.5, 57.5, 57.5, 57.5, 72.5

xkkx2

bin.mid <- (bin.upper + bin.lower)/2
n <- sum(counts)
mu <- sum(bin.mid * counts) / n
sigma2 <- (sum(bin.mid^2 * counts) - n * mu^2) / (n-1)

mu1195/2254.32sigma2675/1161.367.83h=5h2/12=25/122.08675/1152/127.70


Оценки максимального правдоподобия

Fθθ(x0,x1]kFθ

logi=1k(Fθ(x1)Fθ(x0))=klog(Fθ(x1)Fθ(x0))

(см. MLE / Вероятность логнормально распределенного интервала ).

Λ(θ)θ^Λ(θ)θR

sigma <- sqrt(sigma2) # Crude starting estimate for the SD
likelihood.log <- function(theta, counts, bin.lower, bin.upper) {
  mu <- theta[1]; sigma <- theta[2]
  -sum(sapply(1:length(counts), function(i) {
    counts[i] * 
      log(pnorm(bin.upper[i], mu, sigma) - pnorm(bin.lower[i], mu, sigma))
  }))
}
coefficients <- optim(c(mu, sigma), function(theta) 
  likelihood.log(theta, counts, bin.lower, bin.upper))$par

(μ^,σ^)=(54.32,7.33)

σn/(n1)σn/(n1)σ^=11/10×7.33=7.697.70

Проверка предположений

Чтобы визуализировать эти результаты, мы можем построить подгоночную нормальную плотность по гистограмме:

hist(unlist(mapply(function(x,y) rep(x,y), bin.mid, counts)),
     breaks = breaks, xlab="Values", main="Data and Normal Fit")
curve(dnorm(x, coefficients[1], coefficients[2]), 
      from=min(bin.lower), to=max(bin.upper), 
      add=TRUE, col="Blue", lwd=2)

фигура

11

χ2χ2R

breaks <- sort(unique(c(bin.lower, bin.upper)))
fit <- mapply(function(l, u) exp(-likelihood.log(coefficients, 1, l, u)),
              c(-Inf, breaks), c(breaks, Inf))
observed <- sapply(breaks[-length(breaks)], function(x) sum((counts)[bin.lower <= x])) -
  sapply(breaks[-1], function(x) sum((counts)[bin.upper < x]))
chisq.test(c(0, observed, 0), p=fit, simulate.p.value=TRUE)

Выход

Chi-squared test for given probabilities with simulated p-value (based on 2000 replicates)

data:  c(0, observed, 0) 
X-squared = 7.9581, df = NA, p-value = 0.2449

0.245

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.