Разница между Proc univarite и Proc серьезностью для подгонки непрерывного (положительная поддержка) распределения

Моя цель - подогнать данные к любому дистрибутиву, который имеет положительную поддержку. (Вейбулл (2р), гамма (2р), Парето (2р), логнормальный (2р), экспоненциальный (1р)). Первая попытка, я использовал proc univariate. Это мой код

proc univariate data=fit plot outtable=table;
   var week1;
   histogram / exp gamma lognormal weibull pareto;
   inset n mean(5.3) std='Standar Deviasi'(5.3) 
          / pos = ne  header = 'Summary Statistics';
   axis1 label=(a=90 r=0);
   run;

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

proc severity data=fit print=all plots(histogram kernel)=all;
loss week1; 
dist exp pareto gamma logn weibull;
run;

Теперь я получил статистику KS для распределения Вейбулла. Затем я сравнил статистику KS, полученную по серьезности процедуры и по одномерной процедуре. Они разные. Зачем? Какой из них я должен использовать?

1 ответ

Решение

У меня нет доступа к SAS/ETS, поэтому я не могу подтвердить это с помощью proc severity, но я думаю, что разница, которую вы видите, сводится к тому, как распределены параметры распределения.

С вашим proc univriate В коде вы не запрашиваете оценку для некоторых параметров (в некоторых случаях для некоторых из них установлено значение 1 или 0 по умолчанию, см. сигма и тета в руководстве пользователя). Например:

data have;
    do i = 1 to 1000;
        x = rand("weibull", 5, 5);
        output;
    end;
run;
ods graphics on;
proc univariate data = have;
    var x;
    /* Request maximum liklihood estimate of scale and threshold parameters */
    histogram / weibull(theta = EST sigma = EST);
    /* Request maximum liklihood estimate of scale parameter and 0 as threshold */
    histogram / weibull;
run;

Вы заметите, что когда запрашивается оценка тета, SAS также производит статистику KS, это связано с тем, что SAS оценивает статистику соответствия, требующую известных параметров распределения (полное объяснение здесь).

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

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

Другие вопросы по тегам