SAS - Краткое руководство

SAS означает Statistical Analysis Software. Он был создан в 1960 году Институтом САС. С 1 января 1960 года SAS использовался для управления данными, бизнес-аналитики, прогнозного анализа, описательного и предписывающего анализа и т. Д. С тех пор в программное обеспечение было введено множество новых статистических процедур и компонентов.

С введением JMP (Jump) для статистики SAS воспользовалась преимуществами Graphical user Interfaceкоторый был представлен Macintosh. Jump в основном используется для таких приложений, как Six Sigma, дизайн, контроль качества, инженерный и научный анализ.

SAS не зависит от платформы, что означает, что вы можете запускать SAS в любой операционной системе Linux или Windows. SAS управляется программистами SAS, которые используют несколько последовательностей операций с наборами данных SAS для создания надлежащих отчетов для анализа данных.

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

Чтобы ознакомиться со списком доступных продуктов, посетите веб-сайт SAS Components.

Почему мы используем SAS

SAS в основном работает с большими наборами данных. С помощью программного обеспечения SAS вы можете выполнять различные операции с данными, например:

  • Управление данными
  • Статистический анализ
  • Формирование отчета с отличной графикой
  • Планирование бизнеса
  • Операционные исследования и управление проектами
  • Улучшение качества
  • Разработка приложения
  • Извлечение данных
  • Преобразование данных
  • Обновление и изменение данных

Если говорить о компонентах SAS, то в SAS доступно более 200 компонентов.

Sr.No. Компонент SAS и их использование
1

Base SAS

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

2

SAS/GRAPH

Создавайте графики, презентации для лучшего понимания и демонстрации результата в правильном формате.

3

SAS/STAT

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

4

SAS/OR

Исследование операций.

5

SAS/ETS

Эконометрика и анализ временных рядов.

6

SAS/IML

CИнтерактивный матричный язык.

7

SAS/AF

Объект приложений.

8

SAS/QC

Контроль качества.

9

SAS/INSIGHT

Сбор данных.

10

SAS/PH

Анализ клинических испытаний.

11

SAS/Enterprise Miner

Сбор данных.

Типы программного обеспечения SAS

  • Windows или ПК SAS
  • SAS EG (Руководство для предприятий)
  • SAS EM (Enterprise Miner, т.е. для прогнозного анализа)
  • SAS означает
  • Статистика SAS

В основном мы используем Window SAS как в организациях, так и в учебных заведениях. Некоторые организации используют Linux, но нет графического пользовательского интерфейса, поэтому вам придется писать код для каждого запроса. Но в оконном SAS доступно множество утилит, которые очень помогают программистам, а также сокращают время написания кода.

Окно SaS состоит из 5 частей.

Sr.No. Окно SAS и их использование
1

Log Window

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

2

Editor Window

Окно редактора - это та часть SAS, где мы пишем все коды. Это похоже на блокнот.

3

Output Window

Окно вывода - это окно результатов, в котором мы можем видеть вывод нашей программы.

4

Result Window

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

5

Explore Window

Здесь перечислены все библиотеки. Вы также можете просмотреть здесь файлы, поддерживаемые SAS вашей системы.

Библиотеки в SAS

Библиотеки подобны хранилищу в SAS. Вы можете создать библиотеку и сохранить в ней все похожие программы. SAS предоставляет вам возможность создавать несколько библиотек. Библиотека SAS состоит всего из 8 символов.

В SAS доступны два типа библиотек:

Sr.No. Окно SAS и их использование
1

Temporary or Work Library

Это библиотека SAS по умолчанию. Все программы, которые мы создаем, хранятся в этой рабочей библиотеке, если мы не назначаем им какую-либо другую библиотеку. Вы можете проверить эту рабочую библиотеку в окне просмотра. Если вы создали программу SAS и не назначили ей какую-либо постоянную библиотеку, то, если вы завершите сеанс после этого снова, вы запустите программное обеспечение, тогда эта программа не будет в рабочей библиотеке. Потому что он будет в рабочей библиотеке только до тех пор, пока идет сеанс.

2

Permanent Library

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

SAS Institute Inc. выпустила бесплатный SAS University Editionчто достаточно для изучения программирования SAS. Он предоставляет все функции, которые вам необходимо изучить в программировании BASE SAS, что, в свою очередь, позволяет изучить любой другой компонент SAS.

Процесс загрузки и установки SAS University Edition очень прост. Он доступен как виртуальная машина, которая должна работать в виртуальной среде. Перед запуском программного обеспечения SAS на вашем компьютере должно быть уже установлено программное обеспечение виртуализации. В этом уроке мы будем использоватьVMware. Ниже приведены подробные инструкции по загрузке, настройке среды SAS и проверке установки.

Скачать SAS University Edition

SAS University Editionдоступен для загрузки по URL-адресу SAS University Edition . Пожалуйста, прокрутите вниз, чтобы прочитать системные требования, прежде чем начать загрузку. При посещении этого URL-адреса появляется следующий экран.

Установить программное обеспечение виртуализации

Прокрутите вниз на той же странице, чтобы найти установку stpe-1. Этот шаг предоставляет ссылки для получения подходящего вам программного обеспечения для виртуализации. Если в вашей системе уже установлено какое-либо из этих программ, вы можете пропустить этот шаг.

Программное обеспечение для быстрого старта виртуализации

Если вы новичок в среде виртуализации, вы можете ознакомиться с ней, просмотрев следующие руководства и видеоролики, доступные на шаге 2. Опять же, вы можете пропустить этот шаг, если вы уже знакомы.

Загрузите Zip-файл

На шаге 3 вы можете выбрать соответствующую версию SAS University Edition, совместимую с вашей средой виртуализации. Он загружается в виде zip-файла с именем, похожим на unvbasicvapp__9411005__vmx__en__sp0__1.zip.

Разархивируйте zip-файл

Приведенный выше zip-файл необходимо распаковать и сохранить в соответствующем каталоге. В нашем случае мы выбрали zip-файл VMware, который после распаковки показывает следующие файлы.

Загрузка виртуальной машины

Запустите проигрыватель VMware (или рабочую станцию) и откройте файл с расширением .vmx. Появится экран, показанный ниже. Обратите внимание на основные параметры, такие как память и место на жестком диске, выделенные для vm.

Включите виртуальную машину

Щелкните значок Power on this virtual machineрядом с зеленой стрелкой, чтобы запустить виртуальную машину. Появится следующий экран.

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

Запуск SAS studio

Откройте новую вкладку браузера и загрузите указанный выше URL-адрес (который отличается от одного компьютера к другому). Появится экран ниже, показывающий, что среда SAS готова.

Среда SAS

При нажатии на Start SAS Studio мы получаем среду SAS, которая по умолчанию открывается в режиме визуального программиста, как показано ниже.

Мы также можем изменить его в режим программиста SAS, щелкнув раскрывающийся список.

Теперь мы готовы писать программы SAS.

Программы SAS создаются с использованием пользовательского интерфейса, известного как SAS Studio.

Ниже приводится описание различных окон и их использования.

Главное окно SAS

Это окно, которое вы видите при входе в среду SAS. Слева находитсяNavigation Paneиспользуется для навигации по различным функциям программирования. Справа находитсяWork Area который используется для написания кода и его выполнения.

Автозаполнение кода

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

Выполнение программы

Выполнение кода выполняется нажатием значка запуска, который является первым значком слева, или кнопкой F3.

Журнал программы

Журнал выполненного кода доступен под Logтаб. В нем описаны ошибки, предупреждения или примечания о выполнении программы. Это окно, в котором вы получите все подсказки для устранения неполадок вашего кода.

Результат программы

Результат выполнения кода виден на вкладке РЕЗУЛЬТАТЫ. По умолчанию они отформатированы как таблицы html.

Вкладки программы

Область навигации содержит функции для создания программ и управления ими. Он также предоставляет встроенные функции для использования с вашей программой.

Файлы и папки сервера

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

Задания

Вкладка «Задачи» предоставляет возможности для использования встроенных программ SAS, предоставляя только входные переменные. Например, в папке статистики вы можете найти программу SAS, которая выполняет линейную регрессию, предоставляя только имя набора данных SAS и имена переменных.

Фрагменты

Вкладка сниппетов предоставляет функции для записи макроса SAS и создания файлов из существующего набора данных.

Библиотеки программ

SAS хранит наборы данных в библиотеках SAS. Временная библиотека доступна только для одного сеанса и называется WORK. Но постоянные библиотеки доступны всегда.

Ярлыки файлов

Эта вкладка используется для доступа к файлам, которые хранятся вне среды SAS. Ярлыки для таких файлов хранятся на этой вкладке.

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

Структура программы SAS

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

Каждая программа SAS должна иметь все эти шаги для завершения чтения входных данных, анализа данных и выдачи результатов анализа. Так жеRUN оператор в конце каждого шага требуется для завершения выполнения этого шага.

ДАННЫЕ Шаг

Этот шаг включает загрузку необходимого набора данных в память SAS и определение переменных (также называемых столбцами) набора данных. Он также фиксирует записи (также называемые наблюдениями или предметами). Синтаксис оператора DATA приведен ниже.

Синтаксис

DATA data_set_name;		#Name the data set.
INPUT var1,var2,var3; 		#Define the variables in this data set.
NEW_VAR;			#Create new variables.
LABEL;			      	#Assign labels to variables.
DATALINES;		      	#Enter the data.
RUN;

пример

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

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
comm = SALARY*0.25;
LABEL ID = 'Employee ID' comm = 'COMMISION';
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC Step

Этот шаг включает вызов встроенной процедуры SAS для анализа данных.

Синтаксис

PROC procedure_name options; #The name of the proc.
RUN;

пример

В приведенном ниже примере показано использование MEANS процедура для печати средних значений числовых переменных в наборе данных.

PROC MEANS;
RUN;

ВЫХОДНОЙ шаг

Данные из наборов данных могут отображаться с условными операторами вывода.

Синтаксис

PROC PRINT DATA = data_set;
OPTIONS;
RUN;

пример

В приведенном ниже примере показано использование предложения where в выходных данных для создания только нескольких записей из набора данных.

PROC PRINT DATA = TEMP;
WHERE SALARY > 700;
RUN;

Полная программа SAS

Ниже приведен полный код для каждого из вышеуказанных шагов.

Программный вывод

RESULTS

Как и любой другой язык программирования, язык SAS имеет свои собственные правила синтаксиса для создания программ SAS.

Три компонента любой программы SAS - операторы, переменные и наборы данных следуют приведенным ниже правилам синтаксиса.

Заявления SAS

  • Заявления могут начинаться где угодно и заканчиваться где угодно. Точка с запятой в конце последней строки обозначает конец оператора.

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

  • Пробел можно использовать для разделения компонентов в операторе программы SAS.

  • Ключевые слова SAS не чувствительны к регистру.

  • Каждая программа SAS должна заканчиваться оператором RUN.

Имена переменных SAS

Переменные в SAS представляют собой столбец в наборе данных SAS. Имена переменных соответствуют приведенным ниже правилам.

  • Максимальная длина - 32 символа.

  • Он не может включать пробелы.

  • Он должен начинаться с букв от A до Z (без учета регистра) или символа подчеркивания (_).

  • Может включать числа, но не в качестве первого символа.

  • Имена переменных не чувствительны к регистру.

пример

# Valid Variable Names
REVENUE_YEAR
MaxVal
_Length

# Invalid variable Names
Miles Per Liter	#contains Space.
RainfFall%      # contains apecial character other than underscore.
90_high		# Starts with a number.

Набор данных SAS

Оператор DATA отмечает создание нового набора данных SAS. Ниже приведены правила создания набора ДАННЫХ.

  • Одно слово после оператора DATA указывает имя временного набора данных. Это означает, что набор данных удаляется в конце сеанса.

  • К имени набора данных можно добавить префикс имени библиотеки, что делает его постоянным набором данных. Это означает, что набор данных сохраняется после завершения сеанса.

  • Если имя набора данных SAS опущено, тогда SAS создает временный набор данных с именем, сгенерированным SAS, например - DATA1, DATA2 и т. Д.

пример

# Temporary data sets.
DATA TempData;
DATA abc;
DATA newdat;

# Permanent data sets.
DATA LIBRARY1.DATA1
DATA MYLIB.newdat;

Расширения файлов SAS

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

  • *.sas - Он представляет собой файл кода SAS, который можно редактировать с помощью редактора SAS или любого текстового редактора.

  • *.log - Он представляет собой файл журнала SAS, который содержит такую ​​информацию, как ошибки, предупреждения и детали набора данных для отправленной программы SAS.

  • *.mht / *.html -Он представляет файл результатов SAS.

  • *.sas7bdat -Он представляет собой файл данных SAS, который содержит набор данных SAS, включая имена переменных, метки и результаты вычислений.

Комментарии в SAS

Комментарии в коде SAS указываются двумя способами. Ниже представлены эти два формата.

*сообщение; введите комментарий

Комментарий в виде *message;не может содержать точки с запятой или кавычки без совпадений. Также в таких комментариях не должно быть ссылок на какие-либо макро-операторы. Он может охватывать несколько строк и иметь любую длину. Ниже приводится пример однострочного комментария.

* This is comment ;

Ниже приводится пример многострочного комментария -

* This is first line of the comment
* This is second line of the comment;

/ * сообщение * / введите комментарий

Комментарий в виде /*message*/используется чаще и не может быть вложенным. Но он может занимать несколько строк и иметь любую длину. Ниже приведен пример комментария в одну строку -

/* This is comment */

Ниже приводится пример многострочного комментария -

/* This is first line of the comment
* This is second line of the comment */

Данные, доступные программе SAS для анализа, называются набором данных SAS. Он создается с помощью шага ДАННЫЕ. SAS может читать различные файлы в качестве источников данных, напримерCSV, Excel, Access, SPSS and also raw data. Он также имеет множество встроенных источников данных, доступных для использования.

  • Наборы данных называются temporary Data Set если они используются программой SAS, а затем отбрасываются после запуска сеанса.

  • Но если он хранится постоянно для использования в будущем, он называется permanent Data set. Все постоянные наборы данных хранятся в определенной библиотеке.

Набор данных SAS хранится в виде строк и столбцов и также называется таблицей данных SAS. Ниже мы видим примеры постоянных наборов данных, которые встроены, а также выделены красным цветом из внешних источников.

Встроенные наборы данных SAS

Эти наборы данных уже доступны в установленном программном обеспечении SAS. Их можно изучить и использовать при формулировании примеров выражений для анализа данных. Чтобы изучить эти наборы данных, перейдите наLibraries -> My Libraries -> SASHELP. При его раскрытии мы видим список имен всех доступных встроенных наборов данных.

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

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

Импорт наборов внешних данных

Мы можем экспортировать наши собственные файлы как наборы данных, используя функцию импорта, доступную в SAS Studio. Но эти файлы должны быть доступны в папках сервера SAS. Поэтому нам нужно загрузить файлы исходных данных в папку SAS, используя опцию загрузки в разделеServer Files and Folders.

Затем мы используем указанный выше файл в программе SAS, импортировав его. Для этого воспользуемся опциейTasks -> Utilities -> Import data как показано ниже. Дважды щелкните кнопку «Импортировать данные», чтобы открыть окно справа, чтобы выбрать файл для набора данных.

Далее Щелкните значок Select Filesпод программой импорта данных на правой панели. Ниже приводится список типов файлов, которые можно импортировать.

Мы выбираем файл «employee.txt», хранящийся в локальной системе, и импортируем файл, как показано ниже.

Просмотр импортированных данных

Мы можем просмотреть импортированные данные, запустив код импорта по умолчанию, созданный с помощью опции «Выполнить».

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

Обычно переменные в SAS представляют собой имена столбцов таблиц данных, которые он анализирует. Но его также можно использовать для других целей, например, в качестве счетчика в цикле программирования. В текущей главе мы увидим использование переменных SAS в качестве имен столбцов набора данных SAS.

Типы переменных SAS

SAS имеет три типа переменных, как показано ниже -

Числовые переменные

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

Синтаксис

INPUT VAR1 VAR2 VAR3; 		#Define numeric variables in the data set.

В приведенном выше синтаксисе оператор INPUT показывает объявление числовых переменных.

пример

INPUT ID SALARY COMM_PERCENT;

Переменные символов

Символьные переменные используются для значений, которые не используются в математических выражениях. Они обрабатываются как текст или строки. Переменная становится символьной переменной, добавляя $ sing с пробелом в конце имени переменной.

Синтаксис

INPUT VAR1 $ VAR2 $ VAR3 $; 	#Define character variables in the data set.

В приведенном выше синтаксисе оператор INPUT показывает объявление символьных переменных.

пример

INPUT FNAME $ LNAME $ ADDRESS $;

Переменные даты

Эти переменные обрабатываются только как даты, и они должны быть в допустимом формате даты. Переменная становится переменной даты путем добавления формата даты с пробелом в конце имени переменной.

Синтаксис

INPUT VAR1 DATE11. VAR2 MMDDYY10. ; #Define date variables in the data set.

В приведенном выше синтаксисе оператор INPUT показывает объявление переменных даты.

пример

INPUT DOB DATE11. START_DATE MMDDYY10. ;

Использование переменных в программе SAS

Вышеуказанные переменные используются в программе SAS, как показано в примерах ниже.

пример

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

DATA TEMP;
INPUT ID NAME $ SALARY DEPT $ DOJ DATE9. ;
FORMAT DOJ DATE9. ;
DATALINES;
1 Rick 623.3 IT 02APR2001
2 Dan 515.2 OPS 11JUL2012
3 Michelle 611 IT 21OCT2000
4 Ryan 729 HR 30JUL2012
5 Gary 843.25 FIN 06AUG2000
6 Tusar 578 IT 01MAR2009
7 Pranab 632.8 OPS 16AUG1998
8 Rasmi 722.5 FIN 13SEP2014
;
PROC PRINT DATA = TEMP;
RUN;

В приведенном выше примере все символьные переменные объявляются со знаком $, а переменные даты объявляются с указанием формата даты. Результат вышеупомянутой программы показан ниже.

Использование переменных

Переменные очень полезны при анализе данных. Они используются в выражениях, в которых применяется статистический анализ. Давайте посмотрим на пример анализа встроенного набора данных с именемCARS который присутствует под Libraries → My Libraries → SASHELP. Дважды щелкните по нему, чтобы изучить переменные и их типы данных.

Затем мы можем произвести сводную статистику некоторых из этих переменных, используя параметры задач в SAS studio. Идти кTasks -> Statistics -> Summary Statisticsи дважды щелкните его, чтобы открыть окно, как показано ниже. Выберите набор данныхSASHELP.CARSи выберите три переменные - MPG_CITY, MPG_Highway и Weight в разделе Analysis Variables. Удерживайте нажатой клавишу Ctrl при выборе переменных щелчком. Нажмите "Выполнить".

Щелкните вкладку результатов после описанных выше шагов. Он показывает статистическую сводку трех выбранных переменных. В последнем столбце указано количество наблюдений (записей), использованных в анализе.

Строки в SAS - это значения, заключенные в одинарные кавычки. Также строковые переменные объявляются путем добавления пробела и знака $ в конце объявления переменной. SAS имеет множество мощных функций для анализа строк и управления ими.

Объявление строковых переменных

Мы можем объявить строковые переменные и их значения, как показано ниже. В приведенном ниже коде мы объявляем две символьные переменные длиной 6 и 5. Ключевое слово LENGTH используется для объявления переменных без создания нескольких наблюдений.

data string_examples;
   LENGTH string1 $ 6 String2 $ 5;
   /*String variables of length 6 and 5 */
   String1 = 'Hello';
   String2 = 'World';
   Joined_strings =  String1 ||String2 ;
run;
proc print data = string_examples noobs;
run;

Запустив приведенный выше код, мы получаем вывод, который показывает имена переменных и их значения.

Строковые функции

Ниже приведены примеры некоторых часто используемых функций SAS.

SUBSTRN

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

Синтаксис

SUBSTRN('stringval',p1,p2)

Ниже приводится описание используемых параметров -

  • stringval - значение строковой переменной.
  • p1 - начальная позиция извлечения.
  • p2 конечная позиция извлечения.

пример

data string_examples;
   LENGTH string1 $ 6 ;
   String1 = 'Hello';
   sub_string1 = substrn(String1,2,4) ;
   /*Extract from position 2 to 4 */
   sub_string2 = substrn(String1,3) ;
   /*Extract from position 3 onwards */
run;
proc print data = string_examples noobs;
run;

При запуске приведенного выше кода мы получаем результат, который показывает результат функции substrn.

TRIMN

Эта функция удаляет конечный пробел из строки.

Синтаксис

TRIMN('stringval')

Ниже приводится описание используемых параметров -

  • stringval - значение строковой переменной.
data string_examples;
   LENGTH string1 $ 7  ;
   String1='Hello  ';
   length_string1 = lengthc(String1);
   length_trimmed_string = lengthc(TRIMN(String1));
run;
proc print data = string_examples noobs;
run;

При запуске приведенного выше кода мы получаем вывод, который показывает результат функции TRIMN.

Массивы в SAS используются для хранения и извлечения ряда значений с использованием значения индекса. Индекс представляет собой место в зарезервированной области памяти.

Синтаксис

В SAS массив объявляется с использованием следующего синтаксиса -

ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES

В приведенном выше синтаксисе -

  • ARRAY ключевое слово SAS для объявления массива.

  • ARRAY-NAME - это имя массива, которое подчиняется тому же правилу, что и имена переменных.

  • SUBSCRIPT - количество значений, которые будет хранить массив.

  • ($) - необязательный параметр, который следует использовать только в том случае, если массив будет хранить символьные значения.

  • VARIABLE-LIST - необязательный список переменных, которые являются заполнителями для значений массива.

  • ARRAY-VALUES- фактические значения, хранящиеся в массиве. Они могут быть объявлены здесь или могут быть прочитаны из файла или данных.

Примеры объявления массива

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

# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);

# Declare an array of length 5 named COUNTRIES with values starting at index 0.
ARRAY COUNTRIES(0:8) A B C D E F G H I;

# Declare an array of length 5 named QUESTS which contain character values.
ARRAY QUESTS(1:5) $ Q1-Q5;

# Declare an array of required length as per the number of values supplied.
ARRAY ANSWER(*) A1-A100;

Доступ к значениям массива

К значениям, хранящимся в массиве, можно получить доступ, используя printкак показано ниже. После объявления с использованием одного из вышеперечисленных методов данные предоставляются с помощью оператора DATALINES.

DATA array_example;
INPUT a1 $ a2 $ a3 $ a4 $ a5 $; ARRAY colours(5) $ a1-a5;
mix = a1||'+'||a2;
DATALINES;
yello pink orange green blue
;
RUN;
PROC PRINT DATA = array_example;
RUN;

Когда мы выполняем приведенный выше код, он дает следующий результат -

Использование оператора OF

Оператор OF используется при анализе данных в массиве для выполнения вычислений для всей строки массива. В приведенном ниже примере мы применяем сумму и среднее значений в каждой строке.

DATA array_example_OF;
   INPUT A1 A2 A3 A4;
   ARRAY A(4) A1-A4;
   A_SUM = SUM(OF A(*));
   A_MEAN = MEAN(OF A(*));
   A_MIN = MIN(OF A(*));
   DATALINES;
   21 4 52 11
   96 25 42 6
   ;
   RUN;
   PROC PRINT DATA = array_example_OF;
   RUN;

Когда мы выполняем приведенный выше код, он дает следующий результат -

Использование оператора IN

К значению в массиве также можно получить доступ с помощью оператора IN, который проверяет наличие значения в строке массива. В приведенном ниже примере мы проверяем наличие в данных цвета «Желтый». Это значение чувствительно к регистру.

DATA array_in_example;
   INPUT A1 $ A2 $ A3 $ A4 $;
   ARRAY COLOURS(4) A1-A4;
   IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No';
   DATALINES;
   Orange pink violet yellow
   ;
   RUN;
   PROC PRINT DATA = array_in_example;
   RUN;

Когда мы выполняем приведенный выше код, он дает следующий результат -

SAS может обрабатывать широкий спектр числовых форматов данных. Он использует эти форматы в конце имен переменных, чтобы применить к данным определенный числовой формат. SAS использует два вида числовых форматов. Один для чтения определенных форматов числовых данных, который называетсяinformat а другой для отображения числовых данных в определенном формате, называемом output format.

Синтаксис

Синтаксис числовой информации -

Varname Formatnamew.d

Ниже приводится описание используемых параметров -

  • Varname это имя переменной.

  • Formatname это имя имени числового формата, примененного к переменной.

  • w - это максимальное количество столбцов данных (включая цифры после десятичной точки и саму десятичную точку), разрешенное для хранения для переменной.

  • d - количество цифр справа от десятичной дроби.

Чтение числовых форматов

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

Входные числовые форматы

Формат Использовать
n.

Максимальное количество столбцов без десятичной точки.

n.p

Максимальное «n» количество столбцов с десятичными знаками «p».

COMMAn.p

Максимальное количество столбцов «n» с десятичными знаками «p», которое удаляет любые знаки запятой или доллара.

COMMAn.p

Максимальное количество столбцов «n» с десятичными знаками «p», которое удаляет любые знаки запятой или доллара.

Отображение числовых форматов

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

Выходные числовые форматы

Формат Использовать
n.

Запишите максимальное количество цифр "n" без десятичной точки.

n.p

Запишите максимальное количество столбцов "np" с десятичными точками "p".

DOLLARn.p

Запишите максимальное количество столбцов "n" с p десятичными знаками, ведущим знаком доллара и запятой на тысячном месте.

Обратите внимание -

  • Если количество цифр после десятичной точки меньше спецификатора формата, тогдаzeros will be appended в конце.

  • Если количество цифр после десятичной точки больше спецификатора формата, то последняя цифра будет rounded off.

Примеры

Примеры ниже иллюстрируют вышеприведенные сценарии.

DATA MYDATA1;
input x 6.; /*maxiiuum width of the data*/
format x 6.3;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA1;
RUN;

DATA MYDATA2;
input x 6.; /*maximum width of the data*/
format x 5.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA2;
RUN;
DATA MYDATA3;
input x 6.; /*maximum width of the data*/
format x DOLLAR10.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA3;
RUN;

Когда мы выполняем приведенный выше код, он дает следующий результат -

# MYDATA1.
Obs 	x
1 	8722.0 # Display 6 columns with zero appended after decimal.
2 	93.200 # Display 6 columns with zero appended after decimal.
3 	0.112  # No integers before decimal, so display 3 available digits after decimal.
4 	15.116 # Display 6 columns with 3 available digits after decimal.

# MYDATA2
Obs 	x
1 	8722  # Display 5 columns. Only 4 are available.
2 	93.20 # Display 5 columns with zero appended after decimal.
3 	0.11  # Display 5 columns with 2 places after decimal.
4 	15.12 # Display 5 columns with 2 places after decimal.

# MYDATA3
Obs 	x
1 	$8,722.00 # Display 10 columns with leading $ sign, comma at thousandth place and zeros appended after decimal.
2 	$93.20 # Only 2 integers available before decimal and one available after the decimal. 3 $0.11	  # No integers available before decimal and two available after the decimal.
4 	$15.12    # Only 2 integers available before decimal and two available after the decimal.

Оператор в SAS - это символ, который используется в математическом, логическом или сравнительном выражении. Эти символы встроены в язык SAS, и многие операторы могут быть объединены в одном выражении для получения окончательного результата.

Ниже приведен список операторов категории SAS.

  • Арифметические операторы
  • Логические операторы
  • Операторы сравнения
  • Минимум / максимум операторов
  • Оператор конкатенации

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

Арифметические операторы

В таблице ниже подробно описаны арифметические операторы. Предположим, две переменные данныхV1 и V2с ценностями 8 и 4 соответственно.

Оператор Описание пример
+ Дополнение V1 + V2 = 12
- Вычитание V1-V2 = 4
* Умножение V1 * V2 = 32
/ Деление V1 / V2 = 2
** Возведение в степень V1 ** V2 = 4096

пример

DATA MYDATA1;
input @1 COL1 4.2	@7 COL2 3.1; 
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11  11
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Логические операторы

В таблице ниже подробно описаны логические операторы. Эти операторы оценивают истинное значение выражения. Таким образом, результат логических операторов всегда равен 1 или 0. Предположим, что две переменные данныхV1 и V2с ценностями 8 и 4 соответственно.

Оператор Описание пример
& Оператор AND. Если оба значения данных оцениваются как истинные, то результат равен 1, иначе - 0. (V1> 2 & V2> 3) дает 0.
| Оператор OR. Если какое-либо из значений данных оценивается как истина, то результат равен 1, иначе он равен 0. (V1> 9 и V2> 3) равно 1.
~ Оператор НЕ. Результат оператора NOT в форме выражения, значение которого равно FALSE или отсутствующее значение равно 1, иначе это 0. НЕ (V1> 3) равно 1.

пример

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Операторы сравнения

В таблице ниже подробно описаны операторы сравнения. Эти операторы сравнивают значения переменных, и результатом является значение истинности, представленное 1 для ИСТИНА и 0 для Ложь. Предположим, две переменные данныхV1 и V2с ценностями 8 и 4 соответственно.

Оператор Описание пример
знак равно Оператор EQUAL. Если оба значения данных равны, результатом будет 1, иначе - 0. (V1 = 8) дает 1.
^ = Оператор НЕ РАВНО. Если оба значения данных не равны, результатом будет 1, иначе - 0. (V1 ^ = V2) дает 1.
< МЕНЬШЕ, ЧЕМ Оператор. (V2 <V2) дает 1.
<= МЕНЬШЕ или РАВНО Оператор. (V2 <= 4) дает 1.
> БОЛЬШЕ, ЧЕМ Оператор. (V2> V1) дает 1.
> = БОЛЬШЕ, ЧЕМ или РАВНО Оператор. (V2> = V1) дает 0.
В Оператор IN. Если значение переменной равно любому из значений в данном списке значений, тогда возвращается 1, иначе возвращается 0. V1 в (5,7,9,8) дает 1.

пример

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Минимум / максимум операторов

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

Оператор Описание пример
MIN Оператор MIN. Он возвращает минимальное значение из списка значений в строке. MIN (45,2,11,6,15,41) дает 11,6
МАКСИМУМ Оператор MAX. Он возвращает максимальное значение из списка значений в строке. MAX (45,2,11,6,15,41) дает 45,2

пример

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1 @12 COL3 6.3; 
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11  11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Оператор конкатенации

В таблице ниже подробно описаны операторы конкатенации. Этот оператор объединяет два или более строковых значения. Возвращается односимвольное значение.

Оператор Описание пример
|| Оператор конкатенации. Он возвращает объединение двух или более значений. «Привет» || World 'дает Hello World

пример

DATA MYDATA1;
input  COL1 $	COL2 $ COL3 $; 
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;

Запустив приведенный выше код, мы получаем следующий результат.

Приоритет операторов

Приоритет операторов указывает порядок оценки нескольких операторов, присутствующих в сложном выражении. В таблице ниже описан порядок приоритета в группе операторов.

Группа порядок Символы
Группа I Справа налево ** + - НЕ МИН МАКС
II группа Слева направо * /
III группа Слева направо + -
IV группа Слева направо ||
Группа V Слева направо <<= => =>

Могут возникнуть ситуации, когда блок кода нужно выполнить несколько раз. Как правило, операторы выполняются последовательно - сначала выполняется первый оператор в функции, затем второй и т. Д. Но если вы хотите, чтобы один и тот же набор операторов выполнялся снова и снова, нам нужна помощь Loops.

В SAS цикл выполняется с помощью оператора DO. Его еще называютDO Loop. Ниже приводится общая форма операторов цикла DO в SAS.

Диаграмма потока

Ниже приведены типы контуров DO в SAS.

Sr.No. Тип и описание петли
1 DO Index.

Цикл продолжается от начального значения до конечного значения индексной переменной.

2 ДЕЛАТЬ ПОКА.

Цикл продолжается до тех пор, пока условие while не станет ложным.

3 ДЕЛАЙТЕ ПОКА.

Цикл продолжается до тех пор, пока условие UNTIL не станет истинным.

Структуры принятия решений требуют, чтобы программист указал одно или несколько условий, которые должны быть оценены или протестированы программой, а также оператор или операторы, которые должны быть выполнены, если условие определено как выполняемое. true, и, необязательно, другие операторы, которые должны быть выполнены, если условие определено как false.

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

SAS предоставляет следующие типы заявлений о принятии решений. Щелкните следующие ссылки, чтобы проверить их детали.

Sr.No. Тип и описание заявления
1 Заявление ЕСЛИ.

An if statementсостоит из условия. Если условие истинно, то выбираются конкретные данные.

2 IF-THEN-ELSE Заявление.

An if statement за которым следует оператор else, который выполняется, когда логическое условие ложно.

3 IF-THEN-ELSE-IF Заявление.

An if statement за которым следует оператор else, за которым снова следует еще одна пара операторов IF-THEN.

4 Заявление IF-THEN-DELETE.

An if statement состоит из условия, которое, если оно истинно, удаляет определенные данные из наблюдений.

SAS имеет большое количество встроенных функций, которые помогают анализировать и обрабатывать данные. Эти функции используются как часть операторов DATA. Они принимают переменные данных в качестве аргументов и возвращают результат, который сохраняется в другой переменной. В зависимости от типа функции количество принимаемых аргументов может варьироваться. Некоторые функции принимают нулевые аргументы, в то время как другие принимают фиксированное количество переменных. Ниже приведен список типов функций, которые предоставляет SAS.

Синтаксис

Общий синтаксис использования функции в SAS приведен ниже.

FUNCTIONNAME(argument1, argument2...argumentn)

Здесь аргумент может быть константой, переменной, выражением или другой функцией.

Категории функций

В зависимости от использования функции в SAS классифицируются следующим образом.

  • Mathematical
  • Дата и время
  • Character
  • Truncation
  • Miscellaneous

Математические функции

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

Примеры

В приведенной ниже программе SAS показано использование некоторых важных математических функций.

data Math_functions;

v1=21; v2=42; v3=13; v4=10; v5=29;

/* Get Maximum value */
max_val = MAX(v1,v2,v3,v4,v5);

/* Get Minimum value */
min_val = MIN (v1,v2,v3,v4,v5);

/* Get Median value */
med_val = MEDIAN (v1,v2,v3,v4,v5);

/* Get a random number */
rand_val = RANUNI(0);

/* Get Square root of sum of the values */
SR_val= SQRT(sum(v1,v2,v3,v4,v5));

proc print data = Math_functions noobs;
run;

Когда приведенный выше код запускается, мы получаем следующий вывод -

Функции даты и времени

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

Примеры

В приведенной ниже программе SAS показано использование функций даты и времени.

data date_functions;
INPUT @1 date1 date9. @11 date2 date9.;
format date1 date9.  date2 date9.;

/* Get the interval between the dates in years*/
Years_ = INTCK('YEAR',date1,date2);

/* Get the interval between the dates in months*/
months_ = INTCK('MONTH',date1,date2);

/* Get the week day from the date*/
weekday_ =  WEEKDAY(date1);

/* Get Today's date in SAS date format */
today_ = TODAY();

/* Get current time in SAS time format */
time_ = time();
DATALINES;
21OCT2000 16AUG1998
01MAR2009 11JUL2012
;
proc print data = date_functions noobs;
run;

Когда приведенный выше код запускается, мы получаем следующий вывод -

Функции персонажа

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

Примеры

В приведенной ниже программе SAS показано использование символьных функций.

data character_functions;

/* Convert the string into lower case */
lowcse_ = LOWCASE('HELLO');
  
/* Convert the string into upper case */
upcase_ = UPCASE('hello');
  
/* Reverse the string */
reverse_ = REVERSE('Hello');
  
/* Return the nth word */
nth_letter_ = SCAN('Learn SAS Now',2);
run;

proc print data = character_functions noobs;
run;

Когда приведенный выше код запускается, мы получаем следующий вывод -

Функции усечения

Это функции, используемые для усечения числовых значений.

Примеры

В приведенной ниже программе SAS показано использование функций усечения.

data trunc_functions;

/* Nearest greatest integer */
ceil_ = CEIL(11.85);
  
/* Nearest greatest integer */
floor_ = FLOOR(11.85);
  
/* Integer portion of a number */
int_ = INT(32.41);
  
/* Round off to nearest value */
round_ = ROUND(5621.78);
run;

proc print data = trunc_functions noobs;
run;

Когда приведенный выше код запускается, мы получаем следующий вывод -

Разные функции

Давайте теперь разберемся с различными функциями SAS на некоторых примерах.

Примеры

В приведенной ниже программе SAS показано использование различных функций.

data misc_functions;

/* Nearest greatest integer */
state2=zipstate('01040');
 
/* Amortization calculation */
payment = mort(50000, . , .10/12,30*12);

proc print data = misc_functions noobs;
run;

Когда приведенный выше код запускается, мы получаем следующий вывод -

Методы ввода используются для чтения необработанных данных. Необработанные данные могут быть из внешнего источника или из потоковых данных. Оператор ввода создает переменную с именем, которое вы назначаете каждому полю. Итак, вам нужно создать переменную в операторе ввода. Эта же переменная будет отображаться в выходных данных SAS Dataset. Ниже приведены различные методы ввода, доступные в SAS.

  • Метод ввода списка
  • Именованный метод ввода
  • Метод ввода столбца
  • Форматированный метод ввода

Подробности каждого метода ввода описаны ниже.

Метод ввода списка

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

пример

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

DATA TEMP;
INPUT   EMPID ENAME $ DEPT $ ;
DATALINES;
1 Rick  IT
2 Dan  OPS
3 Tusar  IT
4 Pranab  OPS
5 Rasmi  FIN
;
PROC PRINT DATA = TEMP;
RUN;

Запустив код bove, мы получаем следующий результат.

Именованный метод ввода

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

пример

Следующий код и выходные данные показывают использование именованного метода ввода.

DATA TEMP;
INPUT   
EMPID= ENAME= $ DEPT= $ ;
DATALINES;
EMPID = 1 ENAME = Rick  DEPT = IT
EMPID = 2 ENAME = Dan  DEPT = OPS
EMPID = 3 ENAME = Tusar  DEPT = IT
EMPID = 4 ENAME = Pranab  DEPT = OPS
EMPID = 5 ENAME = Rasmi  DEPT = FIN
;
PROC PRINT DATA = TEMP;
RUN;

Запустив код bove, мы получаем следующий результат.

Метод ввода столбца

В этом методе переменные перечислены с типами данных и шириной столбцов, которые определяют значение одного столбца данных. Например, если имя сотрудника содержит максимум 9 символов и каждое имя сотрудника начинается с 10-го столбца, тогда ширина столбца для переменной имени сотрудника будет 10-19.

пример

В следующем коде показано использование метода ввода столбца.

DATA TEMP;
INPUT   EMPID 1-3 ENAME $ 4-12 DEPT $ 13-16;
DATALINES;
14 Rick     IT 
241Dan      OPS 
30 Sanvi    IT 
410Chanchal OPS 
52 Piyu     FIN 
;
PROC PRINT DATA = TEMP;
RUN;

Когда мы выполняем приведенный выше код, он дает следующий результат -

Форматированный метод ввода

В этом методе переменные считываются из фиксированной начальной точки до тех пор, пока не встретится пробел. Поскольку каждая переменная имеет фиксированную начальную точку, количество столбцов между любой парой переменных становится шириной первой переменной. Символ '@n' используется для указания позиции начального столбца переменной как n-го столбца.

пример

В следующем коде показано использование метода форматированного ввода.

DATA TEMP;
INPUT   @1 EMPID $ @4 ENAME $ @13 DEPT $ ;
DATALINES;
14 Rick     IT 
241 Dan      OPS 
30 Sanvi    IT 
410 Chanchal OPS 
52 Piyu     FIN 
;
PROC PRINT DATA = TEMP;
RUN;

Когда мы выполняем приведенный выше код, он дает следующий результат -

SAS имеет мощную функцию программирования, которая называется Macrosчто позволяет нам избегать повторяющихся участков кода и использовать их снова и снова, когда это необходимо. Это также помогает создавать динамические переменные в коде, которые могут принимать разные значения для разных экземпляров выполнения одного и того же кода. Макросы также могут быть объявлены для блоков кода, которые будут повторно использоваться несколько раз аналогично макропеременным. Мы увидим оба из них в приведенных ниже примерах.

Макропеременные

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

Глобальная переменная макроса

Они называются глобальными макропеременными, потому что к ним может получить доступ любая программа SAS, доступная в среде SAS. Как правило, это переменные, присвоенные системой, к которым имеют доступ несколько программ. Общий пример - системная дата.

пример

Ниже приведен пример переменной SAS SYSDATE, которая представляет системную дату. Рассмотрим сценарий для печати системной даты в заголовке отчета SAS каждый день, когда отчет создается. В заголовке будут отображаться текущая дата и день без кодирования для них каких-либо значений. Мы используем встроенный набор данных SAS под названием CARS, доступный в библиотеке SASHELP.

proc print data = sashelp.cars;
where make = 'Audi' and type = 'Sports' ;
 TITLE "Sales as of &SYSDAY &SYSDATE";
run;

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

Переменная локального макроса

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

Синтаксис

Локальные переменные помечены синтаксисом ниже.

% LET (Macro Variable Name) = Value;

Здесь поле «Значение» может принимать любое числовое, текстовое значение или дату, как того требует программа. Имя переменной макроса - это любая допустимая переменная SAS.

пример

Переменные используются операторами SAS с использованием & в начале имени переменной добавляется символ. Ниже программа дает нам все наблюдения за маркой Audi и типом Sports. Если нам нужен результатdifferent make, нам нужно изменить значение переменной make_nameбез изменения какой-либо другой части программы. В случае программ переноса на эту переменную можно ссылаться снова и снова в любых операторах SAS.

%LET make_name = 'Audi';
%LET type_name = 'Sports';
proc print data = sashelp.cars;
where make = &make_name and type = &type_name ;
 TITLE "Sales as of &SYSDAY &SYSDATE";
run;

Когда приведенный выше код запускается, мы получаем тот же результат, что и предыдущая программа. Но давайте изменимtype name к 'Wagon'и запустить ту же программу. Мы получим следующий результат.

Макро программы

Макрос - это группа операторов SAS, на которые ссылаются по имени и которые можно использовать в программе где угодно, используя это имя. Он начинается с оператора% MACRO и заканчивается оператором% MEND.

Синтаксис

Локальные переменные объявляются с синтаксисом ниже.

# Creating a Macro program.
%MACRO <macro name>(Param1, Param2,….Paramn);

Macro Statements;

%MEND;

# Calling a Macro program.
%MacroName (Value1, Value2,…..Valuen);

пример

Приведенная ниже программа декорирует группу SAT-сетей под макросом с именем 'show_result'; Этот макрос вызывается другими операторами SAS.

%MACRO show_result(make_ , type_);
proc print data = sashelp.cars;
where make = "&make_" and type = "&type_" ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
%MEND;

%show_result(BMW,SUV);

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

Часто используемые макросы

SAS имеет много операторов MACRO, встроенных в язык программирования SAS. Они используются другими программами SAS без явного объявления их. Типичными примерами являются - завершение программы при выполнении какого-либо условия или запись значения переменной времени выполнения в журнал программы. Ниже приведены некоторые примеры.

Макрос% PUT

Этот оператор макроса записывает информацию о текстовой или макропеременной в журнал SAS. В приведенном ниже примере значение переменной «сегодня» записывается в журнал программы.

data _null_;
CALL SYMPUT ('today',
TRIM(PUT("&sysdate"d,worddate22.)));
run;
%put &today;

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

Макро% RETURN

Выполнение этого макроса вызывает нормальное завершение текущего выполняемого макроса, когда определенное условие оценивается как истинное. В приведенном ниже примере, когда значение переменной"val" становится 10, макрос завершается, иначе он продолжает.

%macro check_condition(val);
   %if &val = 10 %then %return;

   data p;
      x = 34.2;
   run;  

%mend check_condition;  

%check_condition(11)  ;

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

Макрос% END

Это определение макроса содержит %DO %WHILEцикл, который заканчивается, как требуется, оператором% END. В приведенном ниже примере макрос с именем test принимает пользовательский ввод и запускает цикл DO, используя это входное значение. Конец цикла DO достигается с помощью оператора% end, а конец макроса достигается с помощью оператора% mend.

%macro test(finish);
   %let i = 1;
   %do %while (&i <&finish);
      %put the value of i is &i;
      %let i=%eval(&i+1);
   %end;
%mend test;
%test(5)

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

В SAS даты - это частный случай числовых значений. Каждому дню присваивается определенное числовое значение, начиная с 1 января 1960 года. Этой дате присваивается значение даты 0, а следующей дате присваивается значение даты 1 и так далее. Предыдущие дни до этой даты представлены цифрами -1, -2 и так далее. При таком подходе SAS может представлять любую дату в будущем и любую дату в прошлом.

Когда SAS считывает данные из источника, он преобразует считанные данные в определенный формат даты в соответствии с заданным форматом даты. Переменная для хранения значения даты объявляется с необходимой информацией. Дата вывода отображается с использованием форматов данных вывода.

Информация о дате SAS

Исходные данные можно правильно прочитать, используя конкретную информацию о дате, как показано ниже. Цифра в конце информации указывает минимальную ширину строки даты, которая должна быть полностью прочитана с использованием информации. Меньшая ширина даст неверный результат. с SAS V9 есть общий формат датыanydtdte15. который может обрабатывать любой ввод даты.

Дата ввода Ширина даты Информат
11.03.2014 10 mmddyy10.
11.03.14 8 mmddyy8.
11 декабря 2012 г. 20 worddate20.
14мар2011 9 дата9.
14-мар-2011 11 дата11.
14-мар-2011 15 anydtdte15.

пример

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

DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10.   ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;

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

Формат вывода даты SAS

После прочтения даты могут быть преобразованы в другой формат в соответствии с требованиями дисплея. Это достигается с помощью оператора формата для типов даты. Они принимают те же форматы, что и информационные.

пример

В приведенном ниже примере дата читается в одном формате, но отображается в другом формате.

DATA TEMP;
INPUT  @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format  DOJ1 date11.  DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998 
;
PROC PRINT DATA = TEMP;
RUN;

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

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

  • Набор данных ASCII (текст)
  • Данные с разделителями
  • Данные Excel
  • Иерархические данные

Чтение набора данных ASCII (текст)

Это файлы, которые содержат данные в текстовом формате. Данные обычно разделяются пробелом, но также могут быть разные типы разделителей, которые может обрабатывать SAS. Рассмотрим файл ASCII, содержащий данные о сотрудниках. Мы читаем этот файл, используяInfile выписка доступна в SAS.

пример

В приведенном ниже примере мы читаем файл данных с именем emp_data.txt из местной среды.

data TEMP; 
   infile 
   '/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt'; 
   input empID empName $ Salary Dept $ DOJ date9. ;
   format DOJ date9.;
   run;
   PROC PRINT DATA = TEMP;
RUN;

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

Чтение данных с разделителями

Это файлы данных, в которых значения столбцов разделены символом-разделителем, например запятой или конвейером и т. Д. В этом случае мы используем dlm вариант в infile заявление.

пример

В приведенном ниже примере мы читаем файл данных с именем emp.csv из локальной среды.

data TEMP; 
   infile 
   '/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=","; 
   input empID empName $ Salary Dept $ DOJ date9. ;
   format DOJ date9.;
   run;
   PROC PRINT DATA = TEMP;
RUN;

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

Чтение данных Excel

SAS может напрямую читать файл Excel с помощью средства импорта. Как видно из главы «Наборы данных SAS», он может обрабатывать самые разные типы файлов, включая MS Excel. Предполагая, что файл emp.xls доступен локально в среде SAS.

пример

FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;

PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;

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

Чтение иерархических файлов

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

В приведенном ниже файле перечислены данные о каждом сотруднике каждого отдела. Первая запись - это запись заголовка, в которой упоминается отдел, а следующая запись - несколько записей, начинающихся с DTLS, - это запись сведений.

DEPT:IT 
DTLS:1:Rick:623 
DTLS:3:Mike:611 
DTLS:6:Tusar:578 
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452

пример

Чтобы прочитать иерархический файл, мы используем приведенный ниже код, в котором мы идентифицируем запись заголовка с помощью предложения IF и используем цикл do для обработки записи сведений.

data employees(drop = Type);
   length Type $ 3  Department
      empID $ 3 empName $ 10 Empsal 3 ;
   retain Department;
   infile 
   '/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
   input Type $ @; if Type = 'DEP' then input Department $;
   else do;
      input empID  empName $ Empsal ;
      output;
   end;
run;

   PROC PRINT DATA = employees;
RUN;

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

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

ПРОЦЕСС ЭКСПОРТА

Это встроенная процедура SAS, используемая для экспорта наборов данных SAS для записи данных в файлы различных форматов.

Синтаксис

Основной синтаксис для написания процедуры в SAS -

PROC EXPORT 
DATA = libref.SAS data-set (SAS data-set-options)
OUTFILE = "filename" 
DBMS = identifier LABEL(REPLACE);

Ниже приводится описание используемых параметров -

  • SAS data-setимя экспортируемого набора данных. SAS может обмениваться наборами данных из своей среды с другими приложениями, создавая файлы, которые могут быть прочитаны разными операционными системами. Он использует встроенную функцию ЭКСПОРТА для вывода файлов наборов данных в различных форматах. В этой главе мы увидим запись наборов данных SAS с использованиемproc export вместе с вариантами dlm и dbms.

  • SAS data-set-options используется для указания подмножества экспортируемых столбцов.

  • filename это имя файла, в который записываются данные.

  • identifier используется для обозначения разделителя, который будет записан в файл.

  • LABEL опция используется для упоминания имени переменных, записанных в файл.

пример

Мы будем использовать набор данных SAS с именем cars, доступный в библиотеке SASHELP. Мы экспортируем его как текстовый файл с разделителями-пробелами с кодом, как показано в следующей программе.

proc export data = sashelp.cars
   outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.txt'
   dbms = dlm;
   delimiter = ' ';
   run;

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

Запись файла CSV

Чтобы записать файл с разделителями-запятыми, мы можем использовать опцию dlm со значением "csv". Следующий код записывает файл car_data.csv.

proc export data = sashelp.cars
   outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.csv'
   dbms = csv;
   run;

При выполнении приведенного выше кода мы получаем следующий результат.

Написание файла с разделителями табуляции

Чтобы записать файл с разделителями табуляции, мы можем использовать dlmвариант со значением «вкладка». Следующий код записывает файлcar_tab.txt.

proc export data = sashelp.cars
   outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_tab.txt'
   dbms = csv;
   run;

Данные также можно записать в виде HTML-файла, который мы увидим в главе о системе доставки вывода.

Несколько наборов данных SAS можно объединить в один набор данных с помощью SETзаявление. Общее количество наблюдений в объединенном наборе данных является суммой количества наблюдений в исходных наборах данных. Порядок наблюдений - последовательный. За всеми наблюдениями из первого набора данных следуют все наблюдения из второго набора данных и так далее.

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

Синтаксис

Базовый синтаксис оператора SET в SAS -

SET data-set 1 data-set 2 data-set 3.....;

Ниже приводится описание используемых параметров -

  • data-set1,data-set2 - имена наборов данных, записанные одно за другим.

пример

Рассмотрим данные о сотрудниках организации, которые доступны в двух разных наборах данных: один для ИТ-отдела, а другой для не-ИТ-отдела. Чтобы получить полную информацию обо всех сотрудниках, мы объединяем оба набора данных с помощью оператора SET, показанного ниже.

DATA ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
1 Rick 623.3 
3 Mike 611.5 
6 Tusar 578.6 
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT NON_ITDEPT; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

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

Сценарии

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

Различное количество переменных

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

пример

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

DATA ITDEPT; 
   INPUT empid name $ salary DOJ date9.  ; 
DATALINES; 
1 Rick 623.3 02APR2001
3 Mike 611.5 21OCT2000
6 Tusar 578.6 01MAR2009  
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT NON_ITDEPT; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

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

Другое имя переменной

В этом сценарии наборы данных имеют одинаковое количество переменных, но имена переменных у них различаются. В этом случае обычная конкатенация произведет все переменные в наборе результатов и даст недостающие результаты для двух переменных, которые различаются. Хотя мы не можем изменять имя переменной в исходных наборах данных, мы можем применить функцию ПЕРЕИМЕНОВАТЬ в объединенном наборе данных, который мы создаем. Это даст тот же результат, что и обычная конкатенация, но, конечно, с одним новым именем переменной вместо двух разных имен переменных, присутствующих в исходном наборе данных.

пример

В приведенном ниже примере набора данных ITDEPT имеет имя переменной ename тогда как набор данных NON_ITDEPT имеет имя переменной empname.Но обе эти переменные представляют один и тот же тип (символ). Мы применяемRENAME в операторе SET, как показано ниже.

DATA ITDEPT; 
   INPUT empid ename $ salary  ; 
DATALINES; 
1 Rick 623.3 
3 Mike 611.5 
6 Tusar 578.6 
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid empname $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT(RENAME =(ename = Employee) ) NON_ITDEPT(RENAME =(empname = Employee) ); 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

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

Различная переменная длина

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

пример

В приведенном ниже примере переменная enameимеет длину 5 в первом наборе данных и 7 во втором. При объединении мы применяем оператор LENGTH в объединенном наборе данных, чтобы установить длину ename равной 7.

DATA ITDEPT; 
   INPUT  empid 1-2 ename $ 3-7 salary 8-14  ; 
DATALINES; 
1 Rick  623.3 
3 Mike  611.5 
6 Tusar 578.6 
; 
RUN;
DATA NON_ITDEPT; 
   INPUT  empid 1-2 ename $ 3-9 salary 10-16 ; DATALINES; 2 Dan 515.2 4 Ryan 729.1 5 Gary 843.25 7 Pranab 632.8 8 Rasmi 722.5 RUN; DATA All_Dept; LENGTH ename $ 7   ;
   SET ITDEPT  NON_ITDEPT ; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

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

Несколько наборов данных SAS можно объединить на основе определенной общей переменной, чтобы получить единый набор данных. Это делается с помощьюMERGE заявление и BYзаявление. Общее количество наблюдений в объединенном наборе данных часто меньше суммы количества наблюдений в исходных наборах данных. Это связано с тем, что переменные, образующие оба набора данных, объединяются в одну запись на основе совпадения в значении общей переменной.

Ниже приведены два предварительных условия для объединения наборов данных:

  • наборы входных данных должны иметь по крайней мере одну общую переменную для объединения.
  • наборы входных данных должны быть отсортированы по общей (ым) переменной (ам), которая будет использоваться для объединения.

Синтаксис

Базовый синтаксис для оператора MERGE и BY в SAS -

MERGE Data-Set 1 Data-Set 2
BY Common Variable

Ниже приводится описание используемых параметров -

  • Data-set1,Data-set2 - имена наборов данных, записанные друг за другом.

  • Common Variable - это переменная, на основе совпадающих значений которой будут объединены наборы данных.

Объединение данных

Давайте разберемся с объединением данных на примере.

пример

Рассмотрим два набора данных SAS, один из которых содержит идентификатор сотрудника с именем и зарплатой, а другой - идентификатор сотрудника с идентификатором сотрудника и отделом. В этом случае, чтобы получить полную информацию по каждому сотруднику, мы можем объединить эти два набора данных. В окончательном наборе данных по-прежнему будет одно наблюдение для каждого сотрудника, но он будет содержать переменные как зарплаты, так и отдела.

# Data set 1	
ID NAME SALARY	
1 Rick 623.3		 
2 Dan 515.2 		
3 Mike 611.5 		
4 Ryan 729.1 
5 Gary 843.25 
6 Tusar 578.6 
7 Pranab 632.8 
8 Rasmi 722.5 

# Data set 2
ID DEPT
1 IT 
2 OPS
3 IT 
4 HR 
5 FIN 
6 IT 
7 OPS
8 FIN 

# Merged data set
ID NAME SALARY DEPT	
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

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

DATA SALARY; 
   INPUT empid name $ salary ; DATALINES; 1 Rick 623.3 2 Dan 515.2 3 Mike 611.5 4 Ryan 729.1 5 Gary 843.25 6 Tusar 578.6 7 Pranab 632.8 8 Rasmi 722.5 ; RUN; DATA DEPT; INPUT empid dEPT $ ; 
DATALINES; 
1 IT 
2 OPS
3 IT 
4 HR 
5 FIN 
6 IT 
7 OPS
8 FIN 
;
RUN; 
DATA All_details;
MERGE SALARY DEPT;
BY (empid);
RUN;
PROC PRINT DATA = All_details; 
RUN;

Отсутствующие значения в столбце соответствия

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

пример

ID NAME SALARY DEPT	
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 .		.		IT
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   .
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

Объединение только совпадений

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

пример

В приведенном ниже примере IN= значение сохраняет только наблюдения, где значения из обоих наборов данных SALARY и DEPT соответствие.

DATA All_details;
MERGE SALARY(IN = a) DEPT(IN = b);
BY (empid);
IF a = 1 and b = 1;
RUN;
PROC PRINT DATA = All_details; 
RUN;

После выполнения указанной выше программы SAS с указанной выше измененной частью мы получаем следующий результат.

1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

Подмножество набора данных SAS означает извлечение части набора данных путем выбора меньшего количества переменных или меньшего количества наблюдений или того и другого. В то время как подмножество переменных выполняется с помощьюKEEP и DROP оператор, подмножество наблюдений выполняется с использованием DELETE заявление.

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

Подмножество переменных

В этом методе мы извлекаем только несколько переменных из всего набора данных.

Синтаксис

Основной синтаксис для переменных подустановки в SAS -

KEEP var1 var2 ... ;
DROP var1 var2 ... ;

Ниже приводится описание используемых параметров -

  • var1 and var2 - это имена переменных из набора данных, которые необходимо сохранить или удалить.

пример

Рассмотрим приведенный ниже набор данных SAS, содержащий сведения о сотрудниках организации. Если нас интересует только получение значений Name и Department из набора данных, мы можем использовать приведенный ниже код.

DATA Employee; 
   INPUT empid ename $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3 	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
DATA OnlyDept;
   SET Employee;
   KEEP ename DEPT;
   RUN;
   PROC PRINT DATA = OnlyDept; 
RUN;

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

Тот же результат можно получить, отбросив ненужные переменные. Код ниже иллюстрирует это.

DATA Employee; 
   INPUT empid ename $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3 	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
DATA OnlyDept;
   SET Employee;
   DROP empid salary;
   RUN;
   PROC PRINT DATA = OnlyDept; 
RUN;

Подмножество наблюдений

В этом методе мы извлекаем только несколько наблюдений из всего набора данных.

Синтаксис

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

Синтаксис для наблюдений подпараметров -

IF Var Condition THEN DELETE ;

Ниже приводится описание используемых параметров -

  • Var - это имя переменной, на основании значения которой наблюдения будут удалены с использованием указанного условия.

пример

Рассмотрим приведенный ниже набор данных SAS, содержащий сведения о сотрудниках организации. Если нас интересуют только данные для сотрудников с зарплатой больше 700, то мы используем приведенный ниже код.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
DATA OnlyDept;
   SET Employee;
   IF salary < 700 THEN DELETE;
   RUN;
   PROC PRINT DATA = OnlyDept; 
RUN;

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

Иногда мы предпочитаем отображать проанализированные данные в формате, отличном от формата, в котором они уже присутствуют в наборе данных. Например, мы хотим добавить знак доллара и два десятичных знака к переменной, которая содержит информацию о цене. Или мы можем захотеть отобразить текстовую переменную в верхнем регистре. Мы можем использоватьFORMAT применять встроенные форматы SAS и PROC FORMATзаключается в применении пользовательских форматов. Также один формат может применяться к нескольким переменным.

Синтаксис

Основной синтаксис для применения встроенных форматов SAS -

format variable name format name

Ниже приводится описание используемых параметров -

  • variable name имя переменной, используемое в наборе данных.

  • format name формат данных, который будет применяться к переменной.

пример

Давайте рассмотрим приведенный ниже набор данных SAS, содержащий сведения о сотрудниках организации. Мы хотим отображать все имена в верхнем регистре. Вformatstatement используется для этого.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
   format name $upcase9. ;
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
   PROC PRINT DATA = Employee; 
RUN;

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

Использование PROC FORMAT

Мы также можем использовать PROC FORMATдля форматирования данных. В приведенном ниже примере мы присваиваем новые значения переменной DEPT, расширяя название отдела.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; DATALINES; 1 Rick 623.3 IT 2 Dan 515.2 OPS 3 Mike 611.5 IT 4 Ryan 729.1 HR 5 Gary 843.25 FIN 6 Tusar 578.6 IT 7 Pranab 632.8 OPS 8 Rasmi 722.5 FIN ; proc format; value $DEP 'IT' = 'Information Technology'
      'OPS'= 'Operations' ;
RUN;
   PROC PRINT DATA = Employee; 
   format name $upcase9. DEPT $DEP.; 
RUN;

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

SAS предлагает обширную поддержку большинства популярных реляционных баз данных с помощью SQL-запросов внутри программ SAS. Большинство изANSI SQLсинтаксис поддерживается. ПроцедураPROC SQLиспользуется для обработки операторов SQL. Эта процедура может не только возвращать результат SQL-запроса, но и создавать таблицы и переменные SAS. Пример всех этих сценариев описан ниже.

Синтаксис

Основной синтаксис для использования PROC SQL в SAS -

PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;

Ниже приводится описание используемых параметров -

  • SQL-запрос написан под оператором PROC SQL, за которым следует оператор QUIT.

Ниже мы увидим, как эту процедуру SAS можно использовать для CRUD (Создание, чтение, обновление и удаление) операций в SQL.

Операция создания SQL

Используя SQL, мы можем создать новый набор данных из необработанных данных. В приведенном ниже примере сначала мы объявляем набор данных с именем TEMP, содержащий необработанные данные. Затем мы пишем SQL-запрос для создания таблицы из переменных этого набора данных.

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;

PROC PRINT data = EMPLOYEES;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Операция чтения SQL

Операция чтения в SQL включает в себя написание SQL-запросов SELECT для чтения данных из таблиц. В приведенном ниже примере программа запрашивает набор данных SAS с именем CARS, доступный в библиотеке SASHELP. Запрос выбирает некоторые столбцы набора данных.

PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM 
SASHELP.CARS
;
QUIT;

Когда приведенный выше код выполняется, мы получаем следующий результат -

SQL SELECT с предложением WHERE

Приведенная ниже программа запрашивает набор данных CARS с whereпункт. В результате мы получаем только наблюдения, которые имеют марку Audi и тип Sports.

PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM 
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Операция SQL UPDATE

Мы можем обновить таблицу SAS с помощью оператора SQL Update. Ниже мы сначала создаем новую таблицу с именем EMPLOYEES2, а затем обновляем ее с помощью оператора SQL UPDATE.

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;

PROC SQL;
UPDATE EMPLOYEES2
      SET SALARY = SALARY*1.25;
   QUIT;
      PROC PRINT data = EMPLOYEES2;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Операция SQL DELETE

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

PROC SQL;
DELETE FROM EMPLOYEES2
      WHERE SALARY > 900;
QUIT;
      PROC PRINT data = EMPLOYEES2;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Вывод программы SAS можно преобразовать в более удобные для пользователя формы, например .html или же PDF. Это делается с помощью ODSвыписка доступна в SAS. ODS означаетoutput delivery system.Он в основном используется для форматирования выходных данных программы SAS для получения хороших отчетов, на которые удобно смотреть и понимать. Это также помогает делиться выводом с другими платформами и программным обеспечением. Он также может объединять результаты нескольких операторов PROC в одном файле.

Синтаксис

Основной синтаксис для использования оператора ODS в SAS -

ODS outputtype
PATH path name
FILE = Filename and Path
STYLE = StyleName
;
PROC some proc
;
ODS outputtype CLOSE;

Ниже приводится описание используемых параметров -

  • PATHпредставляет оператор, используемый в случае вывода HTML. В других типах вывода мы включаем путь в имя файла.

  • Style представляет один из встроенных стилей, доступных в среде SAS.

Создание вывода HTML

Мы создаем HTML-вывод с помощью оператора ODS HTML. В приведенном ниже примере мы создаем html-файл по желаемому пути. Применяем стиль, доступный в библиотеке стилей. Мы видим выходной файл по указанному пути и можем загрузить его для сохранения в среде, отличной от среды SAS. Обратите внимание, что у нас есть два оператора SQL proc, и оба их вывода записываются в один файл.

ODS HTML 
   PATH = '/folders/myfolders/sasuser.v94/TutorialsPoint/'
   FILE = 'CARS2.html'
   STYLE = EGDefault;
proc SQL;
select make, model, invoice 
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;

proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;

ODS HTML CLOSE;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Создание вывода PDF

В приведенном ниже примере мы создаем файл PDF по желаемому пути. Применяем стиль, доступный в библиотеке стилей. Мы видим выходной файл по указанному пути и можем загрузить его для сохранения в среде, отличной от среды SAS. Обратите внимание, что у нас есть два оператора SQL proc, и оба их вывода записываются в один файл.

ODS PDF 
   FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS2.pdf'
   STYLE = EGDefault;
proc SQL;
select make, model, invoice 
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;

proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;

ODS PDF CLOSE;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Создание вывода TRF (Word)

В приведенном ниже примере мы создаем файл RTF по желаемому пути. Применяем стиль, доступный в библиотеке стилей. Мы видим выходной файл по указанному пути и можем загрузить его для сохранения в среде, отличной от среды SAS. Обратите внимание, что у нас есть два оператора SQL proc, и оба их вывода записываются в один файл.

ODS RTF 
FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS.rtf'
STYLE = EGDefault;
proc SQL;
select make, model, invoice 
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;

proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;

ODS rtf CLOSE;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Моделирование - это вычислительный метод, который использует повторяющиеся вычисления на множестве различных случайных выборок для оценки статистической величины. Используя SAS, мы можем моделировать сложные данные, которые имеют определенные статистические свойства в реальной системе. Мы используем программное обеспечение для построения модели системы и численного генерирования данных, которые можно использовать для лучшего понимания поведения реальной системы. Часть искусства проектирования компьютерной имитационной модели состоит в том, чтобы решить, какие аспекты реальной системы необходимо включить в модель, чтобы данные, генерируемые моделью, можно было использовать для принятия эффективных решений. Из-за этой сложности в SAS есть специальный программный компонент для моделирования.

Программный компонент SAS, который используется при создании моделирования SAS, называется SAS Simulation Studio. Его графический пользовательский интерфейс предоставляет полный набор инструментов для построения, выполнения и анализа результатов моделирования дискретных событий.

Ниже перечислены различные типы статистических распределений, к которым можно применить моделирование SAS.

  • МОДЕЛИРОВАНИЕ ДАННЫХ ИЗ НЕПРЕРЫВНОГО РАСПРЕДЕЛЕНИЯ
  • МОДЕЛИРОВАНИЕ ДАННЫХ ИЗ ДИСКРЕТНОГО РАСПРЕДЕЛЕНИЯ
  • МОДЕЛИРОВАНИЕ ДАННЫХ ИЗ СМЕСИ РАСПРЕДЕЛЕНИЙ
  • МОДЕЛИРОВАНИЕ ДАННЫХ ИЗ КОМПЛЕКСНОГО РАСПРЕДЕЛЕНИЯ
  • МОДЕЛИРОВАНИЕ ДАННЫХ ИЗ МНОГООБРАЗНОГО РАСПРЕДЕЛЕНИЯ
  • ПРИБЛИЗИТЕЛЬНОЕ РАСПРЕДЕЛЕНИЕ ПРОБ
  • ОЦЕНИТЬ ОЦЕНКИ РЕГРЕССИИ

Гистограмма - это графическое отображение данных с использованием полос разной высоты. Он группирует различные числа в наборе данных по множеству диапазонов. Он также представляет собой оценку вероятности распределения непрерывной переменной. В SASPROC UNIVARIATE используется для создания гистограмм с указанными ниже параметрами.

Синтаксис

Основной синтаксис для создания гистограммы в SAS -

PROC UNIVARAITE DATA = DATASET;
HISTOGRAM variables;
RUN;
  • DATASET это имя используемого набора данных.

  • variables - значения, используемые для построения гистограммы.

Простая гистограмма

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

пример

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

proc univariate data = sashelp.cars;
   histogram horsepower
   / midpoints = 176 to 350 by 50;
run;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Гистограмма с подгонкой кривой

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

пример

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

proc univariate data = sashelp.cars noprint;
histogram horsepower
/ 
normal ( 
   mu = est
   sigma = est
   color = blue
   w = 2.5 
)
barlabel = percent
midpoints = 70 to 550 by 50;
run;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Гистограмма представляет данные в виде прямоугольных столбцов, длина столбца которых пропорциональна значению переменной. SAS использует процедуруPROC SGPLOTдля создания гистограмм. На гистограмме мы можем рисовать как простые, так и составные столбцы. В столбчатой ​​диаграмме каждому столбцу можно присвоить свой цвет.

Синтаксис

Основной синтаксис для создания гистограммы в SAS -

PROC SGPLOT DATA = DATASET;
VBAR variables;
RUN;
  • DATASET - это имя используемого набора данных.

  • variables - значения, используемые для построения гистограммы.

Простая гистограмма

Простая гистограмма - это гистограмма, на которой переменная из набора данных представлена ​​в виде столбцов.

пример

Приведенный ниже сценарий создаст гистограмму, представляющую длину автомобилей в виде столбцов.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc SGPLOT data = work.cars1;
vbar length ;
title 'Lengths of cars';
run;
quit;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Гистограмма с накоплением

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

пример

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

proc SGPLOT data = work.cars1;
vbar length /group = type ;
title 'Lengths of Cars by Types';
run;
quit;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Кластерная гистограмма

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

пример

Приведенный ниже скрипт создаст сгруппированную гистограмму, на которой длина автомобилей сгруппирована по типу автомобиля. Таким образом, мы видим две соседние полосы длиной 191, одну для типа автомобиля «Седан», а другую для типа автомобиля «Универсал». .

proc SGPLOT data = work.cars1;
vbar length /group = type GROUPDISPLAY = CLUSTER;
title 'Cluster of Cars by Types';
run;
quit;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Круговая диаграмма - это представление значений в виде срезов круга разного цвета. Срезы помечены, и числа, соответствующие каждому срезу, также представлены на диаграмме.

В SAS круговая диаграмма создается с использованием PROC TEMPLATE который принимает параметры для управления процентом, метками, цветом, заголовком и т. д.

Синтаксис

Основной синтаксис для создания круговой диаграммы в SAS -

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = variable /
            DATALABELLOCATION = OUTSIDE
            CATEGORYDIRECTION = CLOCKWISE
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = ' ';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
  • variable это значение, для которого мы создаем круговую диаграмму.

Простая круговая диаграмма

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

пример

В приведенном ниже примере каждый фрагмент представляет собой долю типа автомобиля от общего количества автомобилей.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
 FROM 
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type /
            DATALABELLOCATION = OUTSIDE
            CATEGORYDIRECTION = CLOCKWISE
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Круговая диаграмма с метками данных

На этой круговой диаграмме мы представляем как дробное, так и процентное значение для каждого среза. Мы также меняем расположение метки, чтобы она была внутри диаграммы. Стиль отображения диаграммы изменяется с помощью параметра DATASKIN. Он использует один из встроенных стилей, доступных в среде SAS.

пример

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type /
            DATALABELLOCATION = INSIDE
            DATALABELCONTENT = ALL
            CATEGORYDIRECTION = CLOCKWISE
            DATASKIN = SHEEN 
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Сгруппированная круговая диаграмма

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

пример

В приведенном ниже примере мы группируем диаграмму по переменной с именем «Make». Поскольку доступны два значения («Audi» и «BMW»), мы получаем два концентрических круга, каждый из которых представляет срезы типов автомобилей своей марки.

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type / Group = make
            DATALABELLOCATION = INSIDE
            DATALABELCONTENT = ALL
            CATEGORYDIRECTION = CLOCKWISE
            DATASKIN = SHEEN 
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Диаграмма рассеяния - это тип графика, который использует значения двух переменных, нанесенных на декартову плоскость. Обычно он используется для выяснения взаимосвязи между двумя переменными. В SAS мы используемPROC SGSCATTER для создания диаграмм рассеяния.

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

Синтаксис

Основной синтаксис для создания диаграммы рассеяния в SAS -

PROC sgscatter  DATA = DATASET;
   PLOT VARIABLE_1 * VARIABLE_2
   / datalabel = VARIABLE group = VARIABLE;
RUN;

Ниже приводится описание используемых параметров -

  • DATASET это имя набора данных.

  • VARIABLE это переменная, используемая из набора данных.

Простая диаграмма рассеяния

В простом графике рассеяния мы выбираем две переменные из набора данных и группируем их по третьей переменной. Мы также можем маркировать данные. Результат показывает, как две переменные разбросаны поCartesian plane.

пример

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM 
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;

TITLE 'Scatterplot - Two Variables';
PROC sgscatter  DATA = CARS1;
   PLOT horsepower*Invoice 
   / datalabel = make group = type grid;
   title 'Horsepower vs. Invoice for car makers by types';
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Диаграмма рассеяния с предсказанием

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

пример

proc sgscatter data = cars1; 
compare y = Invoice  x = (horsepower length)  
         / group = type  ellipse =(alpha = 0.05 type = predicted); 
title
'Average Invoice vs. horsepower for cars by length'; 
title2
'-- with 95% prediction ellipse --'
; 
format
Invoice dollar6.0;
run;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Матрица разброса

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

пример

PROC sgscatter  DATA = CARS1;
   matrix horsepower invoice length
   / group = type;

   title 'Horsepower vs. Invoice vs. Length for car makers by types';
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Коробчатая диаграмма - это графическое представление групп числовых данных через их квартили. Коробчатые диаграммы также могут иметь линии, идущие вертикально от прямоугольников (усов), указывающие на изменчивость за пределами верхнего и нижнего квартилей. Нижняя и верхняя части прямоугольника всегда являются первым и третьим квартилями, а полоса внутри прямоугольника всегда является вторым квартилем (медиана). В SAS простой Boxplot создается с использованиемPROC SGPLOT и коробчатая диаграмма с панелями создается с использованием PROC SGPANEL.

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

Синтаксис

Базовый синтаксис для создания блочной диаграммы в SAS -

PROC SGPLOT  DATA = DATASET;
   VBOX VARIABLE / category = VARIABLE;
RUN; 

PROC SGPANEL  DATA = DATASET;;
PANELBY VARIABLE;
   VBOX VARIABLE> / category = VARIABLE;
RUN;
  • DATASET - это имя используемого набора данных.

  • VARIABLE - значение, используемое для построения коробчатой ​​диаграммы.

Простая коробчатая диаграмма

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

пример

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

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

PROC SGPLOT  DATA = CARS1;
   VBOX horsepower 
   / category = type;

   title 'Horsepower of cars by types';
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Коробчатая диаграмма на вертикальных панелях

Мы можем разделить прямоугольные диаграммы переменной на множество вертикальных панелей (столбцов). Каждая панель содержит диаграммы для всех категориальных переменных. Но коробчатые диаграммы далее группируются с использованием другой третьей переменной, которая делит график на несколько панелей.

пример

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

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE;
   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Коробчатая диаграмма на горизонтальных панелях

Мы можем разделить Boxplots переменной на множество горизонтальных панелей (строк). Каждая панель содержит диаграммы для всех категориальных переменных. Но коробчатые диаграммы далее группируются с использованием другой третьей переменной, которая делит график на несколько панелей. В приведенном ниже примере мы обставили график панелями, используя переменную make. Поскольку есть два различных значения make, мы получаем две горизонтальные панели.

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE / columns = 1 novarname;

   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN;

Когда мы выполняем приведенный выше код, мы получаем следующий вывод -

Среднее арифметическое - это значение, полученное путем суммирования значений числовых переменных и последующего деления суммы на количество переменных. Его еще называют Средним. В SAS среднее арифметическое вычисляется с использованиемPROC MEANS. Используя эту процедуру SAS, мы можем найти среднее значение всех переменных или некоторых переменных набора данных. Мы также можем формировать группы и находить среднее значение переменных значений, характерных для этой группы.

Синтаксис

Основной синтаксис для вычисления среднего арифметического в SAS -

PROC MEANS DATA = DATASET;
CLASS Variables ;
VAR Variables;

Ниже приводится описание используемых параметров -

  • DATASET - это имя используемого набора данных.

  • Variables - это имя переменной из набора данных.

Среднее значение набора данных

Среднее значение каждой числовой переменной в наборе данных вычисляется с помощью PROC, предоставляя только имя набора данных без каких-либо переменных.

пример

В приведенном ниже примере мы находим среднее значение всех числовых переменных в наборе данных SAS с именем CARS. Мы указываем максимальное количество цифр после десятичного разряда равным 2, а также находим сумму этих переменных.

PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC=2;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий вывод -

Среднее значение выбранных переменных

Мы можем получить среднее значение некоторых переменных, указав их имена в var вариант.

пример

Ниже мы вычисляем среднее значение трех переменных.

PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2 ;
var horsepower invoice EngineSize;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий вывод -

Среднее по классу

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

пример

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

PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2;
class make type;
var horsepower;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий вывод -

Стандартное отклонение (SD) - это мера того, насколько разнообразны данные в наборе данных. Математически он измеряет, насколько каждое значение удалено или близко от среднего значения набора данных. Значение стандартного отклонения, близкое к 0, указывает, что точки данных имеют тенденцию быть очень близкими к среднему значению набора данных, а высокое стандартное отклонение указывает, что точки данных распределены по более широкому диапазону значений.

В SAS значения SD измеряются с помощью PROC MEAN, а также PROC SURVEYMEANS.

Использование PROC MEANS

Для измерения SD с помощью proc meansмы выбираем опцию STD на шаге PROC. Он выводит значения SD для каждой числовой переменной, присутствующей в наборе данных.

Синтаксис

Основной синтаксис для вычисления стандартного отклонения в SAS -

PROC means DATA = dataset STD;

Ниже приводится описание используемых параметров -

  • Dataset - это имя набора данных.

пример

В приведенном ниже примере мы создаем набор данных CARS1 из набора данных CARS в библиотеке SASHELP. Мы выбираем вариант STD с шагом PROC means.

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc means data = CARS1 STD;
run;

Когда мы выполняем приведенный выше код, он дает следующий результат -

Использование PROC SURVEYMEANS

Эта процедура также используется для измерения SD вместе с некоторыми дополнительными функциями, такими как измерение SD для категориальных переменных, а также для оценки дисперсии.

Синтаксис

Синтаксис использования PROC SURVEYMEANS:

PROC SURVEYMEANS options statistic-keywords ;
BY variables ;
CLASS variables ;
VAR variables ;

Ниже приводится описание используемых параметров -

  • BY - указывает переменные, используемые для создания групп наблюдений.

  • CLASS - указывает переменные, используемые для категориальных переменных.

  • VAR - указывает переменные, для которых будет рассчитываться SD.

пример

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

proc surveymeans data = CARS1 STD;
class type;
var type horsepower;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;

Когда мы выполняем приведенный выше код, он дает следующий результат -

Использование опции BY

В приведенном ниже коде показан пример опции BY. В нем результат группируется для каждого значения в опции BY.

пример

proc surveymeans data = CARS1 STD;
var horsepower;
BY make;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;

Когда мы выполняем приведенный выше код, он дает следующий результат -

Результат для make = "Audi"

Результат для make = "BMW"

Частотное распределение - это таблица, показывающая частоту точек данных в наборе данных. Каждая запись в таблице содержит частоту или количество появлений значений в определенной группе или интервале, и, таким образом, таблица суммирует распределение значений в выборке.

SAS предоставляет процедуру, называемую PROC FREQ для расчета частотного распределения точек данных в наборе данных.

Синтаксис

Основной синтаксис для вычисления частотного распределения в SAS -

PROC FREQ DATA = Dataset ;
TABLES Variable_1 ;
BY Variable_2 ;

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • Variables_1 - имена переменных набора данных, частотное распределение которых необходимо вычислить.

  • Variables_2 - переменные, которые классифицируют результат частотного распределения.

Распределение одной переменной частоты

Мы можем определить частотное распределение одной переменной, используя PROC FREQ.В этом случае результат покажет частоту каждого значения переменной. Результат также показывает процентное распределение, совокупную частоту и совокупный процент.

пример

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

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc FREQ data = CARS1 ;
tables horsepower; 
by make;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Распределение множественных переменных частот

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

пример

В приведенном ниже примере мы вычисляем частотное распределение для марки автомобиля для grouped by car type а также частотное распределение каждого типа авто grouped by each make.

proc FREQ data = CARS1 ;
tables make type; 
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Распределение частот с учетом веса

С помощью опции веса мы можем рассчитать частотное распределение с учетом веса переменной. Здесь значение переменной принимается как количество наблюдений, а не как количество значений.

пример

В приведенном ниже примере мы вычисляем частотное распределение производителей и типов переменных с весом, присвоенным лошадиным силам.

proc FREQ data = CARS1 ;
tables make type; 
weight horsepower;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Перекрестная таблица включает создание перекрестных таблиц, также называемых условными таблицами, с использованием всех возможных комбинаций двух или более переменных. В SAS он создается с использованиемPROC FREQ вместе с TABLESвариант. Например, если нам нужна частота каждой модели для каждой марки в каждой категории типов автомобилей, тогда нам нужно использовать параметр ТАБЛИЦЫ для PROC FREQ.

Синтаксис

Базовый синтаксис для применения кросс-таблицы в SAS -

PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • Variable_1 and Variable_2 - имена переменных набора данных, частотное распределение которых необходимо вычислить.

пример

Рассмотрим случай определения количества типов автомобилей, доступных под каждой маркой автомобилей, из набора данных cars1, созданного в виде SASHELP.CARSкак показано ниже. В этом случае нам нужны отдельные значения частоты, а также сумма значений частот по производителям и типам. Мы можем заметить, что результат показывает значения по строкам и столбцам.

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc FREQ data = CARS1;
tables make*type; 
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Перекрестная таблица 3 переменных

Когда у нас есть три переменные, мы можем сгруппировать 2 из них и сопоставить каждую из этих двух с третьей переменной. Итак, в результате у нас есть две перекрестные таблицы.

пример

В приведенном ниже примере мы находим частоту каждого типа автомобиля и каждой модели автомобиля в зависимости от марки автомобиля. Также мы используем опции nocol и norow, чтобы избежать сумм и процентных значений.

proc FREQ data = CARS2 ;
tables make * (type model)  / nocol norow nopercent;   
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Перекрестная таблица 4 переменных

При использовании 4 переменных количество парных комбинаций увеличивается до 4. Каждая переменная из группы 1 сопоставляется с каждой переменной из группы 2.

пример

В приведенном ниже примере мы находим частоту длины автомобиля для каждой марки и каждой модели. Аналогично частота лошадиных сил для каждой марки и каждой модели.

proc FREQ data = CARS2 ;
tables (make model) * (length  horsepower)  / nocol norow nopercent;   
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

T-тесты выполняются для вычисления доверительных интервалов для одного образца или двух независимых образцов путем сравнения их средних значений и средних различий. Процедура SAS под названиемPROC TTEST используется для проведения t-тестов для одной переменной и пары переменных.

Синтаксис

Основной синтаксис для применения PROC TTEST в SAS -

PROC TTEST DATA = dataset;
VAR variable;
CLASS Variable;
PAIRED Variable_1 * Variable_2;

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • Variable_1 and Variable_2 - имена переменных набора данных, используемых в t-тесте.

пример

Ниже мы видим один образец t-теста, в котором выполняется оценка t-теста для переменной мощности с 95-процентным доверительным интервалом.

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc ttest data = cars1 alpha = 0.05 h0 = 0;
 	var horsepower;
   run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Парный Т-тест

Парный T-тест проводится для проверки того, являются ли две зависимые переменные статистически отличными друг от друга или нет.

пример

Поскольку длина и вес автомобиля будут зависеть друг от друга, мы применяем парный T-тест, как показано ниже.

proc ttest data = cars1 ;
   paired weight*length;
   run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Двухвыборочный t-тест

Этот t-тест разработан для сравнения средних значений одной и той же переменной между двумя группами.

пример

В нашем случае мы сравниваем среднее значение переменной мощности между двумя разными марками автомобилей («Audi» и «BMW»).

proc ttest data = cars1 sides = 2 alpha = 0.05 h0 = 0;
   title "Two sample t-test example";
   class make; 
   var horsepower;
   run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Корреляционный анализ занимается отношениями между переменными. Коэффициент корреляции - это мера линейной связи между двумя переменными. Значения коэффициента корреляции всегда находятся в диапазоне от -1 до +1. SAS предоставляет процедуруPROC CORR чтобы найти коэффициенты корреляции между парой переменных в наборе данных.

Синтаксис

Основной синтаксис для применения PROC CORR в SAS -

PROC CORR DATA = dataset options;
VAR variable;

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • Options это дополнительная опция с такой процедурой, как построение матрицы и т. д.

  • Variable - имя переменной набора данных, используемого для поиска корреляции.

пример

Коэффициенты корреляции между парой переменных, доступных в наборе данных, можно получить, используя их имена в операторе VAR. В приведенном ниже примере мы используем набор данных CARS1 и получаем результат, показывающий коэффициенты корреляции между мощностью и весом.

PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc corr data = cars1 ;
VAR horsepower weight ;
BY make;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Корреляция между всеми переменными

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

пример

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

proc corr data = cars1 ;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Матрица корреляции

Мы можем получить матрицу диаграммы рассеяния между переменными, выбрав вариант построения матрицы в PROC заявление.

пример

В приведенном ниже примере мы получаем матрицу между мощностью и весом.

proc corr data = cars1 plots = matrix ;
VAR horsepower weight ;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

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

Затем используются различные тесты, чтобы определить, удовлетворительна ли модель. Если это так, то расчетное уравнение регрессии можно использовать для прогнозирования значения зависимой переменной с учетом значений для независимых переменных. В SAS процедураPROC REG используется для поиска модели линейной регрессии между двумя переменными.

Синтаксис

Основной синтаксис для применения PROC REG в SAS -

PROC REG DATA = dataset;
MODEL variable_1 = variable_2;

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • variable_1 and variable_2 - имена переменных набора данных, используемых при нахождении корреляции.

пример

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

PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;
proc reg data = cars1;
model horsepower = weight ;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Приведенный выше код также дает графическое представление различных оценок модели, как показано ниже. Будучи продвинутой процедурой SAS, она просто не ограничивается выдачей значений перехвата в качестве выходных данных.

Анализ Бланда-Альтмана - это процесс проверки степени согласия или несогласия между двумя методами, предназначенными для измерения одних и тех же параметров. Высокая корреляция между методами указывает на то, что для анализа данных была выбрана достаточно хорошая выборка. В SAS мы создаем график Бланда-Альтмана, вычисляя среднее значение, верхний предел и нижний предел значений переменных. Затем мы используем PROC SGPLOT для создания графика Блэнда-Альтмана.

Синтаксис

Основной синтаксис для применения PROC SGPLOT в SAS -

PROC SGPLOT DATA = dataset;
SCATTER X = variable Y = Variable;
REFLINE value;

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • SCATTER строит график диаграммы разброса значений, представленных в форме X и Y.

  • REFLINE создает горизонтальную или вертикальную контрольную линию.

пример

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

Результат показывает диаграмму Бланда-Альтмана как диаграмму рассеяния.

data mydata;
input new old;
datalines;
31 45
27 12
11 37
36 25
14 8
27 15
3 11
62 42
38 35
20 9
35 54
62 67
48 25
77 64
45 53
32 42
16 19
15 27
22 9
8 38
24 16
59 25
;

data diffs ;
set mydata ;
/* calculate the difference */
diff = new-old ;
/* calculate the average */
mean = (new+old)/2 ;
run ;
proc print data = diffs;
run;

proc sql noprint ;
select mean(diff)-2*std(diff),  mean(diff)+2*std(diff)
into   :lower,  :upper 
from diffs ;
quit;

proc sgplot data = diffs ;
scatter x = mean y = diff;
refline 0 &upper &lower / LABEL = ("zero bias line" "95% upper limit" "95%
lower limit");
TITLE 'Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error'; 
run ;
quit ;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Расширенная модель

В улучшенной модели вышеуказанной программы мы получаем аппроксимацию кривой уровня достоверности 95%.

proc sgplot data = diffs ;
reg x = new y = diff/clm clmtransparency = .5;
needle x = new y = diff/baseline = 0;
refline 0 / LABEL = ('No diff line');
TITLE 'Enhanced Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error'; 
run ;
quit ;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Тест хи-квадрат используется для проверки связи между двумя категориальными переменными. Его можно использовать для проверки степени зависимости и степени независимости между переменными. SAS используетPROC FREQ вместе с опцией chisq для определения результата теста хи-квадрат.

Синтаксис

Базовый синтаксис для применения PROC FREQ для теста хи-квадрат в SAS:

PROC FREQ DATA = dataset;
TABLES variables 
/CHISQ TESTP = (percentage values);

Ниже приводится описание используемых параметров -

  • Dataset это имя набора данных.

  • Variables - имена переменных набора данных, используемых в тесте хи-квадрат.

  • Percentage Values в операторе TESTP представляют собой процентное соотношение уровней переменной.

пример

В приведенном ниже примере мы рассматриваем тест хи-квадрат для переменной с именем type в наборе данных. SASHELP.CARS. Эта переменная имеет шесть уровней, и мы назначаем процент для каждого уровня в соответствии с дизайном теста.

proc freq data = sashelp.cars;
tables type 
/chisq 
testp = (0.20 0.12 0.18 0.10 0.25 0.15);
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Мы также получаем гистограмму, показывающую отклонение типа переменной, как показано на следующем снимке экрана.

Двусторонний хи-квадрат

Двусторонний тест хи-квадрат используется, когда мы применяем тесты к двум переменным набора данных.

пример

В приведенном ниже примере мы применяем тест хи-квадрат к двум переменным с именами type и origin. Результат показывает табличную форму всех комбинаций этих двух переменных.

proc freq data = sashelp.cars;
tables type*origin 
/chisq 
;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Точный критерий Фишера - это статистический тест, используемый для определения наличия неслучайных ассоциаций между двумя категориальными переменными. В SAS это выполняется с использованием PROC FREQ. Мы используем опцию «Таблицы», чтобы использовать две переменные, прошедшие точный тест Фишера.

Синтаксис

Базовый синтаксис для применения точного теста Фишера в SAS -

PROC FREQ DATA = dataset ;
TABLES Variable_1*Variable_2 / fisher;

Ниже приводится описание используемых параметров -

  • dataset это имя набора данных.

  • Variable_1*Variable_2 являются переменными, образующими набор данных.

Применение точного теста Фишера

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

пример

data temp;
input  Test1 Test2 Result @@;
datalines;
1 1 3 1 2 1 2 1 1 2 2 3
;
proc freq; 
tables Test1*Test2 / fisher;
run;

Когда приведенный выше код выполняется, мы получаем следующий результат -

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

Следует четко понимать разницу между repeated measures design и simple multivariate design. В обоих случаях члены выборки измеряются несколько раз или в нескольких испытаниях, но в плане с повторными измерениями каждое испытание представляет собой измерение одной и той же характеристики при разных условиях.

В SAS PROC GLM используется для проведения анализа повторных измерений.

Синтаксис

Основной синтаксис для PROC GLM в SAS -

PROC GLM DATA = dataset;
   CLASS variable;
   MODEL variables = group / NOUNI;
   REPEATED TRIAL n;

Ниже приводится описание используемых параметров -

  • dataset это имя набора данных.

  • CLASS дает переменным переменную, используемую в качестве переменной классификации.

  • MODEL определяет подходящую модель с использованием определенных переменных из набора данных.

  • REPEATED определяет количество повторных измерений каждой группы для проверки гипотезы.

пример

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

DATA temp;
   INPUT person group $ r1 r2 r3 r4;
CARDS;
1 A  2  1  6  5
2 A  5  4 11  9
3 A  6 14 12 10
4 A  2  4  5  8
5 A  0  5 10  9
6 B  9 11 16 13
7 B  12 4 13 14
8 B  15 9 13  8
9 B  6  8 12  5
10 B 5  7 11  9
;
RUN;

PROC PRINT DATA = temp ;
RUN;

   PROC GLM DATA = temp;
   CLASS group;
   MODEL r1-r4 = group / NOUNI ;
   REPEATED trial 5;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий результат -

ANOVA расшифровывается как дисперсионный анализ. В SAS это делается с помощьюPROC ANOVA. Он выполняет анализ данных из широкого спектра экспериментальных проектов. В этом процессе переменная непрерывного отклика, известная как зависимая переменная, измеряется в экспериментальных условиях, определяемых классификационными переменными, известными как независимые переменные. Предполагается, что вариация ответа вызвана эффектами классификации, а оставшаяся вариация объясняется случайной ошибкой.

Синтаксис

Основной синтаксис для применения PROC ANOVA в SAS -

PROC ANOVA dataset ;
CLASS Variable;
MODEL Variable1 = variable2 ;
MEANS ;

Ниже приводится описание используемых параметров -

  • dataset это имя набора данных.

  • CLASS дает переменным переменную, используемую в качестве переменной классификации.

  • MODEL определяет подходящую модель с использованием определенных переменных из набора данных.

  • Variable_1 and Variable_2 - имена переменных набора данных, используемых в анализе.

  • MEANS определяет тип вычисления и сравнения средних.

Применение ANOVA

Давайте теперь поймем концепцию применения ANOVA в SAS.

пример

Рассмотрим набор данных SASHELP.CARS. Здесь мы изучаем зависимость между переменными типом автомобиля и их мощностью. Поскольку тип автомобиля - это переменная с категориальными значениями, мы принимаем ее как переменную класса и используем обе эти переменные в МОДЕЛИ.

PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Применение ANOVA со СРЕДСТВАМИ

Давайте теперь разберемся с концепцией применения ANOVA со СРЕДСТВАМИ в SAS.

пример

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

PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
MEANS type / tukey lines;
RUN;

Когда приведенный выше код выполняется, мы получаем следующий результат -

Проверка гипотез - это использование статистики для определения вероятности того, что данная гипотеза верна. Обычный процесс проверки гипотез состоит из четырех шагов, как показано ниже.

Шаг 1

Сформулируйте нулевую гипотезу H0 (обычно, что наблюдения являются результатом чистой случайности) и альтернативную гипотезу H1 (обычно, что наблюдения показывают реальный эффект в сочетании с компонентом случайной вариации).

Шаг 2

Определите статистику теста, которая может использоваться для оценки истинности нулевой гипотезы.

Шаг 3

Вычислите P-значение, которое представляет собой вероятность того, что статистика теста, по крайней мере, такая же значимая, как наблюдаемая, будет получена при условии, что нулевая гипотеза верна. Чем меньше P-значение, тем сильнее доказательства против нулевой гипотезы.

Шаг-4

Сравните p-значение с приемлемым значением альфа значимости (иногда называемым альфа-значением). Если р <= альфа, то наблюдаемый эффект является статистически значимым, нулевая гипотеза исключается, а альтернативная гипотеза верна.

Язык программирования SAS имеет функции для выполнения различных типов проверки гипотез, как показано ниже.

Контрольная работа Описание SAS PROC
T-Test T-тесты используются для проверки того, значительно ли отличается среднее значение одной переменной от предполагаемого значения. Мы также определяем, существенно ли различаются средние значения для двух независимых групп и значительно ли различаются средние значения для зависимых или парных групп. PROC TTEST
ANOVA Он также используется для сравнения средних значений при наличии одной независимой категориальной переменной. Мы хотим использовать односторонний дисперсионный анализ при тестировании, чтобы увидеть, различаются ли средние значения интервальной зависимой переменной в зависимости от независимой категориальной переменной. PROC ANOVA
Chi-Square Мы используем степень согласия по критерию хи-квадрат, чтобы оценить вероятность случайного появления частот категориальной переменной. Если пропорции категориальной переменной являются гипотетическим значением, необходимо использовать критерий хи-квадрат. PROC FREQ
Linear Regression Простая линейная регрессия используется, когда нужно проверить, насколько хорошо переменная предсказывает другую переменную. Множественная линейная регрессия позволяет проверить, насколько хорошо несколько переменных предсказывают интересующую переменную. При использовании множественной линейной регрессии мы дополнительно предполагаем, что переменные-предикторы независимы. PROC REG