абляция только с использованием двух коэффициентов - PullRequest
0 голосов
/ 12 марта 2019

Набор данных

https://drive.google.com/file/d/1k_fVtpMKf9_4rUsKXkNQ9-it7hHzKs7U/view?usp=sharing

PHONE <- read.csv(file = "~/Desktop/311NY.csv")

Data311 = PHONE$count
Data311 = PHONE[,2]

Data311

plot(Data311, type="o", col="orange", xlab="Date", ylab="Calls", main="Time Series Analysis of 311 Calls")

abline(lm(Calls~Date, data=PHONE), col="black" )

Ошибка в int_abline (a = a, b = b, h = h, v = v, untf = untf, ...):

plot.new еще не был вызван

Дополнительно: предупреждающее сообщение:

Аблайн (лм (Звонки ~ Дата, данные = ТЕЛЕФОН), col = "черный"):

только с использованием первых двух из 365 коэффициентов регрессии

Я продолжаю получать это сообщение об ошибке, сопровождаемое пустым графиком. Я уже попробовал следующее, чтобы решить проблему.

plot(Calls ~ Date, data =PHONE)
model <- lm(Calls ~ as.numeric(as.character(Date)), data=PHONE)

Ошибка в lm.fit (x, y, offset = offset, singular.ok = singular.ok, ...):

0 (не NA) случаев

Дополнительно: предупреждающее сообщение:

In eval (predvars, data, env): NA введены с помощью принуждения

1 Ответ

1 голос
/ 12 марта 2019

Здесь довольно много отдельных проблем.

Во-первых, Data311 <- PHONE$count не будет работать, потому что PHONE не имеет столбца с именем count.Вы хотите PHONE$Calls, если вы не хотите использовать PHONE[, 2].

Во-вторых, plot.new has not been called yet означает, что ваш график не работает по какой-то причине.Непонятно, почему из опубликованного вами кода, который выглядит так, как будто он должен работать, если существует Data311.

В-третьих, lm() не работает должным образом, поскольку столбец Date относится к классу.«фактор», а не класс «Дата».Таким образом, линейная регрессия рассматривает каждый день как фактор, отсюда и сообщение only using the first two of 365 regression coefficients.

Итак: при условии, что у вас есть PHONE, сначала преобразуйте дату в «Дата»:

PHONE$Date <- as.Date(PHONE$Date, "%m/%d/%y")

Нет причин, по которым plot не должен работать:

plot(PHONE$Calls, 
     type = "o", 
     col = "orange", 
     xlab = "Date", 
     ylab = "Calls", 
     main = "Time Series Analysis of 311 Calls")

И ваш abline() должен работать, если Date имеет тип даты.R преобразуется в числовое значение для выполнения регрессии, но вы также можете сделать это самостоятельно.

Но теперь реальный вопрос: почему вы используете линейную регрессию здесь?Вы действительно ожидаете линейных отношений, когда звонки увеличиваются или уменьшаются со временем?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...