stata中,数据集包含Userid、action、discount、purbycoup、click、receivenouse、used几列,当action=0时,click=1,purbycoup=0;action=1或2时,receivenouse=1,purbycoup=0;当action=3时,used=1,purbycoup=1,对于每一个Userid来说,可能会出现两次甚至多次purbycoup=1的情况,在这种情况下,执行以下语句:lclogit purbycoup click receivenouse used discount ,group(userid) id(userid) nclasses(2) membership(user_id) seed(123) 、lclogitml, iter(10)语句,显示purbycoup is not a 0/1 variable which equals 1 for the chosen alternative.
时间: 2024-02-01 15:15:41 浏览: 42
Stata数据集缺省值的处理
5星 · 资源好评率100%
这个错误是因为 lclogit 需要的因变量(dependent variable)必须是二元变量(0或1),而 purbycoup 可能会出现多次为1的情况,导致不能满足这个要求。
解决方法是将 purbycoup 变成一个二元变量。可以使用 egen 命令生成一个新的变量 purbycoup_new,它的值为每个 Userid 是否有过 purbycoup=1 的情况,然后将 purbycoup_new 作为 lclogit 的因变量。
具体做法如下:
1. 使用 egen 命令生成新的变量 purbycoup_new:
```
egen purbycoup_new = max(purbycoup), by(userid)
```
2. 将 purbycoup_new 作为 lclogit 的因变量:
```
lclogit purbycoup_new click receivenouse used discount ,group(userid) id(userid) nclasses(2) membership(user_id) seed(123)
lclogitml, iter(10)
```
这样就可以避免 purbycoup 不是二元变量的问题了。
阅读全文