Среднее значение выборки и дисперсия выборки распределения Вейбулла

Предположим, что у меня есть случайная выборка x из распределения Вейбулла с параметром формы k=1 и параметром масштаба λ=2.
Как мне вычислить среднее значение выборки? Кроме того, что я могу сделать, чтобы вычислить дисперсию выборки?

Я также был бы признателен за любой полезный код Matlab, способный выполнять вышеупомянутые задачи.


person obelix    schedule 04.04.2014    source источник
comment
Используйте mean(sample(:)) и var(sample(:)). Вы можете удалить (:), если sample уже является вектором (1D-массивом).   -  person Luis Mendo    schedule 04.04.2014
comment
но разве команды mean и var не должны вычислять только среднее значение и дисперсию нормального распределения ??   -  person obelix    schedule 04.04.2014
comment
Нет! Они довольно общие   -  person Luis Mendo    schedule 04.04.2014
comment
Что ж, среднее значение вейбуля хорошо определено, если у вас есть параметры формы и масштаба, поэтому вы можете использовать это (см., например, en.wikipedia.org/wiki/Weibull_distribution) и сравните его со средним значением, полученным в вашем образце.   -  person Andy Clifton    schedule 04.04.2014
comment
Хорошо, тогда предположим, что я сгенерировал первую выборку с указанными значениями... в случае, если я разделю все значения выборки на 5, что должно измениться в пересчитанном среднем значении и дисперсии??   -  person obelix    schedule 04.04.2014
comment
В этом случае, конечно, среднее значение будет делиться на 5, а дисперсия на 25... но почему вы об этом спрашиваете?   -  person Luis Mendo    schedule 04.04.2014
comment
Нет, на мой взгляд, вопрос не нуждается в переосмыслении... так как я просто добавил цель к исходной...   -  person obelix    schedule 04.04.2014
comment
Кстати, есть ли формальная причина, по которой дисперсия делится на 25??   -  person obelix    schedule 04.04.2014
comment
@obelix Это следует непосредственно из определения дисперсии   -  person Luis Mendo    schedule 04.04.2014


Ответы (3)


Случайные числа для распределения Вейбула с параметром масштаба λ и параметром формы k:

Numbers = wblrnd(λ,k);

Чтобы вычислить среднее значение

mean(Numbers(:));

Чтобы вычислить дисперсию

var(Numbers(:));
person Community    schedule 04.04.2014

Просто используйте

mean(sample(:))

и

var(sample(:))

где sample — массив чисел.

Часть (:) используется для преобразования массива sample в вектор. Вы можете опустить это, если sample уже является вектором.

Обратите внимание, что при этом вычисляются выборочное среднее и выборочная дисперсия ваших данных (не истинное среднее значение и дисперсия распределения).

person Luis Mendo    schedule 04.04.2014

Ссылаясь на вики-страницу для распределения Weibull, можно напрямую вычислить их для этого распределения. См. вики для формул.

k = 1;          % shape parameter
lambda = 2;     % scale parameter

Wmeanh =@(k,lambda) lambda*gamma(1 + (1/k));    % Mean
Wvarh =@(k,lambda) (lambda^2)*(gamma(1+(2/k)) - (gamma(1+(1/k)))^2); % Variance

Теперь, чтобы проверить эти анонимные функции на наших параметрах...

>> Wmeanh(k,lambda)
ans =
     2
>> Wvarh(k,lambda)
ans =
     4

И мы можем проверить правильность наших формул и показать, что наши ответы совпадают.

% Test against alternate method
pd = makedist('Weibull',lambda,k)
mean(pd)
var(pd)

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

N = [10 30 90 270 810 2430 7290]';
SampleMEAN = zeros(size(N));
SampleVAR = zeros(size(N));
for i = 1:length(N)
    ni = N(i);
    Xi = random(pd,ni,1);
    SampleMEAN(i) = mean(Xi);
    SampleVAR(i) = var(Xi);
end
T = table(N,SampleMEAN,SampleVAR)
person SecretAgentMan    schedule 13.11.2018