楼主: pan1129
8130 12

[作图问题求助] did安慰剂检验出现=exp not allowed是为什么? [推广有奖]

11
啊哈哈哈哈哈哈123456 发表于 2024-6-4 15:35:03
aa74 发表于 2024-5-5 18:03
请问解决了吗
我的模型写错了,你检查一下是不是用成了平行趋势检验的模型

12
赵安豆 发表于 2024-12-2 22:59:50
在Stata中使用`permute`命令进行安慰剂检验时,遇到`=exp not allowed`的错误信息通常意味着你在命令中不当使用了等号(`=`)。在`permute`命令语法里,你应当使用双等号(`==`)来指定一个条件。

例如,如果你想要测试的是`treat`组别变量和回归系数`beta`(即`_b[treat]`)是否等于0的情况下的P值,正确的命令格式应该是这样的:

```stata
permute treat beta : regress y c.x##i.treat, vce(cluster clustervar) if condition ///
    , reps(1000) level(95) keep(permresults.dta)
```

但在这个特定情况下(如果我理解你的目标正确),你应当调整`permute`命令的语法以正确地指定测试条件,比如:

```stata
permute treat : regress y c.x##i.treat, vce(cluster clustervar) if condition ///
    , reps(1000) level(95) keep(permresults.dta)
scalar beta = _b[treat]
qui sum beta if r >= .
di "The p-value is " r(p)
```

在这个例子中,你首先执行了回归,并通过`_b[treat]`保存了treatment组的系数值。之后使用`summarize`命令计算beta等于或大于0的次数(假设你的原假设是β=0)。然后,基于这些结果计算出p值。

在你的具体情况下,你可能想要检验的是_treat_变量的回归系数是否显著不同于某个特定值(如零),所以要确保你在`permute`命令中正确地使用了双等号(`==`)以及正确指定了要进行的测试。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



13
澄语 发表于 2025-5-14 11:38:27
试试把这些代码放在同一行,少了:后面的命令也不能成功执行
permute did beta = _b[did] se = _se[did] df = e(df_r), reps(500) rseed(123) saving("simulations.dta"): reghdfe y did, absorb(country year) vce(robust)

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 06:37