Уголок новичка SPSS (советы основаны на версии 10.07)
- Где скачать SPSS?
- Какой вид окна результатов (Output) мне лучше использовать?
- Ведите журнал!
- С чего начать изучение синтаксиса?
- Что означает команда DATA LIST LIST /a b c?
- Transformations pending (что с этим делать)
- Почему никто не ответил на мой вопрос?
- Сетевой этикет (как себя "вести" в интернете)
- В ответ на вопрос мне прислали макрос, но я не знаю как его использовать…
- А почему нельзя для статистического анализа обойтись просто Excel?
См. статью на сайте Университета Массачусетса - Использование Excel 7 для статистического анализа (Using Excel 7 for Statistical Analysis) (Успехи и предостережения)
и статью AgResearch Ruakura (Гамильтон, Новая Зеландия) Использование Excel для статистического анализа (Use of Excel for Statistical Analysis).
«Где скачать SPSS? SPSS download, SPSS кряк и проч.» — подобные фразы частенько вводятся в формы запросов поисковых машин, встречаются во многих форумах и живых журналах. Безусловно, SPSS большей частью — коммерческий продукт*, поэтому любая попытка установки этого ПО без соответствующей лицензии, мягко говоря, незаконна.
За приобретением лицензии можно обратиться в российский офис SPSS — ООО «СПСС Русь».
Но что делать, если вас интересует лишь знакомство с пакетом: интерфейсом, основными возможностями, программной совместимостью и т.д? Немедленно приобретать ПО нет необходимости. Не все знают о том, что можно совершенно легально загрузить полнофункциональную версию SPSS с ограниченным сроком действия лицензии (примерно 14 дней). Такая демоверсия содержит не только основной модуль SPSS Base, но и дополнительные модули. Следует помнить, что дистрибутив не маленький — вам придётся скачать более 150 Мб. Если это — не помеха, то вот ссылка: http://www.spss.com/downloads/Papers.cfm?ProductID=00035&Name=SPSS_Base&DLType=Demo. Для скачивания доступна последняя версия пакета с модулями и некоторые дополнительные утилиты. Перед загрузкой будет предложено зарегистрироваться на сайте. Если вы не намерены пользоваться технической поддержкой, и создание собственного логина на SPSS.com вас не интересует, можно обойтись логином/паролем guest/guest.
*К некоммерческим компонентам SPSS можно отнести, скажем, свободно распространяемые модули Python, синтаксис, макросы и скрипты.
Существует 2 вида окна результатов:
- Обычный «Viewer» (современный вид) и
- «Draft Viewer», или «черновая» версия (унаследованный формат, как бы сказали в Microsoft)
Я постоянно использую обычный Viewer, так как в него добавлена существенная гибкость в отношении редактирования графиков и таблиц. Выбор вида окна результатов осуществляется через меню Edit > Options, вкладка General. В разделе "Output Type at Start-up" выберите Viewer.
Я нахожу очень полезным отображать так называемые «лог» (log, запись исполненных команд) в окне результатов. Чтобы его отображать, используйте меню Edit > Options, вкладка Viewer. Установите флажок «Display commands in the log» в нижнем левом углу. Почему это полезно? См. следующий пункт.
См. раздел Изучаем синтаксис
Многие ответы на форумах по SPSS начинаются примерно так:
DATA LIST LIST /a b c.
BEGIN DATA
1 2 3
4 1 5
END DATA.
Цель этих команд — создать файл данных (т.е. ввести данные в окно редактора данных). Это позволит продемонстрировать действие синтаксиса, который следует за этими командами. А без данных синтаксис не работает ;-)
Таким образом, когда вы видите ответы, начинающиеся командами «DATA LIST» или «INPUT PROGRAM», делайте следующее:
| Шаг | Как? |
| выделите весь синтаксис и скопируйте его в буфер обмена | Control C - скопировать |
| вставьте его в пустое окно редактора синтаксиса | Чтобы открыть новое окно синтаксиса (Syntax Window), используйте меню: File>New>Syntax (или нажмите кнопку 2). Control V - вставить |
| запустите его. | Используйте меню окна синтаксиса: Run>All (или нажмите кнопку 16). |
Когда вы не видите результатов своих расчётов, но зато видите надпись «Transformations pending» в статусной строке внизу окна, добавьте команду EXECUTE в конец своего синтаксиса и выполните эту строку кода, либо нажмите кнопку 21. Смысл слов Transformations pending таков: команда на произведение вычислений (изменений данных) принята к обработке процессором SPSS, но сами вычисления в данных построчно ещё не произведены. Команда EXECUTE заставляет процессор SPSS выполнить вычисления и отобразить результаты.
В некоторых случаях, если возникла ошибка, и вы не хотите запускать отложенные вычисления (например, бесполезно загружать процессор обработкой большого массива данных ошибочно введённой инструкцией), наберите команду «CLEAR TRANSFORMATION.» в окне синтаксиса и запустите её.
Во-первых, не жалуйтесь на это на следующий день в ту же новостную группу или форум, куда задали вопрос… Вместо этого, спросите себя, достаточно ли точно был сформулирован вопрос, чтобы позволить знающему (но занятому) человеку ответить на него, не проигрывая все 3-4 возможных варианта его толкования? Через 3-4 дня пошлите новое письмо, сформулировав проблему под другим углом, или предоставив дополнительную информацию.
Вопросы, начинающиеся со слов
«Я в отчаянии, я должен завтра сдать курсовую работу» или
«У меня нет времени написать и отладить этот макрос. Может кто-нибудь это сделать за меня?»
обычно не располагают сетевое сообщество к задающему вопрос.
- Если вы получили нужный ответ на свой вопрос напрямую на свой адрес электронной почты, отправьте копию ответа в форум или новостную группу. Этим вы сэкономите время людей, которые, возможно, сейчас тратят время на то, чтобы получить такое же решение для вас.
- Отвечайте в новостную группу или список, а не напрямую на e-mail человека, задающего вопрос.
- Будьте вежливы. Хотя есть много людей, готовых уделить свое время, помогая вам, они ничего вам не должны.
- Задавайте вопросы, которые непосредственно связаны с темой списка или новостной группы. Не спрашивайте вопросы про Excel или Word, в форумах SPSS, если только они не связаны с импортом или экспортом данных и результатов SPSS.
- Не ругайте никого за то, что вам дали неправильное решение, или это решение делает не то, что вы хотели (возможно, оно делает именно то, что вы написали оно должно делать…). Если вы считаете, что кто-то допустил серьёзную ошибку в решении, пошлите частный e-mail, указав автору на его оплошность. Если вы окажетесь правы, это даст автору возможность исправиться, послав второе письмо в новостную группу или форум, а вы приобретёте нового друга. С другой стороны, если вы сами окажетесь неправы, вы сами избежите публичного конфуза :-)
- Не начинайте «священных войн и крестовых походов» за или против тех или иных подходов к анализу данных. Статистика - развивающаяся наука и в ней есть пространство для разных, в том числе и противоречащих друг другу, концепций.
- Если задаёте вопрос в новостную группу или форум (а не в список рассылки), не просите, чтобы ответ вам прислали на ваш e-mail.
- Прилагать файлы (аттачменты) к своим письмам с вопросами в список рассылки не считается «вежливым». В некоторых странах доступ в интернет столь же медленен, сколь и дорог. К тому же вложения могут содержать вирусы.
Данный пример включает 3 раздела:
Исходный вопрос
Размещённый ответ
Комментарии к использованию макроса
Исходный вопрос
Я строю большое количество столбиковых диаграмм (bar charts). Из каждой диаграммы я должен исключить категории, в которые попало менее 10 студентов. Я сейчас запускаю частотный анализ, а затем вручную удаляю те категории, которые должны быть пропущены. Но мне кажется, есть лучший способ решить эту проблему. Буду рад вашим предложениям.
Размещённый ответ
DATA LIST LIST /age prog year.
BEGIN DATA
25 1 2
25 1 2
25 1 2
25 1 2
25 1 4
25 1 4
25 1 4
25 1 4
25 1 4
25 1 4
25 1 7
25 1 7
25 1 7
25 1 7
25 1 2
26 1 2
27 2 1
27 2 1
27 2 1
27 2 1
27 2 1
27 2 1
END DATA.
COMPUTE dummy=1.
SET MPRINT=no.
*////////////////////.
DEFINE !chart (minnb=!TOKENS(1) /cat=!TOKENS(1))
FILTER OFF.
* Сортировка необходима для команды MATCH FILES.
SORT CASES BY !cat.
!LET !fname=!QUOTE(!CONCAT('C:\temp\',!cat,'.SAV'))
AGGREGATE
/OUTFILE=!fname
/PRESORTED
/BREAK=!cat
/nb = N(dummy).
MATCH FILES /FILE=*
/TABLE=!fname
/BY !cat.
FREQUENCY VARIABLES=!cat.
COMPUTE flag=(nb>=!minnb).
FILTER BY flag.
GRAPH
/BAR(SIMPLE)=COUNT BY !cat
/MISSING=REPORT.
* Удаляем переменную nb.
MATCH FILES FILE=* /DROP=nb.
!ENDDEFINE.
*////////////////////.
SET MPRINT=yes.
!chart minnb=5 cat=age.
!chart minnb=6 cat=prog.
!chart minnb=5 cat=year.
* Этот метод подходит, если между печатью графиков вам ещё что-то требуется делать и корректировать.
* Следующий макрос годится, если вам нужно печатать серию графиков с одним и тем же минимальным порогом для включения категории в график.
SET MPRINT=no.
*////////////////////.
DEFINE !chart2 (minnb=!TOKENS(1) /cats=!CMDEND)
/* minnb = минимальная частота категории для отображения*/.
/* cats = имена переменных с категориями, для которых надо построить графики*/.
COMPUTE dummy=1.
!DO !cat !IN (!cats)
FILTER OFF.
* Сортировка необходима для команды MATCH FILES.
SORT CASES BY !cat.
!LET !fname=!QUOTE(!CONCAT('C:\temp\',!cat,'.SAV'))
AGGREGATE
/OUTFILE=!fname
/PRESORTED
/BREAK=!cat
/nb = N(dummy).
MATCH FILES /FILE=*
/TABLE=!fname
/BY !cat.
FREQUENCY VARIABLES=!cat.
LIST.
COMPUTE flag=(nb>=!minnb).
FILTER BY flag.
GRAPH
/BAR(SIMPLE)=COUNT BY !cat
/MISSING=REPORT.
* Удаляем переменную nb.
MATCH FILES FILE=* /DROP=nb.
!DOEND
* Удаляем переменную dummy.
MATCH FILES FILE=* /DROP=dummy.
!ENDDEFINE.
*///////////////////
SET MPRINT=yes.
!chart2 minnb=5 cats= age prog year.
EXECUTE.
Комментарии к использованию макроса
Для краткости я прокомментирую ответ с первым макросом (он называется !chart). (Последовательность действий для второго макроса такая же).
1. Запустите SPSS
2. Откройте (загрузите) свои данные через меню: File>Open>Data
3. Откройте редактор синтаксиса через меню: File>New>Syntax
4. Выделите синтаксис для макроса !chart и поместите его в редактор синтаксиса.
Макрос — это часть присланного синтаксиса, начинающаяся с
*////////////////////.
DEFINE !chart (minnb=!TOKENS(1) /cat=!TOKENS(1))
и заканчивающаяся словами
!ENDDEFINE.
*////////////////////.
SET MPRINT=yes.
!chart minnb=5 cat=age.
5. Комментарии: сам макрос заканчивается командой «!ENDDEFINE.». Инструкция SET MPRINT=yes нужна просто для того, чтобы вы видели код макроса в окне результатов.
Строка «!chart minnb=5 cat=age» — это уже вызов макроса. Она означает: выполнить макрос chart (построить диаграмму), используя переменную age (возраст), исключая из графика те категории возраста, куда попадают менее 5 человек.
6. Предположим, что одна из категориальных переменных в вашем файле — language (язык) и вы хотите исключить вывод языков, не набравших минимальной частоты 10. Тогда замените строку
!chart minnb=5 cat=age.
на следующие 3 строки:
COMPUTE dummy=1.
!chart minnb=10 cat=language.
EXECUTE.
7. Замечание: Команда COMPUTE, приведённая выше, находится двумя строками выше команды DEFINE в присланном ответе.
8. Теперь настаёт чарующий момент, когда вы готовы запустить макрос. Чтобы это сделать, выберите меню: Run>All
9. Проверьте окно результатов. Там должен быть график.
10. Если вам нужно сделать ещё графики с переменными region (регион) и climate (климат), добавьте ещё две строки:
!chart minnb=10 cat=region.
!chart minnb=10 cat=climate.
11. Комментарии: макрос !chart позволяет вам варьировать имена переменных для которых строится график и минимальный порог частоты отображаемой категории.
12. Если вам надо построить графики для нескольких переменных с одной и той же минимальной частотой, используйте макрос с именем !chart2
и вызываёте его следующей строкой, например
!chart2 minnb=10 cat=age climate region.
Макрос chart2 полностью прокомментирован здесь.


