Я пишу статью о разнице в оплате труда между мужчинами и женщинами в Литве, и моя цель - интерпретировать данные статистического обследования, определяя факторы, частично объясняющие разрыв в заработной плате (например, возраст, срок пребывания, образование и т. Д.), Используя Оахаку Разложение по Блиндеру.
Я очень мало знаю о «R», хотя в университете у меня было несколько классов, в основном о линейных регрессионных моделях. Пожалуйста, извините, если мои вопросы не сформулированы правильно. Любые комментарии и советы будут с благодарностью.
Я наткнулся на пакет 'Oaxaca' для 'R', но не смог полностью адаптировать функцию 'формулы' к моим данным. Инструкция пакета:
https://cran.r -project.org / веб / пакеты / Оахака / oaxaca.pdf
Моя проблема не в том, чтобы понять, как правильно использовать функцию «формула» для моих данных, которая содержит много нечисловых переменных, которые я пытался превратить в индикаторные («фиктивные») переменные со значениями «0» или "1".
В частности, я не могу изменить формулу, чтобы сделать результат инвариантным для выбранной ссылочной категории. Когда я пытаюсь это сделать, я получаю сообщение об ошибке: «Переменные d1 + d2 + d3 + ... в аргументе« формула »должны указывать членство во взаимоисключающих категориях».
Формула «Оахака», которая более или менее работает для меня, выглядит следующим образом:
1) у ~ х1 + х2 + х3 + ... | г
Здесь y - зависимая переменная, x1 + x2 + x3 + ... являются пояснительными
переменные, а z - индикаторная переменная, которая указывает, принадлежит ли наблюдение группе B (женщина) или группе A (мужчина).
Формула скорректирована для справочной категории:
2) у ~ х1 + х2 + х3 + ... | z | d1 + d2 + d3 + ...
Здесь d1 + d2 + d3 + ... являются индикаторными ("фиктивными") переменными, которые будут
отрегулировать так, чтобы результаты разложения не менялись в зависимости от
выбор пользователем справочной категории (Gardeazabal and Ugidos, 2004).
Я не могу запустить формулу 2), но я могу запустить формулу 1), когда удаляю пару фиктивных переменных, в противном случае я получаю ошибку.
У меня есть 5 уровней (отдельные переменные) для возраста (1–14–19, 2–20–29, 3–30–39 и т. Д.), 4 уровня владения недвижимостью (1–0–2, 1–2 - 2) до 4 лет), 15 уровней для промышленности, 63 уровня для профессии и т. д. Я буду называть возраст, срок службы, отрасль и профессию моими различными «типами», каждый из которых должен иметь свою собственную справочную категорию, опущенную в формуле.
Поскольку я использую много «типов» индикаторных переменных, я не понимаю, как «R» распознает, какая ссылочная категория принадлежит какому «типу»?
Может быть, «R» считывает все «фиктивные» переменные как уровни одного и того же «типа» и выбирает только 1 пропущенную переменную в качестве ссылочной категории для всех переменных?
Есть ли какой-нибудь способ, которым вы знаете, как я мог бы адаптировать свои данные, чтобы указать правильную справочную категорию для каждого типа? Судя по примеру с кадром данных «Чикаго», кажется, что у меня слишком много разных «типов» переменных для работы этой формулы.
Исходные данные, которые у меня есть, взяты из обзора структуры доходов Литвы 2014 года. Я создал новые данные в Excel (позже преобразованные в файл .csv) с использованием оригинала, следуя примеру фрейма данных «Чикаго», использованного в пример пакета «Оахака». Созданные данные в основном состоят из фиктивных переменных со значениями «0» или «1», за исключением столбца «Часы», который содержит часы, отработанные в месяце, и столбца log.wage, который содержит натуральный логарифм почасовой оплаты. , Все остальное - индикаторные переменные. Однако эти индикаторные переменные относятся к разным типам, как уже упоминалось, таким как возраст, срок владения и т. Д.
Я безуспешно пытался манипулировать исходным набором данных для создания переменных индикатора, используя 'R', потому что мне нужно создать конкретные новые переменные из множества существующих, например, все объединения, закодированные 431 и 432, должны быть объединеныв 1 переменную под названием «prof43».Пока я не выяснил, как это сделать.
Мои данные в основном содержат переменные-индикаторы, а типы переменных выглядят так:
str(S14)
'data.frame': 44952 obs. of 71 variables:
$ hours : int 1 1 1 1 2 1 1 2 1 1 ...
$ female : int 0 1 1 1 0 0 0 1 0 0 ...
$ age0 : int 0 0 0 0 0 0 0 0 0 0 ...
$ age1 : int 1 1 0 0 0 0 0 1 1 0 ...
$ age2 : int 0 0 0 1 0 1 0 0 0 0 ...
$ age3 : int 0 0 1 0 1 0 0 0 0 1 ...
$ age4 : int 0 0 0 0 0 0 0 0 0 0 ...
$ age5 : int 0 0 0 0 0 0 1 0 0 0 ...
$ prof11 : int 0 0 0 0 0 0 0 0 0 0 ...
......
$ prof96 : int 0 0 0 0 1 0 0 0 0 0 ...
$ edu1 : int 0 0 0 0 0 0 0 0 1 0 ...
$ edu2 : int 0 1 0 0 1 1 0 1 0 1 ...
$ edu3 : int 1 0 1 1 0 0 1 0 0 0 ...
$ ten1 : int 1 1 1 1 1 1 1 1 1 1 ...
$ ten2 : int 0 0 0 0 0 0 0 0 0 0 ...
$ ten3 : int 0 0 0 0 0 0 0 0 0 0 ...
$ ten4 : int 0 0 0 0 0 0 0 0 0 0 ...
$ size1to50: int 1 1 0 1 1 1 0 1 1 1 ...
$ nace1 : int 0 0 0 0 0 0 0 0 0 0 ...
$ nace2 : int 0 0 0 0 0 0 0 0 0 0 ...
......
$ nace15 : int 0 0 0 0 0 0 0 0 0 0 ...
$ pubcon : int 0 0 0 0 0 0 0 0 0 0 ...
$ temp : int 0 0 0 0 0 0 0 0 0 0 ...
$ log.wage : num 1.79 1.79 1.79 1.79 1.79 ...
Я запускаю функцию 'Oaxaca', используя этикоды:
library(oaxaca)
set.seed(03104) #random seed
Я получаю результаты от этого, но я сомневаюсь в их обоснованности из-за того, что я удаляю 1 ненулевую переменную индикатора (проф. 62) (в противном случае она не запускается):
results0 <- oaxaca(log.wage ~ hours + pubcon + temp + size1to50 + age0 + age1 + age2 +
age4 + age5 + ten1 + ten2 + ten4 + edu1 + edu3 + prof11 + prof12 + ..... +
prof96 + nace1 + nace2 + ... + nace14 | female, data = S14, R = 30)
# 1) y ~ x1 + x2 + x3 + ... | z
Код, который получает сообщение об ошибке для меня:
results1 <- oaxaca(log.wage ~ hours + pubcon + temp + size1to50 +
age0 + age1 + age2 + age4 + age5 + ten1 + ten2 + ten4 + edu1 + edu3 +
prof11 + prof12 + ..... + prof96 + nace1 + nace2 + ... + nace14 | female |
pubcon + temp + size1to50 + age0 + age1 + age2 + age4 + age5 + ten1 + ten2 +
ten4 + edu1 + edu3 + prof11 + prof12 + ..... + prof96 + nace1 + nace2 + ... + nace14,
data = S14, R = 30) # 2) y ~ x1 + x2 + x3 + ... | z | d1 + d2 + d3 + ...
При выполнении этого я получаю сообщение об ошибке:
Variables d1 + d2 + d3 + ... in argument 'formula' must indicate membership in mutually exclusive categories.
У кого-нибудь есть какие-либо предложения?Считаете ли вы, что использование исходного набора данных и сортировка его по переменным-индикаторам с помощью 'R' будет работать, и я мог бы выбрать справочную категорию, которую распознала бы функция 'формула'?
Если это так, какой пакет и формулы делаютВы предлагаете использовать для адаптации моих данных?
Или вы думаете, что я использую слишком много переменных для этого пакета 'Oaxaca', и я должен ограничить свои данные?
Кроме того, имеют ли смысл результаты, которые я получаю с формулой 1)?Я обеспокоен тем, что «R» не выбирает правильную справочную категорию для каждого «типа» набора переменных, в результате чего все переменные индикатора зависят от некоторой случайной пропущенной переменной, что делает результаты бессмысленными.
Извинитемои продолжительные разговоры, я надеюсь, что у меня был какой-то смысл, и если у кого-то есть опыт работы с пакетом «Оахака» или какие-либо идеи о том, что делать здесь, и хотите озвучить их - я чрезвычайно благодарен заранее!