Полиномиальная регрессия График R - PullRequest
0 голосов
/ 23 апреля 2020

Немного новичка в 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-й степени поли рег, чтобы показать, но он не появился.

enter image description here

...