我正在为以下模型运行负二项式模型。复制本文Association Between Gun Law Reforms
中表3的结果di = ln(ni)+β00+β10yeari + ei,i = 1997,…,2013
其中,d =原始死亡率,n =处于危险状态的人年和年为1997年至2013年。
以上模型用于估计趋势(以相对 (1997-2013)期间死亡人数的年死亡率变化
如何在R中适合此模型。有关R中语法的任何建议。 也有人可以解释什么是β00和β10?我应该如何选择这些值?
下面是我的数据框中的值
Cons(2, _)
下面是我的值dput(dataframe)
Nil
我计算出avgsuicidegun的基本年使用量为(suicidegun * 100000)/ personyearsatrisk,平均每年有100,000人。
avgsum是avgsuicidegun和avghomocidegun的总和
下图显示了每年枪支平均死亡率趋势。此图中请参考1997年至2013年的趋势线:
。
我正在尝试找到涉及FireArms的死亡人数/每100000人口(95%CI)的年死亡率的趋势估计值
答案 0 :(得分:1)
我同意@Grubbmeister的观点,您对模型的描述看起来很奇怪。可能应该是:
要适合此模型:
## compute total gun deaths per year
gundata <- transform(gundata, guntotal=suicidegun+homocidegun)
library(MASS)
g1 <- glm.nb(guntotal ~ 1 + year + offset(log(personyearsatrisk)),
data=gundata)
要提取所需的系数:
coef(g1)
coef(summary(g1))
1-exp(coef(g1)["year"]) ## 0.04903379
“年”系数为-0.05027,这意味着枪支死亡人数以每年5%的速度减少;通过上面的计算可以得出更精确的值(即每年减少4.9%)。
我仅快速浏览了您链接的论文,但此处的系数(exp(coef(g1)["year"])
)似乎与他们为1997-2013年期间趋势所引用的0.951值相符(这是预期的乘性在一年内枪支死亡率下降;负二项式模型使用对数链接函数)。
答案 1 :(得分:0)
我不太了解如何对已对数转换的预测变量使用负二项式分布,因为它是为整数数据设计的。
无论如何...我们将继续努力。我还没有进行任何日志转换,但是要做到这一点,请将@RequestMapping(value = "/multiAnswer", method = RequestMethod.POST)
public Response submitAnswer(SubmitMultiAnswerRq rq) {
return service.submitAnswer(rq);
}
public class SubmitMultiAnswerRq {
private List<SubmitAnswerRq> answers;
//getter and setter
}
放在必须转换的变量周围。
您还应该提供以下代码行:
log()
您要求的beta是最终模型中的常数,您可以通过以下方式获取它:
death$avgsum<-((death$homocidegun+death$suicidegun)/death$personyearsatrisk)*100000
install.packages("MASS")
library("MASS")
mod<-glm.nb(avgsum~year, data= death)
#to check the residuals
plot(mod)
#However, I don't think a negative binomial distribution works with this data, so I'd just use a simple linear regression instead:
mod1<-lm(avgsum~year, data= death)
要获取负二项式模型的R2值:
summary(mod)