Как создать график qq в sas


График QQ, сокращенно от «квантиль-квантиль», используется для оценки того, потенциально ли набор данных является результатом теоретического распределения.

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

Если данные распределены нормально, точки на графике QQ будут лежать на прямой диагональной линии.

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

Самый простой способ создать график QQ в SAS — использовать оператор PROC UNIVARIATE с оператором QQPLOT :

 proc univariate data =my_data noprint ;
   qqplot my_variable;
run ;

Следующие примеры показывают, как использовать этот синтаксис на практике.

Примечание . Мы используем оператор NOPRINT для удаления всей остальной сводной статистики и таблиц, автоматически созданных оператором PROC UNIVARIATE .

Пример 1. Создайте график QQ в SAS для обычных данных.

Следующий код показывает, как создать график QQ для набора данных, содержащего 1000 наблюдений , сгенерированных на основе нормального распределения со средним значением 10 и стандартным отклонением 2:

 /*generate 1000 values that follow normal distribution with mean 10 and sd 2 */
data normal_data;
    do i = 1 to 1000;
	x = 10 + 2* rannor (1);
        output ;
    end ;
run ;

/*create some plot*/
proc univariate data =normal_data noprint ;
   qqplot x;
run ; 

График QQ в SAS

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

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

Пример 2: График QQ для ненормальных данных

Следующий код показывает, как создать график QQ для набора данных, содержащего 1000 наблюдений, сгенерированных на основе экспоненциального распределения :

 /*generate 1000 values that follow an exponential distribution*/
data exp_data;
    do i = 1 to 1000;
	x = ranexp (1);
        output ;
    end ;
run ;

/*create some plot*/
proc univariate data =exp_data noprint ;
   qqplot x;
run ; 

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

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

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как использовать одномерную процедуру Proc для проверки нормальности в SAS
Как выполнить преобразование журнала в SAS
Как выявить выбросы в SAS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *