Немного новичка в R, поэтому я добавлял модели полиномиальной регрессии в граф «Глобальный терроризм» для степеней 1, 2, 3 и 4 полиномов с разными цветами. Я работал на 1-й степени, и когда я связал ее и запустил программу, она не появляется.
Однако появляется следующая ошибка:
Предупреждение. Ошибка при вычислении в stat_function()
:
Элементы должны равняться количеству строк или 1
Вот код, который у меня есть:
library("dplyr")
library("ggplot2")
#library("ggrepel")
library("readr")
library("readxl")
GTDbyYear <- read_csv("GTDbyYear.csv")
# exponential regression
exp_fit <- lm(log(attacks) ~ year, data = GTDbyYear)
# Polynomial regression Degree 1
polyRegOne_fit <- lm(attacks ~ poly(year,1), data = GTDbyYear )
# Polynomial regression Degree 2
polyRegTwo_fit <- lm(attacks ~ poly(year,2), data = GTDbyYear )
# Polynomial regression Degree 3
polyRegThree_fit <- lm(attacks ~ poly(year,3), data = GTDbyYear )
# Polynomial regression Degree 4
polyRegFour_fit <- lm(attacks ~ poly(year,4), data = GTDbyYear )
A <- exp(exp_fit$coefficients[1])
B <- exp(exp_fit$coefficients[2])
exp_function <- function(x){
A*B^x
}
polyOne_function <- function(x){
polyRegOne_fit
}
# graphing the data and adding model layer
GTDbyYear %>%
ggplot(aes(x = year, y = attacks)) +
geom_point() +
stat_function(fun = exp_function, color = "red") +
stat_function(fun = polyOne_function, color = "blue") +
labs(title = "Global Terrorism",
subtitle = "Regression Models",
caption = "Source: Global Terrorism Database") +
theme_minimal()
Вот скриншот, который я получил, когда запустил код:
Я ожидал синей линии для 1-й степени поли рег, чтобы показать, но он не появился.