Распространение огибающей неопределенности измерения вокруг каждой точки через линейную модель в R
Я соответствовал следующей линейной модели, которую я построил с использованием кода ggplot2 и фрагмента данных ниже. Я использовал подход Монте-Карло для количественной оценки неопределенностей, связанных с каждой точкой данных var2 (стандартное отклонение оценок точек с шумом из 10000 симуляций Монте-Карло), хранящихся в var6 (те же единицы, что и вар 2). Тем не менее, я не уверен, как включить эти неопределенности в сюжет.
Я просмотрел web/stackexchange и нашел несколько похожих запросов, но не получил конкретных ответов, таких как этот и этот. Единственное реальное решение, которое я обнаружил в результате своих поисков, - это возможность взвешивания точек пропорционально их неопределенности в lm
функция (обратный квадратный корень из моих неопределенностей), но я действительно не думаю, что это то, что я после.
Вместо этого я хотел бы иметь возможность ввести диапазон значений (var2 +/- var6) в мою модель, чтобы сгенерировать конверт прогнозируемых значений, который учитывает неопределенности в var6.
Пожалуйста, посоветуйте, спасибо!
код ggplot2:
ggplot(data = dat,
aes(x = var1, y = var2, color = as.factor(var3))) +
stat_smooth(size = 2, method = lm, formula = y ~log(x),
show.legend = F, fullrange = F, se = F) +
geom_point(size = 3)+
theme(axis.title = element_text(size = 14),
axis.text = element_text(size = 14),
strip.text = element_text(size = 14),
legend.title = element_text(size = 14),
legend.text = element_text(size = 14)) +
theme(legend.position = "none")
Данные
> structure(list(var1 = c(5L, 5L, NA, 1L, 1L, 5L, 4L, 4L, 4L, 4L,
NA, 2L, 15L, 18L, 8L, 3L, NA, 2L, 10L, 3L, 1L, 2L, 3L, 13L, 2L,
7L, 2L, 3L, 2L, 11L, 11L, 3L, 1L, 1L, 1L, 5L, 1L, 1L, 1L, 1L,
1L, 12L, 2L, 2L, 2L, 5L, 7L, 5L, 14L, 14L, 15L, 20L, 3L, 14L,
12L, 1L, NA, 2L), var2 = c(12809.4897078949, 20942.2363261915,
32579.6236531272, 5117.15166951954, 2554.39360278004, 19016.8868698684,
8142.14852336025, 7131.73386600093, 4381.92237186042, 12230.6517363978,
29687.1245110841, 22990.1972880239, 25934.9507205883, 25930.8258700104,
17400.0724577244, 23371.4325260303, 34050.4259257071, 25091.2477340477,
26939.4686071742, 23634.7179234314, 18412.4261018115, 19694.858763565,
18613.1031024236, 27333.4026822017, 20189.9207118266, 22650.2972646603,
24385.5429151823, 22263.0958498778, 12170.8501025214, 22054.2325444487,
25510.5202235517, 4675.51312666485, 1561.73306481864, 8574.3199271613,
1354.70278090383, 24957.1601514159, 19768.346625788, 4730.42768489829,
19224.9150054583, 3285.72948903804, 17218.3966499476, 17814.201,
22380.532114835, 6424.07165435052, 9712.40889037647, 21830.8738276867,
12543.5565, 25540.573294955, 30456.6854998026, 26497.6346464698,
32504.4187638633, 35193.0067560117, 7785.56481392295, 28545.6757735812,
26137.1708056318, 2444.5645303282, 34296.0458183154, 19966.6912957546
), var3 = c("2", "1", "0", "7", "7", "1", "2", "2", "7", "2",
"0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "1", "1", "7", "7", "2", "7", "0",
"0", "7", "1", "7", "0", "1", "1", "7", "7", "0", "7", "0", "0",
"1", "0", "0", "7", "1", "0", "7", "0", "0"), var4 = structure(c(1L,
1L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 2L, 2L, 2L, 1L, 2L, 4L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L,
1L, 2L, 2L, 1L, 1L, 2L, 1L, 4L, 2L), .Label = c("B", "L", "LB",
"U"), class = "factor"), var5 = c(43.8839807246273, 70.9849809812705,
108.3123612557, 18.5067346403427, 9.30378992188086, 63.3011740227475,
28.1072745643121, 28.5083339976212, 16.0029814963776, 43.4384982552552,
95.5961125739346, 75.5159676257879, 86.6707470294212, 86.547081313194,
58.7043591350055, 76.5451886211294, 109.786605681324, 83.2299608979667,
88.7213157801791, 77.7420172038402, 59.2559304416528, 65.7914032345122,
62.7598600887958, 91.7197286498123, 69.3290728743263, 76.1868976863145,
83.0788269571258, 77.2892129514035, 41.7133254989406, 71.8765746703731,
87.2475094008255, 16.8066086188985, 4.81454371884126, 29.0976854774272,
6.63776939563476, 82.4170530759177, 65.430933660396, 16.9835727406131,
61.0138926544893, 12.1712730422232, 56.4363564217849, 60.2270911399615,
75.0308785572054, 22.0798362938508, 34.5931870329142, 72.8849996289418,
44.307788355451, 82.7342263022031, 98.5680497957899, 88.5065672966968,
106.805403349049, 115.732643399077, 28.3884997119228, 96.4257905149245,
86.8582791738412, 9.42521951609614, 114.232961213524, 66.7531405760279
), var6 = c(246.386415870509, 102.627718638554, 40.5305212705092,
196.842873553088, 164.022947554134, 75.7267072687521, 38.5276353169452,
100.950606398559, 520.989766269837, 2.67489943916838, 600.966610777077,
78.0325627771947, 32.7335380376157, 268.415070039536, 32.6816903646549,
5.87551857731808, 179.326151601789, 20.4131166389686, 3.45008167868172,
82.3102215219561, 100.56612096066, 10.1273398507419, 28.8644961441366,
68.6775279676419, 140.999013629825, 1.7994802384114, 74.150850208548,
434.675626693473, 77.4721303629495, 296.899295360127, 102.271469391752,
83.7968946136107, 275.946289424453, 367.500725949366, 171.757704170549,
177.429544428664, 40.6668074848761, 110.476576802597, 130.656699587288,
216.176847219466, 44.7592760270898, 121.654428880646, 82.6255713213243,
417.967735185252, 164.593370525853, 20.9860563319626, 27.2371464251141,
108.39625696672, 238.703595397891, 44.3123444116671, 195.644038263642,
147.354686635324, 194.618203925983, 111.410515414297, 134.090660954799,
24.3810724829099, 20.8960565535128, 65.352646504575)), .Names = c("var1",
"var2", "var3", "var4", "var5", "var6"), row.names = c(NA, -58L
), class = "data.frame")