Как я могу рассчитать доверительный интервал среднего значения в ненормально распределенной выборке?

19

Как я могу рассчитать доверительный интервал среднего значения в ненормально распределенной выборке?

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

Если бы кто-то мог дать образец в R, это было бы очень ценно.

fmark
источник
3
Центральная предельная теорема подразумевает, что предельное распределение среднего значения выборки является нормальным независимо от распределения исходных данных (при некоторых условиях). Во многих случаях размер выборки достаточно велик, чтобы нормальное приближение было достаточно точным, но точность зависит от родительского распределения - это может помочь, если, например, вы разместили гистограмму исходных данных. N>400
Макро

Ответы:

18

Прежде всего, я бы проверил, является ли среднее значение подходящим показателем для поставленной задачи. Если вы ищете «типичное / или центральное значение» перекошенного распределения, среднее может указывать на довольно нерепрезентативное значение. Рассмотрим лог-нормальное распределение:

x <- rlnorm(1000)
plot(density(x), xlim=c(0, 10))
abline(v=mean(x), col="red")
abline(v=mean(x, tr=.20), col="darkgreen")
abline(v=median(x), col="blue")

Среднее (красное), усеченное на 20% среднее (зеленое) и медианное (синее) для логарифмически нормального распределения

Среднее значение (красная линия) довольно далеко от основной массы данных. Усеченное на 20% среднее (зеленое) и медианное (синее) ближе к «типичному» значению.

Результаты зависят от типа вашего «ненормального» распределения (была бы полезна гистограмма ваших фактических данных). Если он не перекошен, но имеет тяжелые хвосты, ваши CI будут очень широкими.

В любом случае, я думаю, что начальная загрузка действительно является хорошим подходом, поскольку она также может дать вам асимметричные CI. RПакет simplebootявляется хорошим началом:

library(simpleboot)
# 20% trimmed mean bootstrap
b1 <- one.boot(x, mean, R=2000, tr=.2)
boot.ci(b1, type=c("perc", "bca"))

... дает вам следующий результат:

# The bootstrap trimmed mean:
> b1$t0
[1] 1.144648

BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 2000 bootstrap replicates
Intervals : 
Level     Percentile            BCa          
95%   ( 1.062,  1.228 )   ( 1.065,  1.229 )  
Calculations and Intervals on Original Scale
Феликс С
источник
Большое спасибо за подробный ответ. Не могли бы вы прокомментировать (минимальную) разницу между статистикой процентиля и скорректированного процентиля (BCa)?
Fmark
«Начальный интервал с коррекцией смещения при начальной загрузке (BCa) является модификацией метода процентилей, который корректирует процентили для коррекции смещения и асимметрии» (Хестерберг Т., Монаган С., Мур Д., Клипсон А., & Epstein, R. (2005). Методы начальной загрузки и тесты перестановок. Введение в статистическую практику, 14.1–14.70.). Всякий раз, когда программное обеспечение позволяет это, используйте скорректированный CI BCa (примечание: ему нужно> 1000 повторных выборок)
Felix S
Из документации для пакета simpleboot видно, что аргумент для обрезки больше не поддерживается. :(
это
8

κ^/(6s2N)κ^О(N-1/2)О(N-1)N1/2>20N>400

(ехр(1)+2)*ехр(1)-1kappa = (exp(1)+2)*sqrt( exp(1) - 1) = 6.184877s = sqrt( (exp(1)-1)*exp(1) ) = 2.1611972*s*qnorm(0.975)/sqrt(n) = 0.2678999kappa*s/(6*n) = 0.00222779kappa

Stask
источник
2

Попробуйте лог-нормальное распределение, рассчитав:

  1. Логарифм данных;
  2. Среднее и стандартное отклонение (1)
  3. Доверительный интервал, соответствующий (2)
  4. Экспонента (3)

В итоге вы получите асимметричный доверительный интервал вокруг ожидаемого значения (которое не является средним значением необработанных данных).

Фелипе Г. Невинский
источник