我正在尝试根据 predict.lm() 的回归来预测新值,但结果显示新值的数量错误
I'm trying to predict new values based on a regression with the predict.lm(), but the result shows a wrong number of new values
我正在使用一个数据框,其中包含在给定时间间隔内来自几个气象站的温度数据。这是 10 个第一观察结果
data hora a001 a046
241 2021-03-20 00:00:00 18.4 17.8
242 2021-03-20 01:00:00 17.7 17.8
243 2021-03-20 02:00:00 18.7 17.9
244 2021-03-20 03:00:00 17.6 17.7
245 2021-03-20 04:00:00 18.9 17.7
246 2021-03-20 05:00:00 18.5 17.8
247 2021-03-20 06:00:00 18.0 18.0
248 2021-03-20 07:00:00 17.4 17.2
249 2021-03-20 08:00:00 17.3 17.2
我拟合了一个回归模型来测试一个站 (a001) 的温度数据是否可以用它的壁橱站 (a046) 来解释
bsb_out_fit_mono <- lm(tr_bsb_out$a001 ~ tr_bsb_out$a046)
然后,我用这个模型预测了前一段时间的温度数据,但是结果有点混乱,我想我可能做错了什么:我用来建立模型的数据集有 233 个观测值(因此,233 个残差)。
> nrow(tr_bsb_out)
[1] 233
我用来预测新 a001 值的新数据(a046 温度值)有 100 个观测值(因此我希望有 100 个预期 a001 值,对吧?)
> nrow(prev)
[1] 100
但是预测给了我 233 个值!
predict.lm(bsb_out_fit_mono, newdata = as.data.frame(prev$a046))
1 2 3 4 5 6 7 8 9 10 11
18.18776 18.18776 18.26810 18.10742 18.10742 18.18776 18.34845 17.70570 17.70570 17.86639 18.02708
12 13 14 15 16 17 18 19 20 21 22
20.59804 23.24935 24.21346 25.01689 25.65963 26.06135 26.78443 27.10580 26.06135 24.29381 24.69552
23 24 25 26 27 28 29 30 31 32 33
23.00832 21.32113 21.96387 21.64250 20.91941 20.35701 20.67839 19.71427 18.91085 18.18776 19.07153
34 35 36 37 38 39 40 41 42 43 44
19.55359 21.32113 21.64250 21.72284 22.76730 24.21346 25.25792 25.09723 25.73998 25.98100 24.45449
45 46 47 48 49 50 51 52 53 54 55
23.24935 21.56215 20.11599 19.31256 18.58947 19.23222 20.43736 18.02708 18.66982 18.99119 18.91085
56 57 58 59 60 61 62 63 64 65 66
18.91085 18.83050 19.87496 20.99976 21.24078 22.68695 23.81175 24.85621 25.01689 25.17758 25.73998
67 68 69 70 71 72 73 74 75 76 77
24.85621 23.41004 21.24078 21.16044 20.03564 20.83907 20.91941 19.55359 20.11599 18.91085 17.78605
78 79 80 81 82 83 84 85 86 87 88
16.98262 16.58091 15.85782 16.42022 19.23222 23.81175 23.97244 26.22203 25.49895 27.26649 26.62375
89 90 91 92 93 94 95 96 97 98 99
27.26649 27.26649 25.90066 23.81175 21.56215 20.11599 19.71427 18.75016 18.91085 18.10742 18.99119
100 101 102 103 104 105 106 107 108 109 110
17.70570 16.74159 16.50056 18.99119 21.88353 24.61518 25.17758 25.90066 26.70409 27.10580 27.66820
111 112 113 114 115 116 117 118 119 120 121
27.58786 27.34683 25.73998 23.97244 22.20490 20.43736 20.19633 20.51770 18.75016 18.42879 19.07153
122 123 124 125 126 127 128 129 130 131 132
17.14331 18.50913 17.22365 16.90228 16.82193 17.70570 20.91941 23.89209 25.17758 25.57929 26.22203
133 134 135 136 137 138 139 140 141 142 143
26.70409 26.54340 26.86477 26.14169 25.25792 23.41004 20.19633 20.19633 20.11599 19.63393 19.15187
144 145 146 147 148 149 150 151 152 153 154
19.15187 18.66982 18.75016 19.15187 19.07153 19.63393 19.63393 21.40147 23.41004 25.09723 25.57929
155 156 157 158 159 160 161 162 163 164 165
25.65963 25.82032 26.38272 27.10580 26.22203 25.01689 22.92798 20.27667 19.23222 18.58947 17.70570
166 167 168 169 170 171 172 173 174 175 176
17.94673 16.33988 16.66125 16.74159 17.38433 17.38433 18.18776 22.52627 24.69552 25.17758 26.14169
177 178 179 180 181 182 183 184 185 186 187
26.46306 26.54340 28.15026 27.50752 26.22203 26.14169 24.93655 21.48181 21.40147 19.95530 18.83050
188 189 190 191 192 193 194 195 196 197 198
20.19633 19.15187 17.62536 17.86639 18.83050 19.15187 19.71427 18.75016 20.11599 22.68695 24.93655
199 200 201 202 203 204 205 206 207 208 209
25.98100 26.78443 27.26649 28.15026 28.23060 28.47163 27.98957 27.66820 24.69552 23.08867 21.80318
210 211 212 213 214 215 216 217 218 219 220
17.62536 17.70570 16.98262 16.90228 16.17919 16.74159 16.74159 16.09885 16.25954 14.81337 17.70570
221 222 223 224 225 226 227 228 229 230 231
22.68695 24.77586 26.94512 27.34683 28.15026 28.55197 28.71266 27.82889 26.62375 27.82889 24.93655
232 233
22.36558 20.75873
Warning message:
'newdata' had 100 rows but variables found have 233 rows
我做错了什么?
这是我的 df:
> dput(tr_bsb_out)
structure(list(data = structure(c(18706, 18706, 18706, 18706,
18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706,
18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706,
18706, 18706, 18707, 18707, 18707, 18707, 18707, 18707, 18707,
18707, 18707, 18707, 18707, 18707, 18707, 18707, 18707, 18707,
18707, 18707, 18707, 18707, 18707, 18707, 18707, 18708, 18708,
18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708,
18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708,
18708, 18708, 18708, 18709, 18709, 18709, 18709, 18709, 18709,
18709, 18709, 18709, 18709, 18709, 18709, 18709, 18709, 18709,
18709, 18709, 18709, 18709, 18709, 18709, 18709, 18709, 18710,
18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710,
18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710,
18710, 18710, 18710, 18710, 18711, 18711, 18711, 18711, 18711,
18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711,
18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711,
18711, 18712, 18712, 18712, 18712, 18712, 18712, 18712, 18712,
18712, 18712, 18712, 18712, 18712, 18712, 18712, 18712, 18712,
18712, 18712, 18712, 18712, 18712, 18712, 18713, 18713, 18713,
18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713,
18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713,
18713, 18714, 18714, 18714, 18714, 18714, 18714, 18714, 18714,
18714, 18714, 18714, 18714, 18714, 18714, 18714, 18714, 18714,
18714, 18714, 18714, 18714, 18714, 18714, 18714, 18715, 18715,
18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715,
18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715,
18715, 18715, 18715, 18715), class = "Date"), hora = c("00:00:00",
"01:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00",
"07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00",
"13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00",
"19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00",
"01:00:00", "02:00:00", "03:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00",
"21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00", "02:00:00",
"03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00", "08:00:00",
"09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00", "14:00:00",
"15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00",
"21:00:00", "22:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00",
"05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00",
"11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00",
"17:00:00", "18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00",
"23:00:00", "00:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00",
"05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00",
"11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00",
"17:00:00", "18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00",
"23:00:00", "00:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00",
"06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00",
"12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00",
"18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00",
"00:00:00", "01:00:00", "02:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00"), a001 = c(18.4,
17.7, 18.7, 17.6, 18.9, 18.5, 18, 17.4, 17.3, 17.3, 19.5, 20.6,
21.7, 22.5, 24.9, 25.1, 26.2, 26.5, 27.3, 27.5, 26, 24.4, 23.8,
22.8, 22, 21.7, 21.2, 20.6, 19.8, 19.4, 19, 17.6, 18.3, 18.7,
19.5, 19.4, 20.6, 21.5, 23, 24.5, 25.6, 24.8, 25.9, 25.1, 22.8,
22, 21, 20.5, 20.4, 20, 19.6, 19.3, 18.9, 18.6, 18.2, 17.8, 17.6,
18.2, 18.5, 19.8, 21.4, 22.6, 22.6, 24.5, 25.4, 26, 25, 23.8,
23, 22.3, 21.1, 21.1, 20.5, 19.9, 19.6, 17.7, 18.9, 19.2, 16.1,
16, 17.7, 21.3, 22.4, 23.9, 24.6, 26.3, 26.9, 26.4, 26.9, 27.2,
26.6, 24.5, 23.4, 21.5, 21.1, 19.2, 17.4, 19.8, 19.4, 18.3, 18.9,
17.8, 19.4, 22.3, 23.5, 24.8, 25.2, 26.5, 26.9, 28.1, 27.9, 27.4,
26.5, 25.3, 24, 22.8, 22.2, 21.4, 20.9, 18.8, 16.5, 16.7, 18.8,
19.8, 20, 19.7, 20.4, 22, 23.4, 24.3, 25.3, 25.8, 27, 27.1, 26.9,
26.6, 25.9, 24.7, 23.3, 22.5, 21.4, 20.4, 17, 16.3, 15.9, 15.4,
14.7, 14.8, 14.5, 16, 20.6, 22.4, 24.3, 24.6, 25.1, 26.4, 26.1,
25.5, 25.8, 25.1, 23, 20.9, 18.4, 18.5, 18.2, 17.7, 16.3, 16.3,
14.5, 14.4, 17.8, 17.6, 22, 24, 24.8, 26.3, 26.9, 27.2, 27.5,
28.2, 27.5, 27.2, 24.4, 21.7, 20.4, 22.5, 22.2, 22.3, 21.6, 17.3,
16.9, 15.9, 15.5, 15, 14.8, 18.2, 22.6, 24.4, 25.5, 26.7, 27.3,
27.6, 27.9, 28.5, 28.6, 28.3, 26.3, 23.7, 20.1, 19.8, 19.1, 18.4,
18.2, 17.5, 17.1, 15.9, 15.7, 15.6, 15, 19, 24.5, 25.4, 26.8,
27.5, 29.1, 28.6, 30, 29.9, 29.7, 29.2, 25.7, 21.6, 21.4), a046 = c(17.8,
17.8, 17.9, 17.7, 17.7, 17.8, 18, 17.2, 17.2, 17.4, 17.6, 20.8,
24.1, 25.3, 26.3, 27.1, 27.6, 28.5, 28.9, 27.6, 25.4, 25.9, 23.8,
21.7, 22.5, 22.1, 21.2, 20.5, 20.9, 19.7, 18.7, 17.8, 18.9, 19.5,
21.7, 22.1, 22.2, 23.5, 25.3, 26.6, 26.4, 27.2, 27.5, 25.6, 24.1,
22, 20.2, 19.2, 18.3, 19.1, 20.6, 17.6, 18.4, 18.8, 18.7, 18.7,
18.6, 19.9, 21.3, 21.6, 23.4, 24.8, 26.1, 26.3, 26.5, 27.2, 26.1,
24.3, 21.6, 21.5, 20.1, 21.1, 21.2, 19.5, 20.2, 18.7, 17.3, 16.3,
15.8, 14.9, 15.6, 19.1, 24.8, 25, 27.8, 26.9, 29.1, 28.3, 29.1,
29.1, 27.4, 24.8, 22, 20.2, 19.7, 18.5, 18.7, 17.7, 18.8, 17.2,
16, 15.7, 18.8, 22.4, 25.8, 26.5, 27.4, 28.4, 28.9, 29.6, 29.5,
29.2, 27.2, 25, 22.8, 20.6, 20.3, 20.7, 18.5, 18.1, 18.9, 16.5,
18.2, 16.6, 16.2, 16.1, 17.2, 21.2, 24.9, 26.5, 27, 27.8, 28.4,
28.2, 28.6, 27.7, 26.6, 24.3, 20.3, 20.3, 20.2, 19.6, 19, 19,
18.4, 18.5, 19, 18.9, 19.6, 19.6, 21.8, 24.3, 26.4, 27, 27.1,
27.3, 28, 28.9, 27.8, 26.3, 23.7, 20.4, 19.1, 18.3, 17.2, 17.5,
15.5, 15.9, 16, 16.8, 16.8, 17.8, 23.2, 25.9, 26.5, 27.7, 28.1,
28.2, 30.2, 29.4, 27.8, 27.7, 26.2, 21.9, 21.8, 20, 18.6, 20.3,
19, 17.1, 17.4, 18.6, 19, 19.7, 18.5, 20.2, 23.4, 26.2, 27.5,
28.5, 29.1, 30.2, 30.3, 30.6, 30, 29.6, 25.9, 23.9, 22.3, 17.1,
17.2, 16.3, 16.2, 15.3, 16, 16, 15.2, 15.4, 13.6, 17.2, 23.4,
26, 28.7, 29.2, 30.2, 30.7, 30.9, 29.8, 28.3, 29.8, 26.2, 23,
21)), row.names = c(241L, 242L, 243L, 244L, 245L, 246L, 247L,
248L, 249L, 250L, 251L, 252L, 253L, 254L, 255L, 256L, 257L, 258L,
259L, 260L, 261L, 262L, 263L, 264L, 265L, 266L, 267L, 268L, 270L,
271L, 272L, 273L, 274L, 275L, 276L, 277L, 278L, 279L, 280L, 281L,
282L, 283L, 284L, 285L, 286L, 287L, 288L, 289L, 290L, 291L, 292L,
293L, 294L, 295L, 296L, 297L, 298L, 299L, 300L, 301L, 302L, 303L,
304L, 306L, 307L, 308L, 309L, 310L, 311L, 312L, 313L, 314L, 315L,
316L, 317L, 318L, 319L, 320L, 321L, 322L, 323L, 324L, 325L, 326L,
327L, 328L, 329L, 330L, 331L, 332L, 333L, 334L, 335L, 338L, 339L,
340L, 341L, 342L, 343L, 344L, 345L, 346L, 347L, 348L, 349L, 350L,
351L, 352L, 353L, 354L, 355L, 356L, 357L, 358L, 359L, 360L, 361L,
362L, 363L, 364L, 365L, 366L, 367L, 368L, 369L, 370L, 371L, 372L,
373L, 374L, 375L, 376L, 377L, 378L, 379L, 380L, 381L, 382L, 383L,
384L, 385L, 387L, 388L, 389L, 390L, 391L, 392L, 393L, 394L, 395L,
396L, 397L, 398L, 399L, 400L, 401L, 402L, 403L, 404L, 405L, 406L,
407L, 408L, 409L, 410L, 411L, 414L, 415L, 416L, 417L, 418L, 419L,
420L, 421L, 422L, 423L, 424L, 425L, 426L, 427L, 428L, 429L, 430L,
431L, 432L, 433L, 434L, 435L, 436L, 437L, 438L, 439L, 440L, 441L,
442L, 443L, 444L, 445L, 446L, 447L, 448L, 449L, 450L, 451L, 452L,
453L, 454L, 455L, 456L, 457L, 458L, 459L, 460L, 461L, 462L, 463L,
464L, 465L, 466L, 467L, 468L, 469L, 470L, 471L, 472L, 473L, 474L,
475L, 476L, 477L, 478L, 479L, 480L), class = "data.frame")
和
> dput(prev)
structure(list(data = structure(c(18696, 18696, 18696, 18696,
18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18697,
18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697,
18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697,
18697, 18697, 18697, 18698, 18698, 18698, 18698, 18698, 18698,
18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698,
18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698,
18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699,
18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699,
18699, 18699, 18699, 18699, 18700, 18700, 18700, 18700, 18700,
18700, 18700, 18700, 18700, 18700, 18700), class = "Date"), hora = c("03:00:00",
"04:00:00", "05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00",
"10:00:00", "11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00",
"16:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00", "21:00:00",
"22:00:00", "23:00:00", "00:00:00", "02:00:00", "04:00:00", "05:00:00",
"06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00",
"12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00",
"18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00",
"00:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00",
"06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00",
"12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00",
"18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00"), a001 = c(19.9, 19.2, 19.2,
19.1, 18.9, 19, 18.9, 19.6, 19.4, 19.4, 19.5, 20.1, 21.9, 23.6,
26, 24.6, 24.1, 22.6, 21.9, 20.4, 19.9, 19.5, 19, 18.7, 18.5,
18.2, 17.7, 17.8, 18.1, 18.7, 20, 22.4, 23, 24.2, 26.3, 25.8,
25.3, 25.1, 25.7, 24.4, 23.1, 22.1, 20.8, 20.2, 19.1, 18.7, 19.3,
19.3, 19.7, 19.5, 18.6, 17.8, 18.3, 19.5, 20.4, 21.4, 23.6, 24.4,
26.3, 25.6, 25.4, 19.4, 20.9, 21, 20.4, 19.8, 19.8, 19.2, 19.7,
19.7, 19.3, 18.8, 18.7, 18.6, 19.3, 19.5, 21.3, 23.5, 24.3, 26,
26, 22.7, 26, 26.9, 25.1, 24.2, 23.9, 23.2, 21.5, 21.9, 21.2,
20.1, 19.7, 19.8, 19.5, 19.2, 19.3, 19, 18.8, 19.7), a046 = c(20.3,
20.6, 20.7, 19.8, 20.1, 19.4, 19.9, 19.9, 20.3, 20.9, 21, 21.7,
23.5, 24.4, 25, 25.3, 22.4, 22.9, 22.7, 21, 19.5, 20.1, 20, 19.9,
19.2, 19.1, 19.2, 19, 18.2, 19.9, 22.2, 23.5, 25.2, 24.7, 25.8,
25.9, 26.3, 27, 25.8, 24.7, 23.9, 22.4, 20.1, 19.5, 19.8, 19.5,
19.5, 19.8, 18.8, 19.2, 19.3, 18.8, 18.9, 19.1, 20.8, 22, 24.5,
24.9, 24.2, 25.2, 27.3, 26.6, 24.1, 23.3, 21.4, 21.2, 20.5, 19.4,
19.6, 19.4, 20.6, 19.1, 19.2, 18.9, 18.5, 19.4, 21.2, 23, 26.8,
26.3, 26.8, 24.3, 23.5, 23.7, 24.2, 23.7, 22.7, 22.2, 21.8, 21.6,
21.5, 21.4, 20.6, 19.4, 19.2, 18.7, 19.1, 19.4, 19.4, 19.9)), row.names = c(4L,
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L,
19L, 20L, 21L, 22L, 23L, 24L, 25L, 27L, 29L, 30L, 31L, 32L, 33L,
34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L,
47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L,
60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L,
75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L,
88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L,
101L, 102L, 103L, 104L, 105L, 106L, 107L), class = "data.frame")
predict()
函数在 newdata=
中查找与回归模型中使用的变量同名的变量。您需要使用以下表格:
bsb_out_fit_mono <- lm(a001 ~ a046, tr_bsb_out)
prev.prd <- predict.lm(bsb_out_fit_mono, newdata = prev)
现在预测将使用 prev
内的 a046
而不是 tr_bsb_out
内的 a046
。当您未提供有效的 newdata
参数时,predict
函数会自动切换为使用原始数据。在您的情况下,警告消息表明 newdata
只有 100 行(并且没有名称为 a046
的变量,因为 prev$a046
与 tr_bsb_out$a046
不同)所以原始数据使用了 233 行的集合。 newdata = data.frame(a046=prev$a046)
也可以,但需要输入更多内容。
我正在使用一个数据框,其中包含在给定时间间隔内来自几个气象站的温度数据。这是 10 个第一观察结果
data hora a001 a046
241 2021-03-20 00:00:00 18.4 17.8
242 2021-03-20 01:00:00 17.7 17.8
243 2021-03-20 02:00:00 18.7 17.9
244 2021-03-20 03:00:00 17.6 17.7
245 2021-03-20 04:00:00 18.9 17.7
246 2021-03-20 05:00:00 18.5 17.8
247 2021-03-20 06:00:00 18.0 18.0
248 2021-03-20 07:00:00 17.4 17.2
249 2021-03-20 08:00:00 17.3 17.2
我拟合了一个回归模型来测试一个站 (a001) 的温度数据是否可以用它的壁橱站 (a046) 来解释
bsb_out_fit_mono <- lm(tr_bsb_out$a001 ~ tr_bsb_out$a046)
然后,我用这个模型预测了前一段时间的温度数据,但是结果有点混乱,我想我可能做错了什么:我用来建立模型的数据集有 233 个观测值(因此,233 个残差)。
> nrow(tr_bsb_out)
[1] 233
我用来预测新 a001 值的新数据(a046 温度值)有 100 个观测值(因此我希望有 100 个预期 a001 值,对吧?)
> nrow(prev)
[1] 100
但是预测给了我 233 个值!
predict.lm(bsb_out_fit_mono, newdata = as.data.frame(prev$a046))
1 2 3 4 5 6 7 8 9 10 11
18.18776 18.18776 18.26810 18.10742 18.10742 18.18776 18.34845 17.70570 17.70570 17.86639 18.02708
12 13 14 15 16 17 18 19 20 21 22
20.59804 23.24935 24.21346 25.01689 25.65963 26.06135 26.78443 27.10580 26.06135 24.29381 24.69552
23 24 25 26 27 28 29 30 31 32 33
23.00832 21.32113 21.96387 21.64250 20.91941 20.35701 20.67839 19.71427 18.91085 18.18776 19.07153
34 35 36 37 38 39 40 41 42 43 44
19.55359 21.32113 21.64250 21.72284 22.76730 24.21346 25.25792 25.09723 25.73998 25.98100 24.45449
45 46 47 48 49 50 51 52 53 54 55
23.24935 21.56215 20.11599 19.31256 18.58947 19.23222 20.43736 18.02708 18.66982 18.99119 18.91085
56 57 58 59 60 61 62 63 64 65 66
18.91085 18.83050 19.87496 20.99976 21.24078 22.68695 23.81175 24.85621 25.01689 25.17758 25.73998
67 68 69 70 71 72 73 74 75 76 77
24.85621 23.41004 21.24078 21.16044 20.03564 20.83907 20.91941 19.55359 20.11599 18.91085 17.78605
78 79 80 81 82 83 84 85 86 87 88
16.98262 16.58091 15.85782 16.42022 19.23222 23.81175 23.97244 26.22203 25.49895 27.26649 26.62375
89 90 91 92 93 94 95 96 97 98 99
27.26649 27.26649 25.90066 23.81175 21.56215 20.11599 19.71427 18.75016 18.91085 18.10742 18.99119
100 101 102 103 104 105 106 107 108 109 110
17.70570 16.74159 16.50056 18.99119 21.88353 24.61518 25.17758 25.90066 26.70409 27.10580 27.66820
111 112 113 114 115 116 117 118 119 120 121
27.58786 27.34683 25.73998 23.97244 22.20490 20.43736 20.19633 20.51770 18.75016 18.42879 19.07153
122 123 124 125 126 127 128 129 130 131 132
17.14331 18.50913 17.22365 16.90228 16.82193 17.70570 20.91941 23.89209 25.17758 25.57929 26.22203
133 134 135 136 137 138 139 140 141 142 143
26.70409 26.54340 26.86477 26.14169 25.25792 23.41004 20.19633 20.19633 20.11599 19.63393 19.15187
144 145 146 147 148 149 150 151 152 153 154
19.15187 18.66982 18.75016 19.15187 19.07153 19.63393 19.63393 21.40147 23.41004 25.09723 25.57929
155 156 157 158 159 160 161 162 163 164 165
25.65963 25.82032 26.38272 27.10580 26.22203 25.01689 22.92798 20.27667 19.23222 18.58947 17.70570
166 167 168 169 170 171 172 173 174 175 176
17.94673 16.33988 16.66125 16.74159 17.38433 17.38433 18.18776 22.52627 24.69552 25.17758 26.14169
177 178 179 180 181 182 183 184 185 186 187
26.46306 26.54340 28.15026 27.50752 26.22203 26.14169 24.93655 21.48181 21.40147 19.95530 18.83050
188 189 190 191 192 193 194 195 196 197 198
20.19633 19.15187 17.62536 17.86639 18.83050 19.15187 19.71427 18.75016 20.11599 22.68695 24.93655
199 200 201 202 203 204 205 206 207 208 209
25.98100 26.78443 27.26649 28.15026 28.23060 28.47163 27.98957 27.66820 24.69552 23.08867 21.80318
210 211 212 213 214 215 216 217 218 219 220
17.62536 17.70570 16.98262 16.90228 16.17919 16.74159 16.74159 16.09885 16.25954 14.81337 17.70570
221 222 223 224 225 226 227 228 229 230 231
22.68695 24.77586 26.94512 27.34683 28.15026 28.55197 28.71266 27.82889 26.62375 27.82889 24.93655
232 233
22.36558 20.75873
Warning message:
'newdata' had 100 rows but variables found have 233 rows
我做错了什么?
这是我的 df:
> dput(tr_bsb_out)
structure(list(data = structure(c(18706, 18706, 18706, 18706,
18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706,
18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706, 18706,
18706, 18706, 18707, 18707, 18707, 18707, 18707, 18707, 18707,
18707, 18707, 18707, 18707, 18707, 18707, 18707, 18707, 18707,
18707, 18707, 18707, 18707, 18707, 18707, 18707, 18708, 18708,
18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708,
18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708, 18708,
18708, 18708, 18708, 18709, 18709, 18709, 18709, 18709, 18709,
18709, 18709, 18709, 18709, 18709, 18709, 18709, 18709, 18709,
18709, 18709, 18709, 18709, 18709, 18709, 18709, 18709, 18710,
18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710,
18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710, 18710,
18710, 18710, 18710, 18710, 18711, 18711, 18711, 18711, 18711,
18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711,
18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711, 18711,
18711, 18712, 18712, 18712, 18712, 18712, 18712, 18712, 18712,
18712, 18712, 18712, 18712, 18712, 18712, 18712, 18712, 18712,
18712, 18712, 18712, 18712, 18712, 18712, 18713, 18713, 18713,
18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713,
18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713,
18713, 18714, 18714, 18714, 18714, 18714, 18714, 18714, 18714,
18714, 18714, 18714, 18714, 18714, 18714, 18714, 18714, 18714,
18714, 18714, 18714, 18714, 18714, 18714, 18714, 18715, 18715,
18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715,
18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715, 18715,
18715, 18715, 18715, 18715), class = "Date"), hora = c("00:00:00",
"01:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00",
"07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00",
"13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00",
"19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00",
"01:00:00", "02:00:00", "03:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00",
"21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00", "02:00:00",
"03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00", "08:00:00",
"09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00", "14:00:00",
"15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00",
"21:00:00", "22:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00",
"05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00",
"11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00",
"17:00:00", "18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00",
"23:00:00", "00:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00",
"05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00",
"11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00",
"17:00:00", "18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00",
"23:00:00", "00:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00",
"06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00",
"12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00",
"18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00",
"00:00:00", "01:00:00", "02:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00"), a001 = c(18.4,
17.7, 18.7, 17.6, 18.9, 18.5, 18, 17.4, 17.3, 17.3, 19.5, 20.6,
21.7, 22.5, 24.9, 25.1, 26.2, 26.5, 27.3, 27.5, 26, 24.4, 23.8,
22.8, 22, 21.7, 21.2, 20.6, 19.8, 19.4, 19, 17.6, 18.3, 18.7,
19.5, 19.4, 20.6, 21.5, 23, 24.5, 25.6, 24.8, 25.9, 25.1, 22.8,
22, 21, 20.5, 20.4, 20, 19.6, 19.3, 18.9, 18.6, 18.2, 17.8, 17.6,
18.2, 18.5, 19.8, 21.4, 22.6, 22.6, 24.5, 25.4, 26, 25, 23.8,
23, 22.3, 21.1, 21.1, 20.5, 19.9, 19.6, 17.7, 18.9, 19.2, 16.1,
16, 17.7, 21.3, 22.4, 23.9, 24.6, 26.3, 26.9, 26.4, 26.9, 27.2,
26.6, 24.5, 23.4, 21.5, 21.1, 19.2, 17.4, 19.8, 19.4, 18.3, 18.9,
17.8, 19.4, 22.3, 23.5, 24.8, 25.2, 26.5, 26.9, 28.1, 27.9, 27.4,
26.5, 25.3, 24, 22.8, 22.2, 21.4, 20.9, 18.8, 16.5, 16.7, 18.8,
19.8, 20, 19.7, 20.4, 22, 23.4, 24.3, 25.3, 25.8, 27, 27.1, 26.9,
26.6, 25.9, 24.7, 23.3, 22.5, 21.4, 20.4, 17, 16.3, 15.9, 15.4,
14.7, 14.8, 14.5, 16, 20.6, 22.4, 24.3, 24.6, 25.1, 26.4, 26.1,
25.5, 25.8, 25.1, 23, 20.9, 18.4, 18.5, 18.2, 17.7, 16.3, 16.3,
14.5, 14.4, 17.8, 17.6, 22, 24, 24.8, 26.3, 26.9, 27.2, 27.5,
28.2, 27.5, 27.2, 24.4, 21.7, 20.4, 22.5, 22.2, 22.3, 21.6, 17.3,
16.9, 15.9, 15.5, 15, 14.8, 18.2, 22.6, 24.4, 25.5, 26.7, 27.3,
27.6, 27.9, 28.5, 28.6, 28.3, 26.3, 23.7, 20.1, 19.8, 19.1, 18.4,
18.2, 17.5, 17.1, 15.9, 15.7, 15.6, 15, 19, 24.5, 25.4, 26.8,
27.5, 29.1, 28.6, 30, 29.9, 29.7, 29.2, 25.7, 21.6, 21.4), a046 = c(17.8,
17.8, 17.9, 17.7, 17.7, 17.8, 18, 17.2, 17.2, 17.4, 17.6, 20.8,
24.1, 25.3, 26.3, 27.1, 27.6, 28.5, 28.9, 27.6, 25.4, 25.9, 23.8,
21.7, 22.5, 22.1, 21.2, 20.5, 20.9, 19.7, 18.7, 17.8, 18.9, 19.5,
21.7, 22.1, 22.2, 23.5, 25.3, 26.6, 26.4, 27.2, 27.5, 25.6, 24.1,
22, 20.2, 19.2, 18.3, 19.1, 20.6, 17.6, 18.4, 18.8, 18.7, 18.7,
18.6, 19.9, 21.3, 21.6, 23.4, 24.8, 26.1, 26.3, 26.5, 27.2, 26.1,
24.3, 21.6, 21.5, 20.1, 21.1, 21.2, 19.5, 20.2, 18.7, 17.3, 16.3,
15.8, 14.9, 15.6, 19.1, 24.8, 25, 27.8, 26.9, 29.1, 28.3, 29.1,
29.1, 27.4, 24.8, 22, 20.2, 19.7, 18.5, 18.7, 17.7, 18.8, 17.2,
16, 15.7, 18.8, 22.4, 25.8, 26.5, 27.4, 28.4, 28.9, 29.6, 29.5,
29.2, 27.2, 25, 22.8, 20.6, 20.3, 20.7, 18.5, 18.1, 18.9, 16.5,
18.2, 16.6, 16.2, 16.1, 17.2, 21.2, 24.9, 26.5, 27, 27.8, 28.4,
28.2, 28.6, 27.7, 26.6, 24.3, 20.3, 20.3, 20.2, 19.6, 19, 19,
18.4, 18.5, 19, 18.9, 19.6, 19.6, 21.8, 24.3, 26.4, 27, 27.1,
27.3, 28, 28.9, 27.8, 26.3, 23.7, 20.4, 19.1, 18.3, 17.2, 17.5,
15.5, 15.9, 16, 16.8, 16.8, 17.8, 23.2, 25.9, 26.5, 27.7, 28.1,
28.2, 30.2, 29.4, 27.8, 27.7, 26.2, 21.9, 21.8, 20, 18.6, 20.3,
19, 17.1, 17.4, 18.6, 19, 19.7, 18.5, 20.2, 23.4, 26.2, 27.5,
28.5, 29.1, 30.2, 30.3, 30.6, 30, 29.6, 25.9, 23.9, 22.3, 17.1,
17.2, 16.3, 16.2, 15.3, 16, 16, 15.2, 15.4, 13.6, 17.2, 23.4,
26, 28.7, 29.2, 30.2, 30.7, 30.9, 29.8, 28.3, 29.8, 26.2, 23,
21)), row.names = c(241L, 242L, 243L, 244L, 245L, 246L, 247L,
248L, 249L, 250L, 251L, 252L, 253L, 254L, 255L, 256L, 257L, 258L,
259L, 260L, 261L, 262L, 263L, 264L, 265L, 266L, 267L, 268L, 270L,
271L, 272L, 273L, 274L, 275L, 276L, 277L, 278L, 279L, 280L, 281L,
282L, 283L, 284L, 285L, 286L, 287L, 288L, 289L, 290L, 291L, 292L,
293L, 294L, 295L, 296L, 297L, 298L, 299L, 300L, 301L, 302L, 303L,
304L, 306L, 307L, 308L, 309L, 310L, 311L, 312L, 313L, 314L, 315L,
316L, 317L, 318L, 319L, 320L, 321L, 322L, 323L, 324L, 325L, 326L,
327L, 328L, 329L, 330L, 331L, 332L, 333L, 334L, 335L, 338L, 339L,
340L, 341L, 342L, 343L, 344L, 345L, 346L, 347L, 348L, 349L, 350L,
351L, 352L, 353L, 354L, 355L, 356L, 357L, 358L, 359L, 360L, 361L,
362L, 363L, 364L, 365L, 366L, 367L, 368L, 369L, 370L, 371L, 372L,
373L, 374L, 375L, 376L, 377L, 378L, 379L, 380L, 381L, 382L, 383L,
384L, 385L, 387L, 388L, 389L, 390L, 391L, 392L, 393L, 394L, 395L,
396L, 397L, 398L, 399L, 400L, 401L, 402L, 403L, 404L, 405L, 406L,
407L, 408L, 409L, 410L, 411L, 414L, 415L, 416L, 417L, 418L, 419L,
420L, 421L, 422L, 423L, 424L, 425L, 426L, 427L, 428L, 429L, 430L,
431L, 432L, 433L, 434L, 435L, 436L, 437L, 438L, 439L, 440L, 441L,
442L, 443L, 444L, 445L, 446L, 447L, 448L, 449L, 450L, 451L, 452L,
453L, 454L, 455L, 456L, 457L, 458L, 459L, 460L, 461L, 462L, 463L,
464L, 465L, 466L, 467L, 468L, 469L, 470L, 471L, 472L, 473L, 474L,
475L, 476L, 477L, 478L, 479L, 480L), class = "data.frame")
和
> dput(prev)
structure(list(data = structure(c(18696, 18696, 18696, 18696,
18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18697,
18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697,
18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697, 18697,
18697, 18697, 18697, 18698, 18698, 18698, 18698, 18698, 18698,
18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698,
18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698,
18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699,
18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699, 18699,
18699, 18699, 18699, 18699, 18700, 18700, 18700, 18700, 18700,
18700, 18700, 18700, 18700, 18700, 18700), class = "Date"), hora = c("03:00:00",
"04:00:00", "05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00",
"10:00:00", "11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00",
"16:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00", "21:00:00",
"22:00:00", "23:00:00", "00:00:00", "02:00:00", "04:00:00", "05:00:00",
"06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00",
"12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00",
"18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00",
"00:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00",
"06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00",
"12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00",
"18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00", "23:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00",
"14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00",
"20:00:00", "21:00:00", "22:00:00", "23:00:00", "00:00:00", "01:00:00",
"02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00",
"08:00:00", "09:00:00", "10:00:00"), a001 = c(19.9, 19.2, 19.2,
19.1, 18.9, 19, 18.9, 19.6, 19.4, 19.4, 19.5, 20.1, 21.9, 23.6,
26, 24.6, 24.1, 22.6, 21.9, 20.4, 19.9, 19.5, 19, 18.7, 18.5,
18.2, 17.7, 17.8, 18.1, 18.7, 20, 22.4, 23, 24.2, 26.3, 25.8,
25.3, 25.1, 25.7, 24.4, 23.1, 22.1, 20.8, 20.2, 19.1, 18.7, 19.3,
19.3, 19.7, 19.5, 18.6, 17.8, 18.3, 19.5, 20.4, 21.4, 23.6, 24.4,
26.3, 25.6, 25.4, 19.4, 20.9, 21, 20.4, 19.8, 19.8, 19.2, 19.7,
19.7, 19.3, 18.8, 18.7, 18.6, 19.3, 19.5, 21.3, 23.5, 24.3, 26,
26, 22.7, 26, 26.9, 25.1, 24.2, 23.9, 23.2, 21.5, 21.9, 21.2,
20.1, 19.7, 19.8, 19.5, 19.2, 19.3, 19, 18.8, 19.7), a046 = c(20.3,
20.6, 20.7, 19.8, 20.1, 19.4, 19.9, 19.9, 20.3, 20.9, 21, 21.7,
23.5, 24.4, 25, 25.3, 22.4, 22.9, 22.7, 21, 19.5, 20.1, 20, 19.9,
19.2, 19.1, 19.2, 19, 18.2, 19.9, 22.2, 23.5, 25.2, 24.7, 25.8,
25.9, 26.3, 27, 25.8, 24.7, 23.9, 22.4, 20.1, 19.5, 19.8, 19.5,
19.5, 19.8, 18.8, 19.2, 19.3, 18.8, 18.9, 19.1, 20.8, 22, 24.5,
24.9, 24.2, 25.2, 27.3, 26.6, 24.1, 23.3, 21.4, 21.2, 20.5, 19.4,
19.6, 19.4, 20.6, 19.1, 19.2, 18.9, 18.5, 19.4, 21.2, 23, 26.8,
26.3, 26.8, 24.3, 23.5, 23.7, 24.2, 23.7, 22.7, 22.2, 21.8, 21.6,
21.5, 21.4, 20.6, 19.4, 19.2, 18.7, 19.1, 19.4, 19.4, 19.9)), row.names = c(4L,
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L,
19L, 20L, 21L, 22L, 23L, 24L, 25L, 27L, 29L, 30L, 31L, 32L, 33L,
34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L,
47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L,
60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L,
75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L,
88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L,
101L, 102L, 103L, 104L, 105L, 106L, 107L), class = "data.frame")
predict()
函数在 newdata=
中查找与回归模型中使用的变量同名的变量。您需要使用以下表格:
bsb_out_fit_mono <- lm(a001 ~ a046, tr_bsb_out)
prev.prd <- predict.lm(bsb_out_fit_mono, newdata = prev)
现在预测将使用 prev
内的 a046
而不是 tr_bsb_out
内的 a046
。当您未提供有效的 newdata
参数时,predict
函数会自动切换为使用原始数据。在您的情况下,警告消息表明 newdata
只有 100 行(并且没有名称为 a046
的变量,因为 prev$a046
与 tr_bsb_out$a046
不同)所以原始数据使用了 233 行的集合。 newdata = data.frame(a046=prev$a046)
也可以,但需要输入更多内容。