Вычисление доверительных интервалов для ненормального распределения

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

У меня есть данные, которые обычно не распространяются. Как правило, когда я устанавливаю доверительные интервалы, я бы использовал средние + - 2 стандартные отклонения, но я не думаю, что это приемлемо для неравномерного распределения. Мой размер выборки в настоящее время установлен на 1000 выборок, что, по-видимому, достаточно, чтобы определить, было ли это нормальное распределение или нет.

Я использую Matlab для всей моей обработки, поэтому есть ли какие-либо функции в Matlab, которые облегчат вычисление доверительных интервалов (скажем, 95%)?

Я знаю, что есть функции "quantile" и "prctile", но я не уверен, что это то, что мне нужно использовать. Функция "mle" также возвращает доверительные интервалы для нормально распределенных данных, хотя вы также можете предоставить свой собственный pdf файл.

Можно ли использовать ksdensity для создания pdf файла для моих данных, а затем передать этот pdf файл в функцию mle, чтобы дать мне доверительные интервалы?

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

Спасибо!

Ответ 1

Вы уверены, что вам нужны доверительные интервалы или только 90% диапазона случайных данных?

Если вам нужен последний, я предлагаю вам использовать prctile(). Например, если у вас есть вектор, содержащий независимые одинаково распределенные выборки случайных величин, вы можете получить некоторую полезную информацию, запустив

y = prcntile(x, [5 50 95])

Это вернет в [y (1), y (3)] диапазон, где происходит 90% ваших образцов. А в y (2) вы получаете медиану образца.

Попробуйте следующий пример (с использованием нормально распределенной переменной):

t = 0:99;
tt = repmat(t, 1000, 1);
x = randn(1000, 100) .* tt + tt;  % simple gaussian model with varying mean and variance
y = prctile(x, [5 50 95]);

plot(t,  y);
legend('5%','50%','95%')

Ответ 2

Итак, есть пара вопросов. Вот несколько предложений

Вы правы, что среднее число 1000 образцов должно быть нормально распределено (если ваши данные не "тяжелые хвосты", которые я предполагаю, это не так). для получения интервала 1-alpha -confidence для среднего значения (в вашем случае alpha = 0.05) вы можете использовать функцию "norminv". Например, предположим, что нам нужен 95% ДИ для среднего образца данных X, тогда мы можем ввести

N = 1000;             % sample size
X = exprnd(3,N,1);    % sample from a non-normal distribution
mu = mean(X);         % sample mean (normally distributed)
sig = std(X)/sqrt(N); % sample standard deviation of the mean
alphao2 = .05/2;      % alpha over 2   
CI = [mu + norminv(alphao2)*sig ,...
      mu - norminv(alphao2)*sig  ]

CI =

2.9369    3.3126

Тестирование, если выборка данных обычно является распределением, может быть выполнена многими способами. Один простой метод - с графиком QQ. Для этого используйте "qqplot (X)", где X - ваш образец данных. Если результат приблизительно равен прямой, образец является нормальным. Если результат не является прямой линией, образец не является нормальным.

Например, если X = exprnd(3,1000,1), как указано выше, образец ненормален, а qqplot очень нелинейный:

X = exprnd(3,1000,1);
qqplot(X);

alt text

С другой стороны, если данные нормальны, qqplot даст прямую линию:

qqplot(randn(1000,1))

alt text

Ответ 3

Вы можете использовать метод, предложенный в [1]:

MEDIAN +/- 1.7(1.25R / 1.35SQN)

Где R = межквартильный диапазон, SQN = квадратный корень N

Это часто используется в графах надписей, полезная визуализация данных для ненормальных данных. Если вырезы двух медианов не перекрываются, медианы примерно одинаковы при уровне достоверности 95%.

[1] McGill, R., J. W. Tukey и W. A. ​​Larsen. "Вариации боксов". Американский статистик. Том 32, № 1, 1978, стр. 12-16.

Ответ 4

Вы можете также рассмотреть возможность использования начальной загрузки с помощью функции bootci.

Ответ 5

Я не использовал Matlab, но из моего понимания статистики, если ваше распределение не может считаться нормальным распределением, тогда вы должны принять его как распределение Student t и рассчитать доверие. Интервал и точность.

http://www.stat.yale.edu/Courses/1997-98/101/confint.htm