Я использую пакет mlogit в R для оценки модели смешанного логита с параметром log-normal.Пакет работает нормально, но есть ли способ извлечь случайные коэффициенты, особенно для ненормально распределенных параметров?
Используя пример из "упражнений Кеннета Трэйна, использующих пакет mlogit для R", стр. 22,
library(mlogit)
data("Electricity", package = "mlogit")
Electr <- mlogit.data(Electricity, id = "id", choice = "choice",
varying = 3:26, shape = "wide", sep = "")
Electr$rev.tod <- -1*Electr$tod # Reverse sign on tod parameter
Elec.mxl <- mlogit(choice ~ pf + cl + loc + wk + rev.tod + seas | 0, data=Electr,
rpar = c(cl = "n", loc = "n", wk = "u", rev.tod = "ln", seas = "n"),
R = 100, halton = NA, print.level = 0, panel = TRUE)
summary(Elec.mxl)
Генерирует этот (усеченный) вывод:
Coefficients :
Estimate Std. Error t-value Pr(>|t|)
pf -0.866325 0.032452 -26.696 < 2.2e-16 ***
cl -0.203770 0.013411 -15.194 < 2.2e-16 ***
loc 2.038715 0.079918 25.510 < 2.2e-16 ***
wk 1.481339 0.065181 22.727 < 2.2e-16 ***
rev.tod 2.105324 0.033971 61.973 < 2.2e-16 ***
seas -8.490331 0.279262 -30.403 < 2.2e-16 ***
sd.cl 0.360140 0.017474 20.610 < 2.2e-16 ***
sd.loc 1.575765 0.089507 17.605 < 2.2e-16 ***
sd.wk 1.600303 0.122982 13.012 < 2.2e-16 ***
sd.rev.tod 0.390088 0.021940 17.780 < 2.2e-16 ***
sd.seas 1.997713 0.106031 18.841 < 2.2e-16 ***
random coefficients
Min. 1st Qu. Median Mean 3rd Qu. Max.
cl -Inf -0.4466810 -0.2037701 -0.2037701 0.03914082 Inf
loc -Inf 0.9758776 2.0387151 2.0387151 3.10155255 Inf
wk -0.1189636 0.6811879 1.4813394 1.4813394 2.28149087 3.081642
rev.tod 0.0000000 6.3104924 8.2097637 8.8587752 10.68065958 Inf
seas -Inf -9.8377681 -8.4903311 -8.4903311 -7.14289412 Inf
Есть ли способ извлечь среднее из этих случайных коэффициентов?Это в основном проблема для ненормально распределенных параметров.Как указал Train & Croissant, вы можете использовать следующий код для вычисления среднего коэффициента для логарифмически нормально распределенного параметра, но мне интересно, есть ли более простой (и более простой!) Подход.
-exp(coef(Elec.mxl)["rev.tod"]+(0.5*(coef(Elec.mxl)["sd.rev.tod"])**2))