0

我使用 mlgit 包估计了 R 中的嵌套 logit。但是,我在尝试估计边际效应时遇到了一些问题。下面是我实现的代码。

library(mlogit)

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

# estimate model
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)


# create Z variable 
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")
#> ** Error in Solve.default (H, g[!fixed]): Lapack routine dgesv: #> system is exactly singular:U[6,6] =0.**

我的数据是长格式的,其中 expendmaint 和 expendnegy 是唯一的替代特定变量,而其他所有变量都是特定于大小写的。

altern4 是代表每个备选方案的名义变量

4

0 回答 0