0

我有一个数据集,我试图测试 7 天的广告期是否比 5 天的广告期更好。我觉得逻辑回归将是测试这一点的最佳方法。我每次进行 2 周的测试。我有流量、注册、损耗等数据。

以下是数据的样子:

              5d         7d  greater (does the 7d have atleast 5% more than 5d)
Traffic     179650  196395   1
subscribers 437899  442068   0
attrition   2304    2376     0
signups     5039    6246     1

1 表示是,0 表示否。

我在 R 中运行了这段代码:

fit2<-glm(greater~X5d + X7d, data=logr2, family = "binomial")

然后

predict(fit2, data=logr2, type = "response")

我的输出是:

 1            2            3            4 
1.000000e+00 6.753019e-13 1.386707e-10 1.000000e+00 

或者

> round(predict(fit2, data=logr2, type = "response"))
1 2 3 4 
1 0 0 1 

我怎样才能运行它,以便我只得到 1 个输出来告诉我 1 或 0(IE 7 天的总体增长是否超过 5%?)

谢谢

4

1 回答 1

0

我认为您混淆了predict函数的参数名称(请参阅文档),试试这个:

predict(fit2, newdata=logr2, type = "response")

奇怪的输出来自于您将训练数据作为预测的输入,这实际上没有任何意义。尝试一些新的数据点,如下所示:

input = data.frame(X5d = 123, X7d = 22)
predict(fit2, newdata=logr2, type = "response")

结果:

1

2.775557e-13

这意味着它的1概率几乎是0

如果您从数据集中给出一个确切的点:

input = data.frame(X5d = 179650, X7d = 196395)
predict(fit2, newdata=input, type = "response")

结果:

1

1

所以它是1有概率的1

您可以检查训练集中的其他数据点 - 结果非常完美,因为对于这样一些训练数据样本,您的拟合是理想的。

您可以在此处找到一个简单的类似示例。

于 2013-11-06T23:58:06.027 回答