Лекция 8. Программирование на языке SAS. Графика (Лекции 2015)
Описание файла
Файл "Лекция 8. Программирование на языке SAS. Графика" внутри архива находится в папке "Лекции 2015". PDF-файл из архива "Лекции 2015", который расположен в категории "". Всё это находится в предмете "(ппп соиад) (sas) пакеты прикладных программ для статистической обработки и анализа данных" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Программирование на языке SASЛекция 8 (графика)Авторы материалов:Петровский Михаил (ВМК МГУ, SAS Russia/CIS), michael@cs.msu.su1Графические возможности в SAS ODS• Proc SGPLOT – построение графиков• Proc SGPANEL и Proc SGSCATTER –объединение графиков• Graphics Template Language– Proc SGRENDER и Proc Template для заданиеопределения шаблонов визуализации2Типы графиков PROC SGPLOT• Базовые графики– Scatter (разброс), series (временной ряд), step (ступенчатаядиаграмма), band (с ограничениями), needle plots («игольчатый»график), bubble («пузырьковый»)• Графики с моделями– Loess (локальная непараметрическая регрессия), regression(полиномиальная регрессия), B-spline curves (регуляризированныесплайны), ellipses (элипсы рассеивания)• Графики для оценки распределений– box plots («ящик с усами»), histograms (гистограммы), kerneldensity estimates (плотность распределения на основе ядерныхфункций)• Графики с категориями (диаграммы)– Точечные, столбчатые и линейные диаграммыОбщий синтаксис PROC SGPLOTPROC SGPLOT < option(s)>;BAND X= variable | Y= variable UPPER= numeric-value | numeric-variable LOWER= numeric-value | numeric-variable</option(s)>;DENSITY response-variable </option(s)>;DOT category-variable </option(s)>;ELLIPSE X= numeric-variable Y= numeric-variable </option(s)>;HBAR category-variable < /option(s) >HBOX response-variable </option(s)>;HISTOGRAM response-variable < /option(s)>HLINE category-variable < /option(s)>INSET "text-string-1" <...
"text-string-n"> | (label-list);KEYLEGEND <"name-1" ... "name-n"> </option(s)>;LOESS X= numeric-variable Y= numeric-variable </option(s)>;NEEDLE X= variable Y= numeric-variable </option(s)>;PBSPLINE X= numeric-variable Y= numeric-variable </option(s)>;REFLINE value(s) </option(s)>;REG X= numeric-variable Y= numeric-variable </option(s)>;SCATTER X= variable Y= variable </option(s)>;SERIES X= variable Y= variable </option(s)>;STEP X= variable Y= variable </option(s)>;VBAR category-variable < /option(s)>VBOX response-variable </option(s)>;VLINE category-variable < /option(s)>XAXIS <option(s)>;X2AXIS <option(s)>;YAXIS <option(s)>;Y2AXIS <option(s)>;4Совместимость графиков• В рамках одного вызова sgplot:– Если графики совместимы, то они изображаются на одном поле– Если не совместимы то строятся отдельные поля для каждого типаБазовыйМоделиБазовый++Модели++РаспределенияКатегорииРаспределенияКатегории++5SCATTER (разброс)Синтаксис: SCATTER X=var Y=var/optionsВажные опции:• DATALEBEL=var – задает метки• GROUP – задает разные маркеры для группBubble («пузырьковый» график)Синтаксис: BUBBLE X= variable Y= variable SIZE=numeric-variableВажные опции:• GROUP – задает настройки «пузыря» для групп7SERIES (временной ряд)Синтаксис: SERIES X=var Y=var/optionsВажные опции:• BREAK – создает разрывы для пропущенныхзначенийSTEP (ступенчатый)Синтаксис: STEP X=var Y=var/optionsВажные опции:• BREAK – создает разрывы для пропущенныхзначенийNEEDLE («игольчатый»)Синтаксис: NEEDLE X=var Y=var/options;Важные опции:• BASELINE=val задает линию уровняBAND (с ограничениями)Синтаксис: BAND X=var UPPER=var LOWER=var/options;Важные опции:• FILL/NOFILL – параметры заливкиREG (с полиномиальной регрессией)Синтаксис: REG X=var Y=var/optionsВажные опции:• CLI, CLM – с доверительными интервалами• ALPHA – уровень значимости для интервалов• DEGREE – степень полиномаLOESS (локальнаянепараметрическая регрессия)Синтаксис: LOESS X=var Y=var/options;Важные опции:• CLM – с доверительными интервалами• ALPHA – уровень значимости для интервалов• INTERPOLATION=CUBIC/LINEAR – базовые локальные функцииЛокальная непараметрическаярегрессия• Для каждого t –го наблюдения подгоняется локальнаярегрессионная модель– с заданным уравнением g(.) (обычно линейная или квадратичная регрессия)– по «окружению» этого наблюдения, где размер окружения задается какпараметр - пропорция от всей выборки– Используется взвешенный МНК, где при подгонке вес наблюдения из«окружения» определеятся расстоянием до «центрального» наблюденияОсталось 53 точкиОсталось 9 точек14PBSPLINE (интерполяция сплайнами)Синтаксис: PBSPLINE X=var Y=var/ options;Важные опции:• CLM – с доверительными интервалами• ALPHA – уровень значимости для интерваловСплайны• Непараметрическая регрессия на основе полиномиальныхсплайнов с регуляризацией с настройками по умолчанию:– кубические сплайны, но можно менять– параметр регуляризации можно задавать или определять метоломкроссвалидации– число узлом=число точек, но можно менять и зависит отрегуляризации• Целевая функция: yii2 ( xi ) ( x ) dx2(x )k1k2k3k4x16HBOX, VBOX («ящик с усами»)Синтаксис: VBOX response-var/options; HBOX response-var/optionsВажные опции:• CATEGORY=var – по какой переменной строитсяГистограмма и плотностьСинтаксис: DENSITY response-var/ options; илиHISTOGRAM response-var/ options;Важные опции:• SCALE= DENSITY/PERCENT/COUNT/PROPORTION – тип шкалыЭллипс разбросаСинтаксис: ELLIPSE X=var Y=var/optionsВажные опции:• ALPHA – уровень значимости для интерваловHBAR, VBAR, HLINE, VLINE (столбчатые илинейные диаграммы)Синтаксис: VBAR category-var/options; или HBAR category-var/options;VLINE category-var/options; или HLINE category-var/options;Важные опции:• RESPONSE=var имя переменной• STAT= MEAN/SUM и т.д.
имя рассчитываемой статистикиDOT (точечная диаграмма)Синтаксис: DOT category-var/options;Важные опции:• RESPONSE=var имя переменной• STAT= MEAN/SUM и т.д. имя рассчитываемой статистики• LIMITSTAT = STDDEV/STDERR и т.д. имя статистики для оценки разбросаПараметры для PROC SGPLOT• Большинство типов графиков поддерживают By группировку• Многие графики можно комбинировать на одном поле• Некоторым графикам нужны дополнительные настройки или естьограничения, например:– Гистограммы и плотности требуют тип шкалы (percent, count, orproportion)– Доверительные интервалы для моделей• Управление визуализацией:–––––INSET задает текстовые обозначения на поле графикаKEYLEGEND легендуREFLINE – линии уровняМожно передавать свои форматыМожно управлять цветами, легендой, прозрачностью, размером итипом маркеров– Можно настраивать оси: шкала, решетка, меткиЭлементы управления визуализацией• Основные опции:– INSET ’text1’ ’text2’ ...
/options; POSITION=BOTTOM,LEFT, RIGHT, TOP и т.д.– REFLINE value1 value2 .../options; AXIS=X,Y и т.д. LINEATTRS= вид линии– XAXIS/AXIS GRID (разметка), TYPE=DISCRETE, LINEAR, LOG, TIME (типшкалы), LABEL – метки, VALUES=() –список значений для разметки• Основные атрибуты:– /FILLATTRS=(attribute=value) - заливка, например, color=red– /LINEATTRS=(attribute=value) – тип линии, например, PATTERN=SOLID,DASH, SHORTDASH, LONGDASH, DOT…, THICKNESS=val (толщина)– /MARKEREATTRS=(attribute=value) вид маркеров, COLOR=, SZIE=,SYMBOL=CIRCLE, CIRCLEFILLED, DIAMOND, DIAMONDFILLED, PLUS, SQUARE,SQUAREFILLED, и т.д.23Разброс с моделью24Разброс с элипсом25Столбчатая и линейная диаграмма сгруппировкой26Точечная диаграмма с интервалами27Плотность с гистограммой28«Ящики с усами» с линией уровня29Временные ряды c допуском30Игольчатая диаграмма с линией уровня31Объединение графиков через PROC SGPANEL• Процедура PROC SGPANEL– Создает «мозаику» однотипныхграфиков (как sgplot),сгруппированных по значениюкатегориальной переменной.Синтаксис определенияструктуры графика как в SGPLOT• Основной оператор:– PANELBY (с параметрами«мозаики», число ячеек и т.д.)32Объединение графиков через SGSCATTER cопцией PLOT• PLOT – задает «набор графиков» на независимых осях– Связь задается с помощью () и * как и структура таблиц и колонокв других процедурах33Объединение графиков через SGSCATTER cопцией COMPARE• COMPARE – объединяет несколько граффиков на общей оси– Общая ось задается отдельно в разделе x34Объединение графиков через SGSCATTER cопцией MATRIX• MATRIX – создает матрицу графиков N на N по всему списку переменных– Отдельно настройки для диагонали – гистограммы для каждой переменной35Graph Template Language• GTL – расширение ODS, разработанное в последних версияхSAS для визуализации сложных графических представлений• По сути – отдельный язык, шаблоны GTL создаются,управляются и редактируются с помощью процедуры PROCTemplate (как стили)• Процесс визуализации шаблона – с помощью процедурыSGRENDER• Можно редактировать и «подменять» существующиюграфические шаблоны для стандартных графическихпроцедур36Создание и применение GTL шаблонов• Создание, компиляция и автоматическое сохранение (можно менять)шаблона• Применение шабона по именик переменным из набора даных37Элементы синтаксиса GTL• Описания можества графиков:BEGINGRAPH </ option(s)> ;<GTL-global-s >GTL-layout-block<GTL-global-s >ENDGRAPH ;• Операторв LAYOUT - тип вывода для графиков (могут бытьвложенными):– OVERLAY – одно общее 2D поле с легендой и текстами– OVERLAYEQUATED – одно общее 2D поле с легендой, текстами иобщими осями– OVERLAY3D – одно общее 3D поле с легендой и текстами– PROTOTYPE – упрощенный OVERLAY– GRIDDED – «мозаика» независимых графиков– LATTICE - «мозаика» графиков с общими осями– DATALATTICE и DATAPANEL – «колонка» и «мозаика» 2D графиков собщими осями, автоматически генерируемая по значениямкатегориальной переменной38Оператор PLOT - тип графиков• Немного другой синтаксис по сравнению с процедурамисемества SGPLOT, но функционально близко (кроме 3D):– BANDPLOT, BARCHART, BARCHARTPARM, BIHISTOGRAM3DPARM, BLOCKPLOT,BOXPLOT, BOXPLOTPARM, CONTOURPLOTPARM, DENSITYPLOT, DROPLINE,ELLIPSE, ELLIPSEPARM, FRINGEPLOT, HISTOGRAM, HISTOGRAMPARM, LINEPARM,LOESSPLOT, MODELBAND, NEEDLEPLOT, PBSPLINEPLOT, REFERENCELINE,REGRESSIONPLOT, SCATTERPLOT, SCATTERPLOTMATRIX, SERIESPLOT, STEPPLOT,SURFACEPLOTPARM, VECTORPLOT39Сохранение шаблонов из обычныхграфических процедур• Можно сохранять шаблон из обычных процедур и потомредактировать с помощью PROC TEMPLATE:• В результате сохраняется SAS код с обращением к Template– Mygraph.sas40Комбинация разнотипных графиковна одном поле• Делается через соответсвующую комбинацию OVERLAY операторов:413D графики• Их не могут строить обычные процедуры sgplot и т.д.• Нужно использовать OVERLAY3D и соотвествующий тип графика:– Задаем шаблон с именами перменных– Создаем набор даных для осей– Строим сплайн модель и рисуем42Контурные графики• Позволяют «проецировать» 3D в 2D за счет цветовой легенды• Пример с прошлого слайда, но вместо 3D – контуры (меняется тольковызов template):43Динамические и макро переменные вGTL шаблонах• В предыдущих примерах в шаблон «зашивали» имена переменных –неудобно• Есть возможность передавать информацию в шаблоны:– Через макропеременные, в том числе символьные и вычисляемые в числовые(поскольку шаблон тот же макрос, то можно пользоваться еще и eval)– Через динамические переменные• Общий синтаксис:PROC TEMPLATE;DEFINE STATGRAPH template-name ;DYNAMIC variable-1<"text-1"> <...