运行使用一列预测另一列日志的线性回归?

时间:2016-02-17 23:45:32

标签: r linear-regression predict

我有这些数据:

  ...
 getGeneralTopic() {
    var generalTopic;

    this.http.get('/topics?name=general')
        .map((res) => {
            return res.json()["hydra:member"][0];
        })
        .do(data => console.log(data))
        .subscribe(generalTopic => res);
}
...

我正在尝试对B运行线性回归来预测A的日志。

我试过这样做:

A B 1 632364 4 2 144599 2 3 3715821 2 4 184524 5 5 1674 11 6 0 4 7 8019 7 8 25992 6 9 0 16 10 0 15 11 19172040 2

它给我的东西似乎不对。

有什么想法吗?也不知道如何处理零日志

1 个答案:

答案 0 :(得分:1)

排除0值,以便日志有意义。限制是结果模型永远无法预测零。如果零实际上代表缺失值并且缺失值随机丢失,那么这可能无关紧要。输入dd在最后的注释中可重复显示。下面的代码适合模型,然后绘制A>的点。 0绘制拟合(即预测)值的线。

ddpos <- subset(dd, A > 0)
fm <- lm(log(A) ~ B, ddpos)
plot(log(A) ~ B, ddpos)
abline(fm)

最后一行可以写成:

lines(fitted(fm) ~ B, ddpos)

在任何一种情况下,我们都得到这个数字:

screenshot

注意:我们将此作为输入:

dd <- structure(list(A = c(632364L, 144599L, 3715821L, 184524L, 1674L, 
0L, 8019L, 25992L, 0L, 0L, 19172040L), B = c(4L, 2L, 2L, 5L, 
11L, 4L, 7L, 6L, 16L, 15L, 2L)), .Names = c("A", "B"), 
class = "data.frame", row.names = 
c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"))