Лекция 8. Программирование на языке SAS. Графика (1185380)
Текст из файла
Программирование на языке 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"> <...
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.