- •Семинар 1. Введение в Stata
- •Управление данными
- •Формат исходных данных
- •Импорт данных в пакет Stata
- •Удаление ненужных переменных или наблюдений
- •Проставление меток переменных
- •Создание новых переменных
- •Перекодировка переменных
- •Автоматическое создание набора дихотомических (бинарных) переменных из категориальной
- •Подсчет числа наблюдений, удовлетворяющих определенному условию
- •Примеры простейшей обработки данных
Удаление ненужных переменных или наблюдений
Удалим переменную dom_boxoffice – номинальные кассовые сборы в США, так как у нас есть эта же переменная с поправкой на инфляцию. Кроме того, удалим фильмы для которых значение переменной mpaa_rating=“Not Rated”, так как нас будет интересовать влияние рейтинга MPAA на кассовые сборы. Для решения обеих задач этого используется команда drop:
drop dom_boxoffice
drop if mpaa_rating==”Not Rated”
Обратите внимание, что логическое равенство в Stata обозначается двумя знаками «равно» (==).
Проставление меток переменных
Обычно названия переменных недостаточно информативны, чтобы было ясно, что именно они означают и в каких единицах измерены, поэтому в статистических пакетах есть возможность прописать метки переменных (variable labels) на английском языке, то есть описание переменных. Лучше делать это для всех переменных, но мы для экономии времени сделаем это только в нескольких наиболее сложных случаях. Введем следующие команды, чтобы создать метки для некоторых переменных (названия переменных можно вводить не вручную, а путем нажатия на названии из списка переменных):
label variable infadj_prodbudget “inflation-adjusted production budget (2011 prices)”
label variable infadj_dom_boxoffice “inflation-adjusted domestic box office (2011 prices)”
label variable openweekend_theaters “number of theaters on the opening weekend (2011 prices)”
Создание новых переменных
Для создания новых переменных используется команда gen.
Создадим переменную, равную отношению кассовых сборов к производственному бюджету:
gen revenue_budget_ratio=infadj_dom_boxoffice/infadj_prodbudget
Создадим переменную, равную 1, если кассовые сборы не менее чем вдвое превысили производственный бюджет, и 0 в противном случае:
gen profit=(infadj_dom_boxoffice>=2*infadj_prodbudget)
Переменная profit задана логическим выражением. Если оно истинно, то profit принимает значение 1 (истина), иначе – 0 (ложь).
Упражнение: создайте переменную, делящую выборку на 2 части: фильмы, показанные не менее чем в 600 кинотеатрах в первые выходные показа (переменная принимает значение 1) и фильмы, показанные менее, чем в 600 кинотеатрах (переменная принимает значение 0).
Решение: gen theater600=(openweekend_theaters>=600)
Создадим переменную profit3 (то есть категориальную переменную, показывающую к какому из трех уровней прибыльности относится фильм), принимающую
значение 0, если revenue_budget_ratio<1
значение 1, если 1<revenue_budget_ratio<2
значение 2, если revenue_budget_ratio>2.
Удобнее всего это сделать с помощью команды recode, которая перекодирует переменную revenue_budget_ratio в новую переменную profit3:
recode revenue_budget_ratio (min/1=0) (1/2=1) (2/max=2), gen(profit3)
Перекодировка переменных
Такие переменные как метод производства, жанр и рейтинг MPAA сейчас содержат текстовые значения. В количественном анализе нам нужно, чтобы эти переменные были закодированы числами так, чтобы каждому значению категориальной переменной соответствовал определенный числовой код. Если Вы изначально в Excel не преобразовали их в числовые коды, то это можно сделать в Stata автоматически, однако Stata присваивает числовые коды ориентируясь на место названия категории в списке категорий, упорядоченном по алфавиту. Поэтому желательно все же проводить предварительную работу в Excel, особенно если речь идет о порядковых, а не номинальных переменных. Если Вам все равно, например, какому жанру какой числовой код будет соответствовать в новой переменной, то можно воспользоваться командой encode в Stata.
encode prod_method, gen(prod_method2)
encode genre, gen(genre2)
Значения новых переменных (два новых столбца справа) теперь синего цвета и, если щелкнуть по какому-то значению, мы увидим числовой код, соответствующий ему. Например, щелкнув по слову Comedy, видим число 3. Таким образом, Stata сделала так, что, если значение переменной genre=3, то это комедия.
Все метки значений можно посмотреть, зайдя в Variables Manager и выделив какую-то переменную, для которой есть value labels, перейти в Manage Value Label:
Поскольку переменная mpaa_rating – порядковая, нас не устроит автоматическая перекодировка текста в числа, ведь мы хотим, чтобы рейтинги были упорядочены, поэтому напишем команду, которая перекодирует текстовые значения в числовые и поместит их в новую переменную mpaa_rating2. Генерируем новую переменную, вначале всегда принимающую значение 1. Этому значению будут соответствовать рейтинг open и G, разрешающие просмотр фильма людям любого возраста.
gen mpaa_rating2=1
Остальным рейтингам MPAA будут соответствовать другие числовые коды в порядке возрастания ограничений по просмотру фильма, поэтому их нужно прописать:
replace mpaa_rating2=2 if mpaa_rating=="PG"
replace mpaa_rating2=3 if mpaa_rating=="PG-13"
replace mpaa_rating2=4 if mpaa_rating=="R"| mpaa_rating=="NC-17"
Теперь пропишем метки значений этой переменной:
label define mpaa_rating2 1 "G/Open" 2 "PG" 3 “PG-13” 4 “R/NC-17”
Упражнение: С помощью команды label define самостоятельно пропишите метки значений для переменной sequel (1 – sequel, 0 – not sequel).
Решение: label define sequel 1 "sequel" 0 "not sequel”
Снова зайдем в Data - Data Editor- Data Editor (Edit) - Tools – Value Labels – Manage value labels и удостоверимся, что теперь все категориальные переменные имеют метки значений для удобства интерпретации результатов.