首页 > 解决方案 > 如何手动将置信区间添加到预测值

问题描述

我有一个多年的大型数据集,但只包括 2 年,还包括“newdata”。我能够拟合一个游戏并预测新值,但我只能尝试估计预测值周围的 90% 置信区间。我不需要围绕“pinkcount”的间隔。有人可以告诉我如何手动估计间隔吗?使用 base 或 ggplot2。我尝试了 stat_smooth() 但抛出了一个我不明白的错误。请参阅下面用于构建模型的数据和“newdata”以及我使用的 R 代码:

library(tidyverse)
library(lubridate)
library(mgcv)

even_years <- structure(list(year = c(2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
2018, 2018, 2018, 2018, 2018, 2018, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020, 2020, 2020, 2020, 2020), period = c(1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 1, 2, 3, 4, 
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 
25, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 1, 2, 
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
21, 22, 23, 24, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2, 3, 4, 5, 6, 7, 8, 
12, 7, 8, 9, 10, 11, 12, 13, 15, 19, 20, 21, 22, 3, 7, 11, 12, 
13, 14, 15, 16, 19, 21, 23, 24, 25, 28, 29, 2, 4, 5, 6, 7), district = c(221, 
221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 
221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 
222, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 
223, 223, 224, 224, 224, 224, 224, 226, 226, 226, 226, 226, 226, 
226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 
226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 
227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 221, 221, 
221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 
221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 
222, 222, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 
223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 
224, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 
227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 
227, 227, 228, 228, 228, 228, 228), date = structure(c(17722, 
17728, 17729, 17730, 17731, 17732, 17734, 17738, 17744, 17747, 
17749, 17753, 17756, 17759, 17761, 17763, 17765, 17767, 17768, 
17769, 17734, 17738, 17747, 17749, 17753, 17756, 17759, 17761, 
17763, 17765, 17766, 17767, 17768, 17769, 17770, 17744, 17747, 
17749, 17753, 17756, 17759, 17761, 17738, 17744, 17747, 17753, 
17756, 17707, 17710, 17712, 17714, 17717, 17721, 17724, 17728, 
17731, 17734, 17738, 17747, 17749, 17753, 17756, 17759, 17761, 
17763, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 
17773, 17703, 17707, 17710, 17714, 17717, 17721, 17724, 17728, 
17731, 17734, 17753, 17756, 17734, 17738, 17744, 17747, 18454, 
18458, 18459, 18462, 18466, 18467, 18468, 18471, 18475, 18476, 
18477, 18479, 18482, 18485, 18487, 18489, 18491, 18493, 18495, 
18498, 18499, 18500, 18501, 18466, 18471, 18475, 18479, 18482, 
18485, 18487, 18489, 18491, 18493, 18495, 18497, 18499, 18501, 
18463, 18466, 18471, 18475, 18479, 18482, 18485, 18487, 18489, 
18491, 18459, 18462, 18466, 18471, 18475, 18479, 18482, 18491, 
18435, 18438, 18442, 18445, 18447, 18449, 18452, 18456, 18485, 
18487, 18489, 18497, 18421, 18431, 18440, 18442, 18445, 18447, 
18449, 18452, 18459, 18463, 18475, 18479, 18482, 18489, 18491, 
18462, 18471, 18475, 18479, 18482), class = "Date"), closingdate = structure(c(17722, 
17728, 17729, 17730, 17731, 17732, 17734, 17738, 17744, 17747, 
17749, 17753, 17756, 17759, 17761, 17763, 17765, 17767, 17768, 
17769, 17734, 17738, 17747, 17749, 17753, 17756, 17759, 17761, 
17763, 17765, 17766, 17767, 17768, 17769, 17770, 17744, 17747, 
17749, 17753, 17756, 17759, 17761, 17738, 17744, 17747, 17753, 
17756, 17707, 17710, 17712, 17714, 17718, 17722, 17725, 17729, 
17732, 17735, 17738, 17747, 17749, 17753, 17756, 17759, 17761, 
17763, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 
17773, 17704, 17708, 17711, 17715, 17718, 17722, 17725, 17729, 
17731, 17734, 17753, 17756, 17734, 17738, 17744, 17747, 18454, 
18458, 18459, 18462, 18466, 18467, 18468, 18471, 18475, 18476, 
18477, 18479, 18482, 18485, 18487, 18489, 18491, 18493, 18495, 
18498, 18499, 18500, 18501, 18466, 18471, 18475, 18479, 18482, 
18485, 18487, 18489, 18491, 18493, 18495, 18497, 18499, 18501, 
18465, 18467, 18471, 18475, 18479, 18482, 18485, 18487, 18489, 
18491, 18459, 18462, 18466, 18471, 18475, 18479, 18482, 18491, 
18437, 18440, 18443, 18446, 18448, 18450, 18453, 18457, 18485, 
18487, 18489, 18497, 18423, 18432, 18441, 18444, 18446, 18448, 
18451, 18453, 18460, 18465, 18475, 18479, 18482, 18489, 18491, 
18462, 18471, 18475, 18479, 18482), class = "Date"), pinkcount = c(1065106, 
1956536, 673469, 583580, 707078, 693079, 1570801, 861741, 1097695, 
384093, 191734, 117106, 96275, 20594, 8724, 4573, 1696, 165406, 
81889, 177, 226508, 150761, 888149, 491101, 357145, 147607, 139676, 
55431, 61950, 34231, 17400, 8863, 31394, 13877, 2610, 11655, 
170536, 280481, 49792, 60164, 64269, 22516, 26076, 112636, 11951, 
14855, 18573, 18, 57, 64, 387, 337, 104, 2711, 1040, 13897, 43357, 
108564, 649320, 721697, 464082, 290689, 749668, 507264, 313761, 
324259, 233441, 142682, 90518, 81933, 51626, 22514, 13644, 18332, 
5, 310, 184, 9192, 2998, 825, 106068, 84255, 115567, 24889, 38064, 
8161, 133017, 170130, 129592, 8826, 2153732, 2074853, 526934, 
721057, 728884, 116370, 231951, 750551, 803772, 76330, 105696, 
386568, 156750, 8243, 26856, 16036, 40262, 24827, 6404, 2183, 
1206, 1438, 2888, 177054, 392059, 179505, 472985, 489168, 639106, 
341042, 169540, 153864, 86039, 126288, 146441, 36259, 15654, 
100867, 51319, 78043, 51462, 57584, 33914, 470795, 197139, 47556, 
17062, 93562, 123367, 55249, 175281, 190319, 188759, 64537, 1871, 
5, 158, 171, 224, 973, 1547, 1395, 262, 1145554, 829993, 634609, 
104113, 3, 8, 8, 134, 868, 452, 14899, 1848, 2449, 10365, 64608, 
64016, 56468, 16191, 17130, 37070, 127510, 139808, 29274, 9985
), airTc = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 13.7086956521739, 
14.3041666666667, 13.9875, 13.9083333333333, 13.6125, 13.7583333333333, 
12.7333333333333, 14.2066666666667, 14.5666666666667, 14.0541666666667, 
13.6583333333333, 13.6708333333333, 13.1875, 13.4, 13.6833333333333, 
15.4458333333333, 14.5739130434783, 13.95, 16.5666666666667, 
13.7125, 13.3166666666667, 13.2125, 12.7083333333333, 13.6125, 
14.2066666666667, 14.5666666666667, 13.6708333333333, 13.1875, 
13.4, 13.6833333333333, 15.4458333333333, 14.5739130434783, 13.95, 
16.5666666666667, 14.2166666666667, 13.3166666666667, 12.7083333333333, 
13.7625, 13.6125, 14.2066666666667, 14.5666666666667, 13.6708333333333, 
13.1875, 13.4, 13.6833333333333, 15.4458333333333, 14.5739130434783, 
13.9875, 13.9083333333333, 13.6125, 14.2066666666667, 14.5666666666667, 
13.6708333333333, 13.1875, 14.5739130434783, 11.2375, 10.6166666666667, 
11.225, 16.8833333333333, 15.1, 12.8041666666667, 13.1, 12.9833333333333, 
13.4, 13.6833333333333, 15.4458333333333, 14.2166666666667, 8.84583333333333, 
10.7458333333333, 12.5875, 11.225, 16.8833333333333, 15.1, 12.8041666666667, 
13.1, 13.9875, 13.7625, 14.5666666666667, 13.6708333333333, 13.1875, 
15.4458333333333, 14.5739130434783, 13.9083333333333, 14.2066666666667, 
14.5666666666667, 13.6708333333333, 13.1875), waterTc = c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, 14.5782608695652, 14.625, 
15.225, 15.225, 14.375, 14.5875, 14.0875, 14.7333333333333, 14.4083333333333, 
14.4416666666667, 14.0458333333333, 14.05, 13.8416666666667, 
13.7666666666667, 14.325, 14.6916666666667, 15.0304347826087, 
14.8708333333333, 15.7541666666667, 14.9083333333333, 14.7916666666667, 
14.5333333333333, 14.3166666666667, 14.375, 14.7333333333333, 
14.4083333333333, 14.05, 13.8416666666667, 13.7666666666667, 
14.325, 14.6916666666667, 15.0304347826087, 14.8708333333333, 
15.7541666666667, 15.1125, 14.7916666666667, 14.3166666666667, 
14.5625, 14.375, 14.7333333333333, 14.4083333333333, 14.05, 13.8416666666667, 
13.7666666666667, 14.325, 14.6916666666667, 15.0304347826087, 
15.225, 15.225, 14.375, 14.7333333333333, 14.4083333333333, 14.05, 
13.8416666666667, 15.0304347826087, 12.1375, 12.0708333333333, 
12.4375, 12.8208333333333, 13.5583333333333, 13.0416666666667, 
13.31, 14.0125, 13.7666666666667, 14.325, 14.6916666666667, 15.1125, 
8.77083333333333, 11.4833333333333, 12.6416666666667, 12.4375, 
12.8208333333333, 13.5583333333333, 13.0416666666667, 13.31, 
15.225, 14.5625, 14.4083333333333, 14.05, 13.8416666666667, 14.6916666666667, 
15.0304347826087, 15.225, 14.7333333333333, 14.4083333333333, 
14.05, 13.8416666666667), airtemp_f = c(NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, 56.675652173913, 57.7475, 57.1775, 57.035, 56.5025, 
56.765, 54.92, 57.572, 58.22, 57.2975, 56.585, 56.6075, 55.7375, 
56.12, 56.63, 59.8025, 58.2330434782609, 57.11, 61.82, 56.6825, 
55.97, 55.7825, 54.875, 56.5025, 57.572, 58.22, 56.6075, 55.7375, 
56.12, 56.63, 59.8025, 58.2330434782609, 57.11, 61.82, 57.59, 
55.97, 54.875, 56.7725, 56.5025, 57.572, 58.22, 56.6075, 55.7375, 
56.12, 56.63, 59.8025, 58.2330434782609, 57.1775, 57.035, 56.5025, 
57.572, 58.22, 56.6075, 55.7375, 58.2330434782609, 52.2275, 51.11, 
52.205, 62.39, 59.18, 55.0475, 55.58, 55.37, 56.12, 56.63, 59.8025, 
57.59, 47.9225, 51.3425, 54.6575, 52.205, 62.39, 59.18, 55.0475, 
55.58, 57.1775, 56.7725, 58.22, 56.6075, 55.7375, 59.8025, 58.2330434782609, 
57.035, 57.572, 58.22, 56.6075, 55.7375), watertemp_f = c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, 58.2408695652174, 58.325, 
59.405, 59.405, 57.875, 58.2575, 57.3575, 58.52, 57.935, 57.995, 
57.2825, 57.29, 56.915, 56.78, 57.785, 58.445, 59.0547826086957, 
58.7675, 60.3575, 58.835, 58.625, 58.16, 57.77, 57.875, 58.52, 
57.935, 57.29, 56.915, 56.78, 57.785, 58.445, 59.0547826086957, 
58.7675, 60.3575, 59.2025, 58.625, 57.77, 58.2125, 57.875, 58.52, 
57.935, 57.29, 56.915, 56.78, 57.785, 58.445, 59.0547826086957, 
59.405, 59.405, 57.875, 58.52, 57.935, 57.29, 56.915, 59.0547826086957, 
53.8475, 53.7275, 54.3875, 55.0775, 56.405, 55.475, 55.958, 57.2225, 
56.78, 57.785, 58.445, 59.2025, 47.7875, 52.67, 54.755, 54.3875, 
55.0775, 56.405, 55.475, 55.958, 59.405, 58.2125, 57.935, 57.29, 
56.915, 58.445, 59.0547826086957, 59.405, 58.52, 57.935, 57.29, 
56.915), rainfall_inch = c(10.7007874015748, 1.16141732283465, 
0, 0, 0, 0.0984251968503937, 0.0118110236220472, 2.48031496062992, 
0.031496062992126, 0.421259842519685, 3.38188976377953, 3.31889763779528, 
1.63779527559055, 0.551181102362205, 0.188976377952756, 6, 1.8740157480315, 
0.208661417322835, 0.208661417322835, 1.53937007874016, 0.0118110236220472, 
2.48031496062992, 0.421259842519685, 3.38188976377953, 3.31889763779528, 
1.63779527559055, 0.551181102362205, 0.188976377952756, 6, 1.8740157480315, 
0.818897637795276, 0.208661417322835, 0.208661417322835, 1.53937007874016, 
1.76377952755906, 0.031496062992126, 0.421259842519685, 3.38188976377953, 
3.31889763779528, 1.63779527559055, 0.551181102362205, 0.188976377952756, 
2.48031496062992, 0.031496062992126, 0.421259842519685, 3.31889763779528, 
1.63779527559055, 0.338582677165354, 0.228346456692913, 0.141732283464567, 
1.25196850393701, 0, 9.1496062992126, 0.71259842519685, 1.16141732283465, 
0, 0.0118110236220472, 2.48031496062992, 0.421259842519685, 3.38188976377953, 
3.31889763779528, 1.63779527559055, 0.551181102362205, 0.188976377952756, 
6, 1.8740157480315, 0.818897637795276, 0.208661417322835, 0.208661417322835, 
1.53937007874016, 1.76377952755906, 0.488188976377953, 0, 0, 
0.590551181102362, 0.338582677165354, 0.228346456692913, 1.25196850393701, 
0, 9.1496062992126, 0.71259842519685, 1.16141732283465, 0, 0.0118110236220472, 
3.31889763779528, 1.63779527559055, 0.0118110236220472, 2.48031496062992, 
0.031496062992126, 0.421259842519685, 0.0393700787401575, 0, 
0.031496062992126, 1.68897637795276, 0.570866141732283, 1.54330708661417, 
5.36220472440945, 0, 1.8503937007874, 4.09055118110236, 2.85826771653543, 
0.110236220472441, 1.44094488188976, 1.49212598425197, 0.0118110236220472, 
0, 0, 0.0708661417322835, 0, 0.570866141732283, 3.1496062992126, 
2.85826771653543, 1.94881889763779, 0.570866141732283, 0, 1.8503937007874, 
0.110236220472441, 1.44094488188976, 1.49212598425197, 0.0118110236220472, 
0, 0, 0.0708661417322835, 0, 0.551181102362205, 3.1496062992126, 
1.94881889763779, 1.62204724409449, 0.570866141732283, 0, 1.8503937007874, 
0.110236220472441, 1.44094488188976, 1.49212598425197, 0.0118110236220472, 
0, 0, 0.031496062992126, 1.68897637795276, 0.570866141732283, 
0, 1.8503937007874, 0.110236220472441, 1.44094488188976, 0, 0.598425196850394, 
0.811023622047244, 0.0984251968503937, 0, 0, 0.0590551181102362, 
1.08267716535433, 0.299212598425197, 1.49212598425197, 0.0118110236220472, 
0, 0.551181102362205, 1.5, 0.389763779527559, 0, 0.0984251968503937, 
0, 0, 0.0590551181102362, 1.08267716535433, 0.031496062992126, 
1.62204724409449, 1.8503937007874, 0.110236220472441, 1.44094488188976, 
0, 0, 1.68897637795276, 0, 1.8503937007874, 0.110236220472441, 
1.44094488188976)), row.names = c(NA, -177L), class = c("tbl_df", 
"tbl", "data.frame"))

And this is the 'newdata' I used for my predicted values

predict_even <- structure(list(year = c(2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022), period = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 1, 2, 3, 
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 
21, 22, 23, 24, 2, 3, 4, 5, 6, 7, 8, 12, 7, 8, 9, 10, 11, 12, 
13, 15, 19, 20, 21, 22, 3, 7, 11, 12, 13, 14, 15, 16, 19, 21, 
23, 24, 25, 28, 29, 2, 4, 5, 6, 7), district = c(221, 221, 221, 
221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 
221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 
222, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 
223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 
226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, 
227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 
227, 228, 228, 228, 228, 228), date = structure(c(19184, 19188, 
19189, 19192, 19196, 19197, 19198, 19201, 19205, 19206, 19207, 
19209, 19212, 19215, 19217, 19219, 19221, 19223, 19225, 19228, 
19229, 19230, 19231, 19196, 19201, 19205, 19209, 19212, 19215, 
19217, 19219, 19221, 19223, 19225, 19227, 19229, 19231, 19193, 
19196, 19201, 19205, 19209, 19212, 19215, 19217, 19219, 19221, 
19189, 19192, 19196, 19201, 19205, 19209, 19212, 19221, 19165, 
19168, 19172, 19175, 19177, 19179, 19182, 19186, 19215, 19217, 
19219, 19227, 19151, 19161, 19170, 19172, 19175, 19177, 19179, 
19182, 19189, 19193, 19205, 19209, 19212, 19219, 19221, 18462, 
18471, 18475, 18479, 18482), class = "Date"), closingdate = structure(c(19184, 
19188, 19189, 19192, 19196, 19197, 19198, 19201, 19205, 19206, 
19207, 19209, 19212, 19215, 19217, 19219, 19221, 19223, 19225, 
19228, 19229, 19230, 19231, 19196, 19201, 19205, 19209, 19212, 
19215, 19217, 19219, 19221, 19223, 19225, 19227, 19229, 19231, 
19195, 19197, 19201, 19205, 19209, 19212, 19215, 19217, 19219, 
19221, 19189, 19192, 19196, 19201, 19205, 19209, 19212, 19221, 
19167, 19170, 19173, 19176, 19178, 19180, 19183, 19187, 19215, 
19217, 19219, 19227, 19153, 19162, 19171, 19174, 19176, 19178, 
19181, 19183, 19190, 19195, 19205, 19209, 19212, 19219, 19221, 
18462, 18471, 18475, 18479, 18482), class = "Date"), week = c(29, 
29, 29, 30, 30, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 34, 34, 
34, 35, 35, 35, 35, 35, 30, 31, 32, 32, 33, 33, 33, 34, 34, 34, 
35, 35, 35, 35, 30, 30, 31, 32, 32, 33, 33, 33, 34, 34, 29, 30, 
30, 31, 32, 32, 33, 34, 26, 26, 27, 27, 28, 28, 28, 29, 33, 33, 
34, 35, 24, 25, 27, 27, 27, 28, 28, 28, 29, 30, 32, 32, 33, 34, 
34, 30, 31, 31, 32, 32), pinkcount = c(2153732, 2074853, 526934, 
721057, 728884, 116370, 231951, 750551, 803772, 76330, 105696, 
386568, 156750, 8243, 26856, 16036, 40262, 24827, 6404, 2183, 
1206, 1438, 2888, 177054, 392059, 179505, 472985, 489168, 639106, 
341042, 169540, 153864, 86039, 126288, 146441, 36259, 15654, 
100867, 51319, 78043, 51462, 57584, 33914, 470795, 197139, 47556, 
17062, 93562, 123367, 55249, 175281, 190319, 188759, 64537, 1871, 
5, 158, 171, 224, 973, 1547, 1395, 262, 1145554, 829993, 634609, 
104113, 3, 8, 8, 134, 868, 452, 14899, 1848, 2449, 10365, 64608, 
64016, 56468, 16191, 17130, 37070, 127510, 139808, 29274, 9985
), airtemp_f = c(56.675652173913, 57.7475, 57.1775, 57.035, 56.5025, 
56.765, 54.92, 57.572, 58.22, 57.2975, 56.585, 56.6075, 55.7375, 
56.12, 56.63, 59.8025, 58.2330434782609, 57.11, 61.82, 56.6825, 
55.97, 55.7825, 54.875, 56.5025, 57.572, 58.22, 56.6075, 55.7375, 
56.12, 56.63, 59.8025, 58.2330434782609, 57.11, 61.82, 57.59, 
55.97, 54.875, 56.7725, 56.5025, 57.572, 58.22, 56.6075, 55.7375, 
56.12, 56.63, 59.8025, 58.2330434782609, 57.1775, 57.035, 56.5025, 
57.572, 58.22, 56.6075, 55.7375, 58.2330434782609, 52.2275, 51.11, 
52.205, 62.39, 59.18, 55.0475, 55.58, 55.37, 56.12, 56.63, 59.8025, 
57.59, 47.9225, 51.3425, 54.6575, 52.205, 62.39, 59.18, 55.0475, 
55.58, 57.1775, 56.7725, 58.22, 56.6075, 55.7375, 59.8025, 58.2330434782609, 
57.035, 57.572, 58.22, 56.6075, 55.7375), watertemp_f = c(56.2501902173913, 
56.2501902173913, 56.2501902173913, 56.2844, 56.2844, 58.0022620446533, 
58.0022620446533, 58.0022620446533, 56.0816176470588, 56.0816176470588, 
56.0816176470588, 56.0816176470588, 57.144785326087, 57.144785326087, 
57.144785326087, 57.751847826087, 57.751847826087, 57.751847826087, 
57.7788043478261, 57.7788043478261, 57.7788043478261, 57.7788043478261, 
57.7788043478261, 56.2844, 58.0022620446533, 56.0816176470588, 
56.0816176470588, 57.144785326087, 57.144785326087, 57.144785326087, 
57.751847826087, 57.751847826087, 57.751847826087, 57.7788043478261, 
57.7788043478261, 57.7788043478261, 57.7788043478261, 56.2844, 
56.2844, 58.0022620446533, 56.0816176470588, 56.0816176470588, 
57.144785326087, 57.144785326087, 57.144785326087, 57.751847826087, 
57.751847826087, 56.2501902173913, 56.2844, 56.2844, 58.0022620446533, 
56.0816176470588, 56.0816176470588, 57.144785326087, 57.751847826087, 
54.3203775743707, 54.3203775743707, 56.7349758454106, 56.7349758454106, 
55.8387769376181, 55.8387769376181, 55.8387769376181, 56.2501902173913, 
57.144785326087, 57.144785326087, 57.751847826087, 57.7788043478261, 
52.3689751552795, 51.8061363636364, 56.7349758454106, 56.7349758454106, 
56.7349758454106, 55.8387769376181, 55.8387769376181, 55.8387769376181, 
56.2501902173913, 56.2844, 56.0816176470588, 56.0816176470588, 
57.144785326087, 57.751847826087, 57.751847826087, 56.2844, 58.0022620446533, 
58.0022620446533, 56.0816176470588, 56.0816176470588), rainfall_inch = c(0.0393700787401575, 
0, 0.031496062992126, 1.68897637795276, 0.570866141732283, 1.54330708661417, 
5.36220472440945, 0, 1.8503937007874, 4.09055118110236, 2.85826771653543, 
0.110236220472441, 1.44094488188976, 1.49212598425197, 0.0118110236220472, 
0, 0, 0.0708661417322835, 0, 0.570866141732283, 3.1496062992126, 
2.85826771653543, 1.94881889763779, 0.570866141732283, 0, 1.8503937007874, 
0.110236220472441, 1.44094488188976, 1.49212598425197, 0.0118110236220472, 
0, 0, 0.0708661417322835, 0, 0.551181102362205, 3.1496062992126, 
1.94881889763779, 1.62204724409449, 0.570866141732283, 0, 1.8503937007874, 
0.110236220472441, 1.44094488188976, 1.49212598425197, 0.0118110236220472, 
0, 0, 0.031496062992126, 1.68897637795276, 0.570866141732283, 
0, 1.8503937007874, 0.110236220472441, 1.44094488188976, 0, 0.598425196850394, 
0.811023622047244, 0.0984251968503937, 0, 0, 0.0590551181102362, 
1.08267716535433, 0.299212598425197, 1.49212598425197, 0.0118110236220472, 
0, 0.551181102362205, 1.5, 0.389763779527559, 0, 0.0984251968503937, 
0, 0, 0.0590551181102362, 1.08267716535433, 0.031496062992126, 
1.62204724409449, 1.8503937007874, 0.110236220472441, 1.44094488188976, 
0, 0, 1.68897637795276, 0, 1.8503937007874, 0.110236220472441, 
1.44094488188976)), row.names = 2:88, class = "data.frame")

This is the code that I am using:
all_even <- gam(pinkcount ~  period + district + s(airtemp_f) + s(watertemp_f) + s(rainfall_inch), data = even_years)

predict_even$predicted <- predict.gam(all_even,newdata=predict_even)
predict_even <- predict_even %>% data.frame() 
predict_even

predict_even <- predict_even %>% mutate(date=as.Date(date)) %>%pivot_longer(-c("year","period","district","date","week","closingdate","airtemp_f",
"watertemp_f","rainfall_inch"),names_to="type",values_to="count")
predict_even

ggplot(predict_even,aes(date,count,color=type))  + 
geom_line() + facet_wrap(~district,ncol=2,scale="free") +
theme(legend.position="top")

下面附上图形。如上所述,我只需要predicted在线(蓝色)上的 90% 置信区间。

如果可能的话,我会使用stat_smooth(),但手动计算的间隔是非常可取的。谢谢你的帮助。

在此处输入图像描述

标签: rtidyverse

解决方案


每天没有足够的时间点,所以我只是让CI为0.8,计数为1.2。让das 和 bygeom_ribbon

c <- predict.gam(all_even,newdata=predict_even, se.fit = TRUE)
upr <- c$fit + 1.645 * c$se.fit
lwr <- c$fit - 1.645 * c$se.fit
d <- predict_even %>%
  mutate(low = lwr,
         high = upr) %>%
  filter(type == "predicted")

ggplot(predict_even,aes(date,count,color=type))  + 
  geom_line() + facet_wrap(~district,ncol=2,scale="free") + 
  geom_ribbon(aes(ymin = low, ymax = high), alpha = 0.1, data = d)+
  theme(legend.position="top")

CI


推荐阅读