Предупреждение о хи-квадрат в оценке веса склонности
Я использую весовой коэффициент склонности ps()
функция twang
пакет для выравнивания двух групп участников программы активного рынка труда (ALMP), которые различаются по ряду причин. Одним из различий является уровень образования, который ради этого вопроса я перекодировал на два уровня: одно значение для тех, у кого есть хотя бы начальное образование, другое для тех, кто имеет самое большее начальное образование.
Когда я включаю эту переменную как фактор:
ALMP$Education_f2 = factor(ALMP$Education_f2, levels = c(„at.least.primary“, „at.most.primary“), ordered = TRUE)
R начинает жаловаться во время итерации, что Chi-squared approximation may be incorrect
,
Когда я включаю переменную образования как целое число
ALMP$Education_int = as.integer(ALMP$Education_int)
R не выдает предупреждений.
Гриффин и др. Говорят здесь, что twang
Пакет может обрабатывать категориальные переменные:
Нет необходимости указывать условия взаимодействия в формуле. Также нет необходимости - и это может быть контрпродуктивно - создавать индикаторные или "фиктивные" переменные для представления категориальных ковариат при условии, что категориальные переменные хранятся как фактор или как упорядочено (см. Справку (фактор) для более подробной информации),
Если это правда, то почему R жалуется? И это то, что я должен беспокоиться?
Я также читал здесь, что, как правило, квадрат хи жалуется, если в какой-либо категории имеется менее 5 наблюдений. Это не мой случай, так как, если я запускаю кросс-таблицу (2x2) по образованию и типу программы, минимальная доля участников в одной подгруппе составляет 2810 (8% всех случаев).
Конечно, я мог бы просто сохранить переменную образования как целое число (0/1), но я задаю этот вопрос, потому что, если возможно, я хотел бы уточнить переменную и включить ее более чем в два уровня (например, без образования, первичный, вторичный, третичный), где, очевидно, целочисленная переменная больше не будет работать.
У меня всего около 35 тысяч наблюдений в кадре данных, и я использую 3.4.2. версия R (x64) для Windows 7 Professional (x64).
Данные поступают из общедоступной базы данных реестра с некоторыми правилами конфиденциальности, поэтому, к сожалению, я не могу поделиться ими, но рад описать любую функцию более подробно, которая может помочь прояснить ситуацию.
Заранее большое спасибо.
1 ответ
Я думаю, что нашел проблему. Я использую R Studio, и это связано с тем, пишу ли я свой код в R Markdown или R Script.
Проблема возникает только тогда, когда я передаю фактор-переменную в функцию ps в R Markdown, например:
library(twang)
data("lalonde")
lalonde$college = ifelse(lalonde$educ<13, 0, 1)
lalonde$college_f = factor(lalonde$college, ordered = TRUE)
ps.lalonde_f = ps(treat ~ age + college_f + black + hispan + nodegree + married + re74 + re75,
data = lalonde,
n.tree = 1000,
interaction.depth = 2,
shrinkage = 0.01,
perm.test.iters = 0,
stop.method = c("es.mean", "ks.max"),
estimand = "ATT",
verbose = FALSE)
Когда я заменяю college_f
аргумент числовой college
в функции ps() я больше не получаю предупреждений хи-квадрат. Кроме того, если я просто передам приведенный выше код в сценарий R, предупреждение также не появится.
(Я использую R-Studio версии 1.1.442.)