【发布时间】:2018-05-24 17:39:06
【问题描述】:
有一些相关的问题,但我真的无法理解它。我是统计、R、mlogit 包以及 stockoverflow 的新手。我会尽量准确地提出我的问题。 这是[数据链接]。(https://docs.google.com/spreadsheets/d/1IvN6ZgCgDERu3Mn4AglZMjicoXnFQQHc9GhAhbrpFRI/edit?usp=sharing) 我有一个来自离散选择实验的数据集,其中一个因变量“选择”具有两个级别(是/否)和 4 个自变量,每个 3 个级别。
我尝试使用 mlogit 进行估算,但我遇到了一些实际问题,我的主管无法提供帮助。在我的数据集中,每个变量的值为 1、2、3,(品牌 1 为 1,品牌 2 为 2,等等...)
t1 <- read_csv("~/Dokumente/UvA/Thesis/R/t1.csv")
t1 <- mlogit.data(data=t1, choice="choice",shape="long",alt.levels=paste("pos",1:4),id.var="id")
要运行估计,我使用以下函数:
m1 <- mlogit(choice~ 0 + Brand+ Features+ Valence+ Volume, data=t1)
summary(m1)
得到了这个结果:model 1 estimates 并注意到 Rstudio 将我的数据集变量解释为整数。由于变量是 3 个不同的品牌、3 个不同的特征和 3 个不同类别的 valenve 和 volume(低、中和高),我想包括对水平的估计。因此,我厌倦了将它们上传到 Rstudio 并使用此功能将它们指定为字符
library(readr)
t1 <- read_csv("~/Dokumente/UvA/Thesis/R/t1.csv",
col_types = cols(Brand = col_character(),
Features = col_character(), Valence = col_character(),
Volume = col_character()))
如果我现在运行相同的 mlogit 函数,我会得到一个错误:
Error in solve.default(H, g[!fixed]) : system is computationally singular: reciprocal condition number = 3.11303e-18
当我使用不同级别的字符(例如,品牌名称而不是 1、2、3 参见数据表 2“t2”)时,我遇到了同样的奇点问题。 a) 如果我使用第一个数据集中的数字,结果是否有意义? b) 如何将我的值整合为字符来估计属性级别?
我希望有人可以帮助我,因为我对这一切感到非常困惑和陌生。我肯定犯了一个非常基本或愚蠢的错误。
干杯
【问题讨论】: