es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

obteniendo el efecto marginal después de la estimación para el modelo logit anidado utilizando el paquete mlogit de R

He estimado el logit anidado en R utilizando el paquete mlogit. Sin embargo, encontré algunos problemas al intentar estimar el efecto marginal. A continuación se muestra el código implementado.

library(mlogit)

<h1>datos</h1>

data2 = read.csv(file = "neat_num_energy.csv")
new_ener2 <- mlogit.data(
  data2,
  choice="alter4", shape="long", 
  alt.var="energy_altern", chid.var="id")

<h1>modelo estimado</h1>

nest2 <- mlogit(
  alter4 ~ expendmaint + expendnegy | 
    educ + sex + ppa_power_sp + hu_price_powersupply + 
    hu_2price + hu_3price + hu_9price + hu_10price +
    hu_11price + hu_12price, 
  data = data2, 
  nests = list(
    Trad = c('Biomas_Trad', 'Solar_Trad'), 
    modern = c('Biomas_Modern', 'Solar_Modern')
  ), unscaled=FALSE)

<h1>crear variable Z</h1>

z3 <- with(data2, data.frame(
    expendnegy = tapply(expendnegy, idx(nest2,2), mean),
    expendmaint = tapply(expendmaint, idx(nest2,2), mean), 
    educ = mean(educ), 
    sex = mean(sex), 
    hu_price_powersupply = mean(hu_price_powersupply), 
    ppa_power_sp = mean(ppa_power_sp), 
    hu_2price = mean(hu_2price), 
    hu_3price = mean(hu_3price), 
    hu_9price = mean(hu_9price), 
    hu_10price = mean(hu_10price), 
    hu_11price = mean(hu_11price), 
    ppa_power_sp = mean(ppa_power_sp), 
    hu_12price = mean(hu_12price)
))

effects(nest2, covariate = "sex", data = z3, type = "ar")

<h1>> <em>* Error in Solve.default (H, g[!fixed]): Lapack routine dgesv: #> system is exactly singular:U[6,6] =0.</em>*</h1>

Mis datos están en formato largo con expendmaint y expendnegy siendo los únicos específicos de la alternativa mientras que todas las demás variables son específicas del caso.

altern4 es una variable nominal que representa cada alternativa.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “Error in Solve.default (H, g[!fixed]): Lapack routine dgesv: system is exactly singular:U[6,6] =0” sugiere que hay un problema de singularidad en la estimación de los efectos marginales. Esto suele suceder cuando algunas variables están perfectamente colineales o uno de los grupos tiene solo una alternativa.

    Para resolver este problema, puedes intentar los siguientes pasos:

    1. Verifica la colinealidad entre las variables independientes. Puedes utilizar la función vif del paquete car para verificar los factores de inflación de varianza. Si alguna variable tiene un VIF mayor a 10, debes considerar eliminarla del modelo.

    2. Verifica si alguno de los grupos tiene solo una alternativa. Puedes utilizar la función nobs del paquete mlogit para ver cuántas observaciones hay en cada grupo. Si algún grupo tiene solo una observación, debes considerar fusionarlo con otro grupo o estimar un modelo logit multinomial en su lugar.

    3. Intenta estimar los efectos marginales utilizando un tipo diferente de efectos marginales (por ejemplo, efectos parciales promedio, disposición a pagar). El argumento type en la función effects te permite especificar qué tipo de efectos marginales deseas estimar.

    4. Si todo lo demás falla, es posible que necesites modificar la especificación de tu modelo o los datos para evitar problemas de singularidad. Esto podría implicar eliminar algunas variables o alternativas, reescalar variables o utilizar un método de estimación completamente diferente.

Comments are closed.