将新数据输入到预测()中以进行多元回归?

时间:2016-11-16 14:04:55

标签: r prediction

假设我在R中拟合了一个包含多个预测变量的回归模型,如下面的玩具示例所示:

x.new <- rnorm(5)
y.new <- rnorm(5)

现在我有了新的日期,由x和y值组成,我想预测相应的z值:

x.new

问题:我应该如何最好地预测将拟合模型应用于新数据?

以下是我尝试过的一些不起作用的内容:

尝试1.尝试使用y.new> predict(m, data=data.frame(x=x.new, y=y.new)) 1 2 3 4 5 6 7 -0.0157090 1.1667958 -1.3797101 0.1185750 0.7786496 1.7666232 -0.6692865 8 9 10 11 12 13 14 1.9720532 0.3514206 1.1677019 0.6441418 -2.3010431 -0.3228424 -0.2181511 15 16 17 18 19 20 -0.8883275 0.4549592 -1.0377040 0.1750522 -2.4542843 1.2250101 作为新数据框的列:

predict

这给了20个值而不是5个,所以不能正确。

尝试2:可能y^2因为未提供model.frame值而感到困惑?尝试使用> predict(m, model.frame(~ x.new + y.new + I(y.new^2))) 1 2 3 4 5 6 7 -0.0157090 1.1667958 -1.3797101 0.1185750 0.7786496 1.7666232 -0.6692865 8 9 10 11 12 13 14 1.9720532 0.3514206 1.1677019 0.6441418 -2.3010431 -0.3228424 -0.2181511 15 16 17 18 19 20 -0.8883275 0.4549592 -1.0377040 0.1750522 -2.4542843 1.2250101 Warning message: 'newdata' had 5 rows but variables found have 20 rows 以正确的形式提供数据。

    var myPath = document.URL;
    if (!myPath.endsWith("secure")) {
        myPath = "";
    }

同样,这会导致20个值(加上警告),所以不能正确。

1 个答案:

答案 0 :(得分:1)

当告诉newdata要预测的内容时,参数为data(不是predict)。

predict(m, newdata = data.frame(x = x.new, y = y.new))