У меня есть фрейм данных со столбцами x, y и типом (A и B).Я хочу построить ось x в логарифмическом масштабе, а затем построить линейное соответствие данных с доверительным интервалом для каждого типа.
df = structure(list(x = c(21.9247706844111, 22.5845455758455, 23.2842999484095,
24.0277818926186, 24.819223123522, 25.6634195847913, 26.565828729518,
27.5326876468961, 28.5711574392776, 29.6895009170119, 30.8973029400445,
32.2057458449174, 33.6279567222896, 35.1794494065101, 36.8786927479251,
38.7478493668773, 40.8137476984428, 43.1091780520793, 45.6746461040917,
48.5607839497721, 51.8317255763963, 55.569928967504, 59.88322379377,
64.9153829493109, 70.8624603805235, 77.9989316122244, 86.7212612912185,
97.6241463875416, 111.642110711055, 130.332693944635, 156.499467517187,
195.74957428619, 261.166347585308, 391.999787414874, 784.499893775217
), y = c(14609.8039776394, 13641.5276286484, 14137.4346361605,
14831.2202848298, 14230.1838512313, 14145.1057803085, 14902.02786392,
15437.3601780532, 14770.6352337797, 14943.8860826451, 14556.4478379308,
15436.3188023377, 15921.0025288811, 15515.4269474865, 15413.4117571918,
15718.3707317223, 15867.2190057381, 15979.0338298445, 16508.9065832565,
17054.8192844372, 15725.1022904028, 16227.8629957584, 17457.9442545086,
17103.5685525182, 16768.2324312475, 17704.5819011923, 17067.0942588413,
17970.3457933202, 18373.8502710841, 18025.3306817536, 19324.7785137896,
19218.4350330616, 19543.9264336923, 22678.8476569314, 25119.8112666139
), type = c("A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"B", "A", "A", "A", "A", "B", "A", "B", "A", "A", "A", "A", "A",
"B", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A")), .Names = c("x",
"y", "type"), row.names = 750:784, class = "data.frame")
Пока мне удалось получить(хотя я не уверен, правильно ли это)
plot(df[,c(1:2)],log='x')
fit=lm(data=df, y~ log10(x))
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(fit, newdata = data.frame(x=newx),
,level=0.95,interval = 'confidence')
polygon(c(rev(newx), newx), c(rev(preds[ ,3]), preds[ ,2]), col = rgb(0, 0, 0,0.1), border = NA)
lines(newx, preds[ ,3], lty = 'dashed', col = 'red')
lines(newx, preds[ ,2], lty = 'dashed', col = 'red')
abline(fit,col="black",lwd=2)
Как я могу построить CI для типов (A и B) отдельно, но на одном графике.
Может ли кто-нибудь помочь мне сэто?