【问题标题】:How to get the new column with predict function如何使用预测功能获取新列
【发布时间】:2019-05-22 14:41:59
【问题描述】:

我正在尝试使用 lm 和 predict 函数填充一列。我需要用 24 个新值创建一个名为“估计”的新列。

My data looks like:

first    second    third
   17        44       50
  788       890     1409
  968       218      344
  212       185      306
  333       355       NA
    0         4       10
  160       156      184
    4         4        8
   12         4        4
   21         2        0
    3         0        0
   35        32       NA
   22        18       59
   97       150       40
   1         18       79
  12         32       23
  42         21       22
   8          2        5
  24         17        0
   4          2        2 
   0          0        0
  29         19       21
  15         20       NA
   0          1       NA

首先,我使用随机回归模型和函数 lm 得到 b 和 a 系数 (ax+b)。我明白了。接下来使用函数预测,我想填充新列“估计”。但我得到一个错误。

data<- X12_5_3
regr <- lm(X12_5_3$third ~ X12_5_3$second)
regr
X12_5_3$estimation<-predict(regr, na.action=TRUE)
X12_5_3$estimation


Error in `$<-.data.frame`(`*tmp*`, estimation, value = c(`1` = 
57.4742893243486,  : 
replacement has 20 rows, data has 24

我没有得到这个专栏。

【问题讨论】:

    标签: r regression predict


    【解决方案1】:

    尚不清楚您想要的结果是什么。一方面,您可能更喜欢的是

    (X12_5_3$estimation <- predict(regr, newdata = X12_5_3))
    #  [1]   57.474289 1380.179615  329.520065  277.925177  543.717027   -5.064970
    #  [7]  232.584214   -5.064970   -5.064970   -8.191932  -11.318895   38.712512
    # [13]   16.823771  223.203325   16.823771   38.712512   21.514215   -8.191932
    # [19]   15.260290   -8.191932  -11.318895   18.387253   19.950734   -9.755414
    

    在这种情况下,除了 20 个拟合值之外,您还可以通过使用 regr 获得 4 个实际预测。另一方面,如果你真的想要四个 NA 的拟合值,那么

    regr <- lm(X12_5_3$third ~ X12_5_3$second, na.action = "na.exclude")
    (X12_5_3$estimation <- predict(regr))
    #           1           2           3           4           5           6           7 
    #   57.474289 1380.179615  329.520065  277.925177          NA   -5.064970  232.584214 
    #           8           9          10          11          12          13          14 
    #   -5.064970   -5.064970   -8.191932  -11.318895          NA   16.823771  223.203325 
    #          15          16          17          18          19          20          21 
    #   16.823771   38.712512   21.514215   -8.191932   15.260290   -8.191932  -11.318895 
    #          22          23          24 
    #   18.387253          NA          NA 
    

    【讨论】:

    • predict() 将为所有自变量都具有有效值的每种情况生成预测。在这种情况下,它将为X12_5_3NA 的四种情况生成预测。
    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2017-02-06
    • 2018-10-23
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多