Skip to main content
LibreTexts - Ukrayinska

7.4: Вступ до SAS

  • Page ID
    98769
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Цілі навчання
    • На цій сторінці наведено ознайомлення з використанням статистичного програмного пакету SAS. Деякі з них специфічні для Університету штату Делавер, але більшість з них повинні бути корисними для тих, хто використовує SAS.

    Вступ

    SAS, SPSS і Stata - одні з найпопулярніших програмних пакетів для ведення серйозної статистики. У мене є невеликий досвід роботи з SAS, тому я підготував цю веб-сторінку, щоб ви почали з основ. Відділ академічних технологій UCLA підготував дуже корисні посібники для SAS, SPSS та Stata.

    Все більш популярним інструментом для серйозної статистики є R, безкоштовний пакет програм для Windows, Mac, Linux і Unix. Є безкоштовні онлайн-посібники, а також багато онлайн-та друкованих навчальних посібників. Я ніколи не використовував R, тому я не можу допомогти вам з цим.

    SAS може здатися залякуючим і старомодним; виконання що-небудь з ним вимагає написання того, що, по суті, комп'ютерна програма, де недоречна крапка з комою може мати катастрофічні результати. Але я думаю, що якщо ви зробите глибокий вдих і пропрацюєте свій шлях терпляче через приклади, ви скоро зможете зробити деякі досить круті статистичні дані.

    Інструкції тут призначені для університету штату Делавер, але більшість з них повинні застосовуватися в будь-якому місці, де встановлено SAS. Існує чотири способи використання SAS:

    • на мейнфреймі, в пакетному режимі. Це те, що я опишу нижче.
    • на мейнфреймі, інтерактивно в лінійному режимі. Я не рекомендую цього, тому що це просто, здається, додає ускладнення та плутанину.
    • на мейнфреймі, інтерактивно з системою диспетчера дисплеїв. З того, що я бачив, це не дуже просто. Якщо ви дійсно хочете спробувати, ось інструкції. Майте на увазі, що «інтерактивний» не означає «зручний графічний інтерфейс, як ви звикли»; вам все одно доведеться писати ті самі програми SAS.
    • на вашому персональному комп'ютері Windows. Я ніколи цього не робила. Перш ніж купувати SAS для комп'ютера, подивіться, чи зможете ви використовувати його безкоштовно на комп'ютері мейнфрейма вашої установи.

    Щоб використовувати SAS на комп'ютері мейнфреймів, вам доведеться підключити персональний комп'ютер до мейнфрейму; в Університеті штату Делавер ви підключаєтеся до комп'ютера під назвою Штраус. Операційною системою для мейнфреймів типу Strauss є Unix; для запуску SAS в пакетному режимі доведеться вивчити кілька команд Unix.

    Підключення до мейнфрейму з Mac

    На Mac знайдіть програму Terminal; вона повинна знаходитися в папці Utilities, всередині папки «Програми». Ймовірно, ви захочете перетягнути його на панель завдань для легкого доступу в майбутньому. Під час першого запуску терміналу перейдіть до «Налаштування» в меню «Термінал», виберіть «Налаштування», потім виберіть «Додатково». Встановіть «Оголосити термінал як:» на «vt100". Потім поставте галочку з написом «Видалити посилає Ctrl-H». (У деяких версіях Terminal параметри можуть бути розташовані дещо інакше, і вам, можливо, доведеться шукати прапорець, щоб перевірити «Видалити ключ надсилає backspace».) Потім вийдіть і перезапустіть термінал. Вам не потрібно буде змінювати ці налаштування знову.

    Коли ви запустите Terminal, ви отримаєте запит, який виглядає наступним чином:

    Ваші імена - Комп'ютер: ~ ваше ім'я$

    Після знака долара введіть ssh userid@computer.url, де userid - ім'я вашого ідентифікатора користувача, а computer.url - адреса мейнфрейму. У штаті Делавер основним фреймом є Штраус, тому якщо ваш користувач joeblow, ви можете ввести ssh joeblow@strauss.udel.edu. Потім натисніть Return. Він попросить вас ввести пароль; введіть його і натисніть Return (це не буде виглядати так, як ви щось набрали, але це буде працювати). Потім ви будете підключені до мейнфрейму, і ви отримаєте такий запит:

    страус.удель.еду%

    Тепер ви готові почати вводити команди Unix.

    Підключення до мейнфрейму з Windows

    На відміну від Mac, комп'ютери Windows не оснащені вбудованим емулятором терміналу, тому вам потрібно буде запитати адміністратора сайту, який "емулятор терміналу" вони рекомендують. PuTTY - одна популярна (і безкоштовна) програма, з хорошим набором інструкцій тут. Який би емулятор терміналу ви не використовували, вам потрібно буде ввести «ім'я хоста» (ім'я комп'ютера мейнфрейму, до якого ви намагаєтеся підключитися; в штаті Делавер, це strauss.udel.edu), ваш ідентифікатор користувача та пароль. Можливо, вам доведеться вказати, що ваш «Протокол» - «SSH». Коли ви вводите пароль, це може виглядати так, ніби нічого не відбувається, але просто введіть його і натисніть Enter. Якщо це спрацює, ви будете підключені до мейнфрейму і отримаєте такий підказку:

    страус.удель.еду%

    Тепер ви готові почати вводити команди Unix.

    Підключення до мейнфрейму з Linux

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

    Трохи Unix

    Операційною системою для таких мейнфреймів, як Strauss, є Unix, тому вам доведеться вивчити кілька команд Unix. Unix, мабуть, був написаний людьми, для яких друкувати фізично боляче, оскільки більшість команд - це невелика кількість загадкових букв. Справа має значення; не вводьте компакт-диск і думайте, що це означає те ж саме, що і компакт-диск. Ось усі Unix, які вам потрібно знати для запуску SAS. Команди виділені жирним шрифтом, а назви файлів і каталогів, які ви обираєте, виділені курсивом.

    ls Виводить список усіх імен файлів у поточному каталозі.
    pico ім'я файлу pico - текстовий редактор; ви будете використовувати його для написання програм SAS. Введіть pico yourfilename.sas, щоб відкрити існуючий файл з назвою yourfilename.sas, або створіть його, якщо він не існує. Щоб вийти з pico, введіть клавіші control і x. Ви повинні використовувати клавіші зі стрілками, а не мишкою, щоб переміщатися по тексту, як тільки ви знаходитесь у файлі. З цієї причини я вважаю за краще створювати та редагувати програми SAS у текстовому редакторі на моєму комп'ютері (TextEdit на Mac, Notepad на Windows), а потім скопіювати та вставити їх у файл, який я створив за допомогою pico. Потім я використовую pico для незначного налаштування програми.

    Не копіюйте та не вставляйте з текстового процесора, як Word, у pico, оскільки файли текстових процесорів містять невидимі символи, які заплутують піко.

    Відзначимо, що існують і інші популярні текстові редактори, такі як vi і emacs, і одним з визначальних персонажів серйозного комп'ютерного гика є тверда думка про перевагу улюбленого текстового редактора і тотальна невдаха всіх інших текстових редакторів. Щоб не стати одним з них, постарайтеся не емоційно ставитися до піко.

    Назви файлів Unix повинні складатися з букв і цифр, тире (-), підкреслення (_) та крапок. Не використовуйте пробіли або інші розділові знаки (косі риски, дужки, знаки оклику тощо), оскільки вони мають особливі значення в Unix і можуть заплутати комп'ютер. Зазвичай використовується розширення через певний період, наприклад .sas для позначення програми SAS, але це для вашої зручності при розпізнаванні того, що це за файл; Unix не вимагає цього.
    cat назва файлу Відкриває файл для перегляду і друку, але не редагування. Він автоматично доставить вас до кінця файлу, тому вам доведеться прокручувати вгору. Для друку, можливо, ви захочете скопіювати те, що ви хочете, а потім вставити його в документ текстового процесора для полегшення форматування. Ви повинні використовувати cat замість pico для перегляду вихідних файлів (.log та .lst), які створює SAS.
    mv старе ім'я нове ім'я Змінює назву файлу з oldname на newname. Під час запуску SAS у файлі practice.sas, результат буде у файлі practice.lst. Перш ніж внести зміни в practice.sas і запустити його знову, ви можете змінити назву practice.lst на щось інше, щоб воно не було перезаписано.
    cp старе ім'я нове ім'я Створює копію файлу oldname з назвою newname.
    rm ім'я файлу Видаляє файл.
    вийти Журнали вас з мейнфрейму.
    mkdir назва каталогу Створює новий каталог. Вам не потрібно цього робити, але якщо ви в кінцевому підсумку створюєте багато файлів, вам може бути корисно тримати їх організованими в різні каталоги.
    cd назва каталогу Змінюється з одного каталогу в інший. Наприклад, якщо у вашому домашньому каталозі є каталог з назвою sasfiles, введіть cd sasfiles. Щоб перейти з каталогу до вашого домашнього каталогу, просто введіть cd.
    rmdir назва каталогу Видаляє каталог, якщо в ньому немає жодних файлів. Якщо ви хочете видалити директорію і файли в ньому, спочатку зайдіть в директорію, видаліть всі файли в ньому за допомогою rm, потім видаліть каталог за допомогою rmdir.
    sas назва файлу Працює SAS. Обов'язково введіть sas ім'я файла.sas. Якщо ви просто вводите SAS, а потім натисніть повернення, ви будете в інтерактивному режимі SAS, що страшно; увійти; закінчиться; якщо це станеться, і вам потрібно вийти з нього.

    Написання програми SAS

    Щоб використовувати SAS, ви спочатку скористаєтеся pico для створення порожнього файлу; ви можете викликати перший practice.sas. Введіть програму SAS, яку ви написали (або скопіюйте її з текстового файлу, створеного за допомогою TextEdit або Notepad), а потім збережіть файл, натиснувши клавіші управління та\(x\) клавіші. Після того, як ви вийшли з pico, введіть sas practice.sas; слово sas - це команда, яка повідомляє Unix запустити програму SAS, а practice.sas - це файл, на якому він збирається запускати SAS. Потім SAS створює файл з ім'ям practice.log, який повідомляє про будь-які помилки. Якщо фатальних помилок немає, SAS також створює файл з ім'ям practice.lst, який містить результати аналізу.

    Програма SAS (яку ви пишете за допомогою pico) складається з ряду команд. Кожна команда являє собою одне або кілька слів, за якими слід крапка з комою. Ви можете додати коментарі до вашої програми, щоб нагадати вам про те, що ви намагаєтеся зробити; ці коментарі мають слеш і зірочку з кожного боку, як це:

    /*Це коментар. Він не читається програмою SAS. */

    Програма SAS має дві основні частини, крок DATA та крок PROC. (Примітка. Я використовую всі команди SAS з великої літери, щоб вони виділялися, але вам не потрібно, коли ви пишете свої програми; на відміну від Unix, SAS не чутливий до регістру.) Крок DATA зчитує дані, або з іншого файлу, або всередині програми.

    На кроці DATA ви спочатку говорите «DATA dataset;» де набір даних - це довільне ім'я, яке ви даєте набору даних. Потім ви говорите «INPUT variable1 variable2...;» даючи довільне ім'я кожній зі змінних, яка знаходиться на рядку у ваших даних. Отже, якщо у вас є набір даних, що складається з довжини і ширини мідій двох різних видів, ви можете запустити програму, написавши:

    ДАНІ мідій;
    ВХІДНИЙ вид $ довжина ширини;

    Ім'я змінної для номінальної змінної (ім'я або символ) має після нього пробіл і знак долара (\(\$\)). У нашій практиці набір даних «вид» - це номінальна змінна. Якщо ви хочете розглядати число як номінальну змінну, наприклад ідентифікаційний номер, не забудьте поставити знак долара після імені змінної. Не використовуйте пробіли всередині імен змінних або значень змінних; використовуйте Medulis або M_Edulis, а не M. edulis (існують способи обробки змінних, що містять пробіли, але вони складні).

    Якщо ви розміщуєте дані безпосередньо в програмі, наступним кроком буде рядок з написом «DATALINES;», а потім дані. Крапка з комою на рядку сама по собі говорить SAS, що це зроблено читання даних. Ви можете помістити кожне спостереження в окремому рядку, причому змінні розділені одним або декількома пробілами:

    DATA midies; /* називає набір даних «мідії» */
    ВХІДНІ види $ довжина ширини; /* називає змінні, визначає «species» як номінальну змінну */
    DATALINES; /* повідомляє SAS, що дані починаються на наступному рядку */
    edulis 49.0 11 0.0
    троссулус 51.2 9.1
    троссулус 45.9 9,4
    дідуліс 56.2 13.2
    dulis 52.7 10.7
    dulis 48.4 10.4
    троссулус 47,6 9,5
    троссулус 46.2 8,9
    троссул 37,2 7,1
    ; /* крапка з комою повідомляє SAS припинити читання даних */

    Ви також можете мати більше одного набору даних у кожному рядку, якщо поставити «@@» в кінці оператора INPUT:

    ДАНІ мідій;
    ВХІДНІ види $ довжина ширина @@;
    DATALINES;
    edulis 49,0 11.0 trossulus 51.2 9.1 trossulus 45,9 9,4 edulis 56.2 13,2
    edulis 52.7 10,7 edulis 48.4 10.4 trossulus 47,6 9,5 trossulus 46,2 8,9
    trossulus 37,2 7.1
    ;

    Якщо у вас великий набір даних, зручніше буде зберігати його в окремому файлі від вашої програми. Для читання даних з іншого файлу використовуйте оператор INFILE datafile; з назвою файлу даних в одинарних лапках. Якщо ви це зробите, ви не використовуєте оператор DATALINES. Тут я створив окремий файл (в тому ж каталозі) під назвою "shells.dat", який має величезну кількість даних в ньому, і ось як я кажу SAS читати його:

    ДАНІ мідій;
    INFILE 'shells.dat';
    ВХІДНІ види $ довжина ширини;

    Коли ви маєте свої дані в окремому файлі, це гарна ідея мати один або кілька рядків на початку файлу, які пояснюють, що таке змінні. Потім слід використовувати FIRSTOBS= linenumber як параметр у операторі INFILE, щоб повідомити SAS, який рядок містить перший рядок даних. Тут я кажу SAS почати читати дані на\(3\) рядку файлу даних shells.dat, оскільки перші два рядки мають пояснювальну інформацію:

    ДАНІ мідій;
    INFILE 'shells.dat' FIRSTOBS = 3;
    ВХІДНІ види $ довжина ширини;

    Оператор DATA може створювати нові змінні з математичних операцій над початковими змінними. Тут я роблю дві нові змінні, «loglength», яка є лише базовим\(10\) журналом довжини, і «shellratio», ширина розділена на довжину. SAS може робити статистику по цих змінних так само, як і на вихідних змінних.

    ДАНІ мідій;
    ВХІДНІ види $ довжина ширина;
    loglength = log10 (довжина);
    shellratio = ширина/довжина;
    DATALINES;

    Крок PROC

    Після того, як ви ввели дані, настав час проаналізувати їх за допомогою однієї або декількох команд PROC. Заява PROC повідомляє SAS, яку процедуру запускати, і майже завжди має деякі варіанти. Наприклад, щоб обчислити середнє та стандартне відхилення довжин, ширини та довжин, перетворених журналом, ви використовуєте PROC MEANS. За нею слідують певні варіанти. DATA= набір даних повідомляє йому, який набір даних для аналізу. MEAN і STD - це варіанти, які говорять PROC ЗАСОБИ обчислити середнє і стандартне відхилення; Є кілька інших варіантів, які могли б бути використані з PROC MEANS. VAR змінні 1 змінна 2... повідомляє PROC ОЗНАЧАЄ, які змінні обчислити середнє і стандартне відхилення. RUN повідомляє SAS запустити.

    PROC ОЗНАЧАЄ ДАНІ = МІДІЇ MEAN STD; /* говорить PROC ЗАСОБИ обчислити середнє і стандартне відхилення
    */VAR довжина ширина loglength; /* говорить PROC ОЗНАЧАЄ, які змінні для аналізу */
    RUN; /* робить PROC ОЗНАЧАЄ запустити */

    Тепер, коли ви прочитали базовий вступ до SAS, складіть все разом і запустіть програму SAS. Підключіться до вашого мейнфрейму і використовуйте pico для створення файлу з назвою «practice.sas». Скопіюйте та вставте в файл наступне:

    ДАНІ мідій;
    ВХІДНІ види $ довжина ширина;
    довжина журналу =
    log10 (довжина); співвідношення оболонки = ширина/довжина;
    DATALINES;

    edulis 49,0 11.0 брутто 51,2 9,1
    кросс 45,9 9,4
    edulis 56.2 13,2
    edulis 52.7 10.7

    edulis 48.4 10,4 брутто 47,6 9,5
    брутто 46,2 8,9
    брутто 37,2 7.1
    ;
    PROC ОЗНАЧАЄ ДАНІ = МІДІЇ СЕРЕДНІЙ STD;
    VAR довжина довжина журналу;
    RUN;

    Потім вийдіть з піко (натисніть control-x). У підказці знака долара введіть як practice.sas. Потім введіть ls, щоб перелічити імена файлів; ви повинні побачити нові файли з іменами practice.log та practice.lst. Спочатку введіть cat practice.log, щоб подивитися файл журналу. Це підкаже, чи немає помилок у вашій програмі SAS. Потім введіть cat practice.lst, щоб подивитися на вихід з вашої програми. Ви повинні побачити щось подібне

    Система SAS: Порядок дій


    Змінна середня Std Dev
    -
    довжина 48.2666667 5.2978769
    ширина 9.9222222 1.6909892
    довжина журналу 1.6811625 0.0501703

    Якщо ви це зробите, ви успішно запустили SAS. Ура!

    СОРТУВАННЯ PROC і PROC ДРУК

    Я описую конкретні статистичні процедури на веб-сторінці для кожного тесту. Два, які мають загальне використання, - PROC SORT та PROC PRINT. PROC SORT сортує дані за однією або декількома змінними. Для деяких процедур потрібно спочатку сортувати дані. PROC PRINT записує набір даних, включаючи будь-які нові змінні, які ви створили (наприклад, loglength і shellratio в нашому прикладі) до вихідного файлу. Ви можете використовувати його, щоб переконатися, що SAS правильно прочитав дані, а ваші перетворення, сортування тощо працювали належним чином. Ви можете сортувати дані за кількома змінними; цей приклад сортує дані мідій спочатку за видами, потім за довжиною.

    PROC СОРТУВАТИ ДАНІ = Мідії;
    ПО довжині виду;
    RUN;
    PROC ДРУКУВАТИ ДАНІ = Мідії;
    RUN;

    Додавання PROC SORT і PROC PRINT до файлу SAS дає наступний результат:

    SAS System

    Obs вид довжина довжина колоди довжина оболонки співвідношення

    1 edulis 48,4 10,4 1,68485 0,21488
    2 edulis 49,0 11,0 1,69020 0,22449
    3 редакції 52.7 10,7 1,72181 0,20304
    4 радіус 56,2 13,2 1,74974 0,23488
    5 троссулу 37.2 7,1 1,57054
    0,19086 6 трусів 45,9 9,4 1,66181 0,20479
    7 троссул 46,2 8,9 1,66464 0,19264
    8 троссул 47,6 9,5 1,6761 0,19958
    9 троссул 51,2 9,1 1,70927 0,1773

    Як бачите, дані сортувалися спочатку за видами, потім всередині кожного виду сортувалися по довжині.

    Графіки в SAS

    Можна малювати графіки за допомогою SAS, але я не вважаю, що це дуже легко. Я рекомендую вам взяти будь-які числа, які вам потрібні від SAS, помістити їх в електронну таблицю або спеціалізовану графічну програму, і використовувати їх для малювання графіків.

    Отримання даних з електронної таблиці в SAS

    Мені найпростіше спочатку ввести свої дані в електронну таблицю, навіть якщо я збираюся проаналізувати їх за допомогою SAS. Але якщо ви спробуєте скопіювати дані безпосередньо з електронної таблиці в файл SAS, цифри будуть розділені вкладками, які SAS буде задихатися; ваш файл журналу буде говорити «ПРИМІТКА: Невірні дані в рядку...». Щоб змусити SAS розпізнавати дані, розділені вкладками, скористайтеся параметром DELIMITER в операторі INFILE. Для вбудованих даних додайте оператор INFILE DATALINES роздільник = '09'x; перед оператором INPUT (SAS викликає вкладки '09'x):

    ДАНІ мідій;
    INFILE DATALINES роздільник = '09'x;
    ВХІДНІ види $ довжина ширина;
    DATALINES;

    edulis 49.0 11.0 брутто 51,2 9,1
    трос 45,9 9,4
    edulis 56.2 13,2
    edulis 52,7 10,7
    едуліс 48,4 10,4
    брус 47,6 9,5
    троса 46,2 8,9
    троса 37,2 7,1
    ;

    Якщо ваші дані знаходяться в окремому файлі, ви включаєте delimiter='09'x в інструкцію INFILE наступним чином:

    ДАНІ мідій;
    INFILE 'shells.dat' роздільник = '09'x;
    ВХІДНІ види $ довжина ширини;

    Більше інформації про SAS

    Посібники користувача для SAS доступні в Інтернеті безкоштовно. Вони необхідні для досвідчених користувачів, але вони не дуже корисні для початківців.

    UCLA Academic Technology Services зібрав чудовий набір прикладів того, як робити найпоширеніші статистичні тести в SAS, SPSS або Stata; це гарне місце для початку, якщо ви шукаєте більше інформації про конкретний тест.