R mlogit中的持续计算奇异性

R mlogit中的持续计算奇异性,r,mlogit,R,Mlogit,我的问题与尝试使用mlogit包时的持久计算奇点有关 首先,关于我的数据: 我的数据涉及在体育选秀中预测选择。每支球队都从同一个球员池中进行有序选择,并具有球队和球员属性。因此,在姆洛吉特的语言中,每个“团队”都是一个个体,每个“玩家”都是另一个选择。举一个过于简单的例子,假设五支球队各自选择一名球员 Pick Player PPG Age Team 1 Ben Simmons 19.2 19 PHI 2 Brandon Ingram 17.3 18 PHI 3

我的问题与尝试使用mlogit包时的持久计算奇点有关

首先,关于我的数据:

我的数据涉及在体育选秀中预测选择。每支球队都从同一个球员池中进行有序选择,并具有球队和球员属性。因此,在姆洛吉特的语言中,每个“团队”都是一个个体,每个“玩家”都是另一个选择。举一个过于简单的例子,假设五支球队各自选择一名球员

Pick      Player  PPG  Age Team
1    Ben Simmons 19.2  19  PHI
2 Brandon Ingram 17.3  18  PHI
3   Jaylen Brown 14.6  19  PHI
5      Kris Dunn 16.4  21  PHI
6    Buddy Hield 25.0  22  PHI
我正在尝试使用mlogit包。我首先使用mlogit.data重新格式化数据

Choices <- mlogit.data(test,
     choice="picked",
     shape="long",
     id.var="Team",
     alt.var="Player",
     chid.var="Team",
     varying=c(4:5))
显然,我有更多的球员和变数,但这是基本结构

然后,我尝试运行条件logit回归:

mlogit(Choices,picked ~ <regvar>,data=Choices)
然而,我在别处看到的解决方案似乎并没有解决我的问题。问题依然存在,精确数字不同,即使在简单的两变量模型中,如低相关性的示例数据(显然,数字不同)。事实上,它甚至发生在一个单一的回归

我要做的事情的简化版本:

model<-mlogit(
  picked~PPG+Age,
  data=Choices)

model如果我使用mlogit pkg中的函数执行条件逻辑回归,并根据我理解的变量进行调整:

 Choices <- mlogit.data(data=test, choice="picked",
          chid.var="team",alt.var="pick",shape="long")
从mlogit-pkg来看,我已经有一段时间没有看过了,但它看起来不像我用于条件逻辑回归的语法

根据我的经验,计算奇异性误差msg与高度相关/相同的变量有关

如果您确定几乎没有共线,那么我猜您的模型语法设置不正确

PS:您的代码抛出:

In file(file, "rt") :
  cannot open file 'toy_data.csv': No such file or directory

我认为您需要用一些数据行填充“toy_data.csv”。如果您的数据是敏感的,那么只需发明一些(足以证明问题)。

这似乎更适合交叉验证,因为根据我的经验,这可能是一个统计问题,而不是编程问题,这是由于某个变量在充分条件下丢失了组内的变量——您是否尝试过一次添加一个变量以查看它何时中断?如果可以,请更详细地探讨此变量中的组变量。@MichaelChirico如果我正确理解您的问题,是的,我已经研究过了。即使我只包含一个右侧变量,问题仍然存在。这个变量是什么似乎无关紧要。这个错误的普遍性让我认为这是由于数据格式/我使用了mlogit语法,而不是原始数据。看起来您有很多重复条目。这不会使你倾向于奇异的X矩阵吗?我认为问题是你的选择都是唯一的,因此只被选择了一次,所以每一级因变量只有一个1。当你有一组选择时,多项式逻辑是合适的,每一个选择在不同的条件下被多次选择。我的理解是,根据文档,它不应该是重要的-选择号码和球员姓名都是相同的唯一标记的“备选方案”由于每个球员都代表了一支球队可以选择的选择,他们构成了备选方案。使用选择将相当于一个简单的重新标记,因为每个选择编号都与一个唯一的玩家关联。这有什么不对吗?同样,如果我尝试切换它,它不会改变我得到的错误消息,但它确实会改变精确的倒数条件数。这似乎表明,我认为两者是等价的,这肯定是错误的。
model<-mlogit(
  picked~PPG+Age|Team_MSA_Size,
  data=Choices)
setwd("Filepath")
library(mlogit)
toy_data <- read.csv("toy_data.csv",header = TRUE)
Choices_test<- mlogit.data(toy_data,
                       choice="picked",
                       shape="long",
                       id.var="Team",
                       alt.var="Pick",
                       chid.var="Team")
mlogit(picked~as.factor(Position)+as.factor(Black)+Age+PPG+APG+RPG+Team_WS,
     data=Choices_test)


Error in solve.default(H, g[!fixed]) : 
  system is computationally singular: reciprocal condition number = 6.53305e-21
 Choices <- mlogit.data(data=test, choice="picked",
          chid.var="team",alt.var="pick",shape="long")
mlogit(picked~as.factor(Position)+as.factor(Black)+Age+PPG+APG+RPG+Team_WS,
     data=Choices_test)
In file(file, "rt") :
  cannot open file 'toy_data.csv': No such file or directory