Я хочу запустить регрессию для данных панели с порядковой переменной ответа. У меня есть данные на уровне индивидуума с ненаблюдаемой неоднородностью (фиксированные эффекты), которая не сбалансирована (не все индивидуумы наблюдаются в каждый период времени). Зависимая переменная - это упорядоченная категориальная переменная (ранг производительности), и люди могут идти вверх и вниз в зависимости от оценки коллег. У меня есть три переменные интересов (оценка 1, оценка 2, отличные результаты) и три элемента управления (age.at.evaluation, year.of.graduation, пол). Структура данных выглядит следующим образом:
str(sub1[, .(level, score.phds, score.jobs, gender, age.reward, year, cvu, dth_applic )])
Classes ‘data.table’ and 'data.frame': 2469 obs. of 8 variables:
$ level : Ord.factor w/ 5 levels "N/A"<"Candidato"<..: 3 3 4 4 3 3 1 1 3 3 ...
$ score.phds: num 20.49 20.49 20.49 20.49 7.11 ...
$ score.jobs: num 10.1 10.1 10.1 10.1 10.3 ...
$ gender : Factor w/ 2 levels "female","male": 1 1 1 1 1 1 1 1 1 1 ...
$ age.reward: int 57 61 62 65 44 47 51 52 57 60 ...
$ year : Factor w/ 24 levels "1993","1994",..: 12 12 12 12 7 7 7 7 1 1 ...
$ cvu : int 4817 4817 4817 4817 6415 6415 6415 6415 9634 9634 ...
$ dth_applic: int 2004 2008 2009 2012 2001 2004 2008 2009 1999 2002 ...
- attr(*, ".internal.selfref")=<externalptr>
- attr(*, "sorted")= chr "cvu"
Я успешно оцениваю модель со случайными эффектами, используя пакет pgml , а также объединяю стандартные ошибки.
DT <- pdata.frame (DT [,. (Cvu, level, score.phds, score.jobs, score.diff, пол, age.reward, год, dth_applic, grad.dumm)], index = c ("cvu", "dth_applic")) </p>
reg.ols <- pglm(level ~ score.phds + score.jobs + gender + age.reward + year,
data = DT,
family = ordinal('probit'), R = 5, print.level = 3,
method = 'bfgs', model = 'random')
c_st_e <- sandwich::vcovCL(reg.ols, DT$cvu)
reg.ols.clu <- coeftest(reg.ols, vcov = c_st_e)
Но когда я изменяю модель для фиксированных эффектов (внутри), в формуле отсутствует аргумент: 'start', который плохо объясняется в справке: start вектор начальных значений
reg.ols <- pglm(level ~ score.phds + score.jobs + gender + age.reward + year,
+ data = DT,
+ family = ordinal('probit'), R = 5, print.level = 3,
+ method = 'bfgs', model = 'within', start=c(0,0,0,0))
Error in lnl.ordinal(param = start, y = y, X = X, id = id, model = model, :
object 'Li' not found
Я тоже пытался с пакетом mvord безуспешно:
res <-
+ mvord(
+ formula = MMO(level, cvu, dth_applic) ~ score.phds + score.jobs + age.reward,
+ data = sub11,
+ threshold.constraints = rep(1,18),
+ threshold.values = rep(list(c(1,1,1)), 18)
+ )
Error in dev.resids(y, mu, weights) :
argument mu must be a numeric vector of length 1 or length 1
Есть идеи, как указать модель или подходящую упаковку?