Полиномная регрессия ggplot
# Полиномная регрессия ggplot
library(ggplot2)
options(scipen = 999, digits = 3)
# Датасет данных
x = seq(-2, 3, 0.1)
y = x^3 + 3*x^2 - 4*x - 5 + rnorm(length(x), 0, 1.7)
datas = data.frame(x, y)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Полиномная регрессия
Poli = 3
ggplot(data=datas, aes (x=x, y=y)) +
geom_smooth(method = "lm", formula = y ~ poly(x, Poli, raw = TRUE),
fill ='blue', alpha = 0.3, lwd =1.4) +
geom_point(size = 3, shape = 1) +
labs(title="Регрессионный анализ данных",
x = "Ох", y = "Оу") +
theme(
panel.background = element_rect(fill = "white",
color = "black",
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.5, linetype = 'longdash', color = "black"),
panel.grid.minor = element_line(size = 0.25, linetype = 'longdash', color = "black")
)
md = lm(y ~ poly(x,degree = Poli,raw = TRUE), data = datas)
Sumary = summary(md)
Sumary$r.squared
Sumary
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# предикт
xn = seq(-3, 4, 0.1)
newdata = data.frame(x = xn)
yn = predict(md, newdata = newdata)
Pdatas = data.frame(xn, yn)
ggplot(data=Pdatas, aes (x=xn, y=yn)) +
geom_line(size = 1, color = 'blue', lwd =1.4) +
geom_point(data = datas, aes (x=x, y=y), shape = 1, size = 3) +
labs(title="Регрессионный анализ данных",
x = "Ох", y = "Оу") +
theme(
panel.background = element_rect(fill = "white",
color = "black",
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.5, linetype = 'longdash', color = "black"),
panel.grid.minor = element_line(size = 0.25, linetype = 'longdash', color = "black")
)
