不知道从哪里可以得到帮助,因为这个确切的帖子在StackExchange上被认为是题外话。

我想基于一个平衡的面板进行一些回归分析,其中巴西的选举数据集中在两个时间段上。我想了解的是,在一项禁止对候选人的坚定捐赠的立法变更之后,那些最依赖这些资源的人当选的可能性较低。

我已经在R上进行了如下回归:

model_continuous <- plm(percentage_of_votes ~ time +
                        treatment + time*treatment, data = dataset, model = 'fd')


在此模型上,我使用了一个连续变量(投票百分比)作为我的因变量。我的treatment单位或time = 0中的单位没有来自公司的竞选捐款。

现在,我想更改我的因变量,以便它是一个二进制变量,指示该候选人是否当年当选。我所有的单位都是在time = 0上选举产生的。如何使用固定效果估算logitprobit模型?我尝试在R中使用pglm包。

model_binary <- pglm(dummy_elected ~ time + treatment + time*treatment,
                           data = dataset,
                           effects = 'twoways',
                           model = 'within',
                           family = 'binomial',
                           start = NULL)


但是,我得到了这个错误:

Error in maxRoutine(fn = logLik, grad = grad, hess = hess, start = start,  :
  argument "start" is missing, with no default


为什么会这样呢?我的模型有什么问题?从概念上讲是正确的吗?
我希望第二个回归与第一个回归尽可能相似。

我已经阅读过clogit包中的survival函数可以完成此工作,但是我不知道该怎么做。

编辑:

这是样本数据集的样子:

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))

最佳答案

根据评论,我认为逻辑回归可简化为处理和dummy_elected。因此,我制作了以下数据集:

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)))


然后,我运行GLM模型:

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)))


请注意,这些概率与我生成数据的频率一致。

因此,对于每一行,都采用上述两个方程式的最大概率,这就是dummy_elected的值。

关于r - 尝试运行固定效应逻辑回归时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46186420/

10-12 17:22
查看更多