计数过程的回归模型

数据挖掘 回归
2021-10-07 19:19:11

在 RI 有data哪里head(data)给出

day   count   promotion
1        33        20.8
2        23        17.1  
3        19         1.6  
4        37        20.8    

现在day只是这一天(并且是有序的)。promotion是当天的促销价值。它只是广告在电视上出现的次数。count是我们当天获得的新用户数量。

我想调查促销价值对新用户的影响(count)。由于我们有一个计数过程,我认为最好建立一个泊松回归模型。

model=glm(formula= data$count ~ data$promotion, data=data)

当我们输入时,summary(model)我们得到

Coefficients:
           (Intercept)              good_users$promotion  
              13.40216                   0.24342

Degrees of Freedom: 793 Total (i.e. Null);  792 Residual
Null Deviance:      9484 
Residual Deviance: 9325     AIC: 12680

这是数据图。

在此处输入图像描述

但是当我绘制模型的拟合值时

points(model$promotion, model$fitted, col="blue")

我们得到这个

在此处输入图像描述

这是另一个显示相同但删除了 0 促销天的图。 在此处输入图像描述

我应该如何选择我的回归模型(我应该使用 lm 而不是 glm)还是另一种更好的方法来解决这个问题?因为数据不漂亮但更随机,应该怎么办?

更新

寻找甜蜜点

为了找到一个甜蜜点,我做了以下事情。data分成10组。group1只是促销值在 内的子集1:10group2是促销值介于 之间的数据,11:20其他组以此类推。所以在R中我们有

group1 <- subset(data, data$promotion %in% 1:10)
group2 <- subset(data, data$promotion %in% 11:20)
group3 <- subset(data, data$promotion %in% 21:30)
...
group10 <- subset(data, data$promotion %in% 91:100)

现在我可以wilcox.test通过键入来测试组之间是否存在显着差异

wilcox.test(group2, group1, alternative="greater")

这给出了一个低 p 值,即group2显着new_good_users高于group1这同样适用于

wilcox.test(group3, group2, alternative="greater")

但是 我得到一个 0.20 的 p 值,即和之间wilcox.test(group4, group3, alternative="greater") 没有显着new_good_users差异其余的组对最多 10 个也是如此。group4group3

所以这必须意味着,如果我们promotion在第一组增加,我们就会增加,new_good_users但在最后一组我们没有增加。这意味着我们在group3promotion-value所在的位置有一个甜蜜点21:30这不正确吗?

1个回答

我不得不引用 Tukey,也许是数据科学的祖父:

一些数据和对答案的渴望的结合并不能确保可以从给定的数据体中提取合理的答案。

我认为您的泊松模型没有任何问题。事实上,它非常适合数据。数据嘈杂。您对此无能为力。也许是由于当时电视上的其他任何东西、天气或月相造成的噪音。不管它是什么,它不在您的数据中。

如果您合理地认为天气可能会影响您的数据,请获取天气数据并添加它。如果它为每个自由度降低了足够的对数似然,那么它做得很好,你把它留在里面。这是回归建模 101。

当然,您还可以做数不胜数的其他事情。通过您想要的任何旧转换来缩放数据。拟合二次方。四次方。五分之一。一条样条线。您可以包括日期和可能的时间相关效应。但请始终牢记 Tukey 所说的 - 如果您的数据嘈杂,您将无法从中获得任何收益。就这样。