2016-01-09 2 views
-1

Je suis nouveau à la R et je suis en train de prédire par date, avec R. ctree utilise Mes données est comme ceci:Prédire ctree avec R

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

Voici le code:

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) 

En utilisant View(p), R me donne le même nombre dans toutes les lignes. Je ne sais pas si c'est la bonne façon de prédire. Peut-être que n'importe qui peut aider.

Et pour l'avenir peut-être quelqu'un sait comment prédire les valeurs futures comme ma fin de date dans 2010-11-30 et je veux prédire ce qui sera en 2011.

Merci pour votre aide.

Répondre

0

D'abord, il y a un problème technique. Vous devriez vraiment utiliser la spécification

Global_active_power ~ Datos, data = train 

au lieu de

test$Global_active_power ~ test$Datos, data = train 

L'ancien prendra les variables des train ensemble de données alors que celui-ci sera toujours prendre les variables de l'ensemble de données test. En général, l'utilisation de constructions data$... dans les formules de modèles est presque toujours une mauvaise idée - en particulier lorsque les prédictions sur de nouvelles données sont intéressantes. Deuxièmement, et plus sérieusement, il y a un problème conceptuel. Si vous utilisez un modèle comme power ~ date cela spécifie essentiellement un modèle de tendance. Dans le cas d'un arbre de régression, vous approximerez la tendance non linéaire par une fonction d'étape. Prédire avec une fonction d'étape en dehors de la plage des données d'entraînement, entraînera toujours une valeur ajustée constante. Mais également avec d'autres spécifications de tendance non linéaires (par exemple, un GAM), vous obtiendrez presque sûrement de mauvais résultats en dehors des données d'apprentissage. Tout le reste serait très surprenant.

Je recommanderais d'examiner plutôt les modèles de séries chronologiques pour voir si vous pouvez les utiliser pour la prévision de puissance.