2016-01-09 5 views
-1

Я новичок в R, и я пытаюсь предсказать по дате с использованием ctree R. Мои данные, как это:Предсказание Ctree с R

Datos  | Global_active_power 
2006-12-16 | 3.0534747 
2006-12-17 | 2.3544861 
And like this 1433 entries. 

Вот код:

data <- read.table('diena.txt', sep = ' ') 
library("party") 
set.seed(124) 
datos <- as.Date(data$Datos) 
View(data[2]) 
train <- data[1:sum(datos<"2009-12-16"),] 
test <- data[-(1:sum(datos<"2009-12-16")),] 
View(train) 
dt <- ctree(test$Global_active_power ~ test$Datos, data=train,controls=ctree_control(maxdepth=3)) 
p <- predict(dt, test) 
View(p) 

Используя View(p), R дает мне такое же число во всех строках. Я не знаю, правильно ли это предсказать. Может, кто-то может помочь.

И в будущем, может быть, кто-нибудь знает, как предсказать будущие значения, как мой конец Дата в 2010-11-30, и я хочу, чтобы предсказать, что будет в 2011 году

Спасибо за вашу помощь.

ответ

0

Во-первых, существует технический вопрос. Вы действительно должны использовать спецификации

Global_active_power ~ Datos, data = train 

вместо того

test$Global_active_power ~ test$Datos, data = train 

Первый из них будет принимать переменные из данных train, установленных в то время как последний всегда будет брать переменные из множества test данных. В целом с использованием конструкций data$... в модельных формулах почти всегда плохая идея - особенно когда прогнозы по новым данным представляют интерес.

Во-вторых, и, что более серьезно, существует концептуальная проблема. Если вы используете модель типа power ~ date, это определяет, по существу, модель тренда. В случае дерева регрессии вы приближаете нелинейный тренд ступенчатой ​​функцией. Предсказание с помощью ступенчатой ​​функции за пределами диапазон данных обучения всегда будет иметь постоянное установленное значение.

Но также с другими нелинейными характеристиками тренда (например, GAM) вы почти наверняка получите плохие результаты за пределами данных обучения. Все остальное было бы очень удивительно.

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

Смежные вопросы