【问题标题】:logistic regression for advertising analysis in RR中广告分析的逻辑回归
【发布时间】:2013-11-06 23:23:10
【问题描述】:

我有一个数据集,我试图测试 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%?)

谢谢

【问题讨论】:

  • 我认为您的模型运行不正确。您实际上只有没有预测变量的输出(目标)变量。
  • 也许我应该做一个统计显着性检验,而不是看 7d 和 5d 之间是否有 5% 的增长。 1=是有统计意义,0=没有意义?
  • 你问自己 7 比 5 好。我会构建两个模型并比较它们,比如通过 AIC。话虽如此,我认为这个问题属于 crossvalidated.com。
  • @RomanLuštrik 它不是,因为它涉及实现细节,而不是统计数据。看我的回答。

标签: r machine-learning regression logistic-regression


【解决方案1】:

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

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

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

你可以找到一个简单的类似例子here

【讨论】:

  • 我还是一样:1 2 3 41.000000e+00 6.753019e-13 1.386707e-10 1.000000e+00
猜你喜欢
  • 2016-12-11
  • 2012-11-19
  • 2018-01-26
  • 2018-02-12
  • 2014-06-20
  • 2021-11-13
  • 1970-01-01
  • 2014-06-26
  • 2019-08-20
相关资源
最近更新 更多