R 尝试运行固定效果逻辑回归时出错

R 尝试运行固定效果逻辑回归时出错,r,regression,logistic-regression,plm,R,Regression,Logistic Regression,Plm,我不知道在哪里可以得到帮助,因为这篇文章在StackExchange上被认为是离题的 我想在一个平衡的小组基础上进行一些回归,其中包括来自巴西的两个时间段的选举数据。我想了解的是,在禁止公司向候选人捐款的立法发生变化后,那些最依赖这些资源的个人当选的可能性是否较低 我已经在R上运行过这样的回归: model_continuous <- plm(percentage_of_votes ~ time + treatment + time*tre

我不知道在哪里可以得到帮助,因为这篇文章在StackExchange上被认为是离题的

我想在一个平衡的小组基础上进行一些回归,其中包括来自巴西的两个时间段的选举数据。我想了解的是,在禁止公司向候选人捐款的立法发生变化后,那些最依赖这些资源的个人当选的可能性是否较低

我已经在R上运行过这样的回归:

model_continuous <- plm(percentage_of_votes ~ time + 
                        treatment + time*treatment, data = dataset, model = 'fd')
然而,我得到了这个错误:

Error in maxRoutine(fn = logLik, grad = grad, hess = hess, start = start,  : 
  argument "start" is missing, with no default
为什么会这样?我的模型怎么了?这在概念上正确吗? 我希望第二次回归与第一次回归尽可能相似

我读过
survival
软件包中的
clogit
函数可以完成这项工作,但我不知道怎么做

编辑

这就是示例数据集的外观:

dataset <- data.frame(individual = c(1,1,2,2,3,3,4,4,5,5),
                      time = c(0,1,0,1,0,1,0,1,0,1),
                      treatment = c(0,0,1,1,0,0,1,1,0,0),
                      corporate = c(0,0,0.1,0,0,0,0.5,0,0,0))

dataset根据这些评论,我相信逻辑回归会减少到治疗和虚拟试验。因此,我制作了以下数据集:

dataset <- data.frame("treatment" = c(rep(1,1000),rep(0,1000)),
         "dummy_elected" = c(rep(1, 700), rep(0, 300), rep(1, 500), rep(0, 500)))
请注意,这些概率与我生成数据的频率一致


因此,对于每一行,在上面的两个等式中取最大概率,这就是所选的dummy_值。

此链接提到了使用PGLM的固定效果logit模型的崩溃,并建议了一种替代方法(glmmML包中的函数glmmboot):@dmb谢谢,但我不理解函数使用的语法。我如何具体说明哪些变量适用于个体和时间固定效应?再仔细考虑一下,有各种建模选项,但它们取决于您的数据特征。听上去,在选举前后代表选举的时间只有0或1?治疗怎么样?听起来可能是1或0?或者你对每一位候选人的待遇(如果是的话,很多候选人还是不那么多)?是的,'time=0'代表2012年选举,在立法变更之前。时间=1表示变更后的2016年选举。治疗也是二元的。每一位获得任何形式的公司资金的候选人在被允许的情况下都会得到=1´的治疗。有大量的候选者,大约35k。你最终找到了估算固定效应逻辑模型的最佳工作解决方案了吗?对不起,我想我还不清楚我的数据集的结构。治疗时间并不总是0=1。我在两个时间段内跟踪相同的个体。接受治疗的个人的标准=1,即该个人的公司贡献t=0。如果这是真的,那么同一个人将在时间上接受治疗=1=1如果该个人在时间0和(0,0)内收到捐款,那么治疗是(1,1),否则是(1,1)?是的,如果(1,1)表示该个人在每个时间段的治疗值,我感谢你的回答,但是时间和个人固定效应呢?因为“glm”不适用于固定效果,是吗?对于您的第一个投票率为%的案例,我可以看出您需要时间0和时间1。但是,在第二种情况下,选择的时间0始终为1,并且治疗随时间的推移按个人类型(捐赠或不捐赠)保持不变。例如,治疗=1意味着在时间0或1内捐赠。每行代表一个候选人
dataset <- data.frame("treatment" = c(rep(1,1000),rep(0,1000)),
         "dummy_elected" = c(rep(1, 700), rep(0, 300), rep(1, 500), rep(0, 500)))
library(MASS)
model_binary <- glm(dummy_elected ~ treatment, family = binomial(), data = dataset)
summary(model_binary)
Probability(dummy_elected) = 1 =>  1 / (1 + Exp(-(1.37674342264577E-16 + 0.847297860386033 * :treatment)))
Probability(dummy_elected) = 0 => 1 - 1 / (1 + Exp(-(1.37674342264577E-16 + 0.847297860386033 * :treatment)))