2017-03-12 4 views
0

Je suis novice en R et j'ai de la difficulté à prédire et à tracer un jeu de données de test à partir des résultats de la régression linéaire.utilisation prédire dans l'instruction de points

J'ai un ensemble de données de formation avec 516 observations et un ensemble de données de test avec 10 observations

J'ai couru une régression linéaire sur les données de formation train2.lm = lm (CO2 ~ Période + P2, data = formation) résumé (train2.lm)

Je comploté mes données de test et transféra la couleur rouge terrain (test $ CO2 ~ test $ Période, col = "red")

maintenant, je veux mettre l'estimation points de test sur le même terrain que mon test réel da ta pour voir à quel point mon modèle a prédit des données réelles.

des points (test $ Période, prédire (train2.lm), col = "orange")

Je reçois l'erreur suivante

Erreur dans xy.coords (x, y): 'x' et les longueurs 'y' diffèrent

Je pense que cela a quelque chose à voir avec mon ensemble de données d'entraînement ayant plus de valeurs. J'ai besoin d'utiliser la régression de la formation pour prédire et tracer le CO2 dans mes tests.

+0

essayer prédire sur les tests mis en place de l'ensemble de la formation – ilanman

Répondre

0

Pour développer mon commentaire, voici un exemple de ce qui pourrait résoudre le problème. Construire une régression linéaire sur l'ensemble de données de l'iris ...

# 150 samples in the iris dataset 
n = nrow(iris) 
train_ind = sample(n,size=50) 
# training set is 50 random samples 
train = iris[train_ind,] 
# testing set is 100 random samples (i.e. n - 50) 
test = iris[-train_ind,] 

# build a silly model on the training set 
train.lm = lm(Sepal.Length ~ Sepal.Width,data=train) 
# predict on the training set 
pred_train = predict(train.lm) 
# 50 predictions 
length(pred_train) 

# use the fitted model to predict on the testing set 
pred = predict(train.lm, newdata=list(Sepal.Width = test$Sepal.Width)) 
# 100 predictions 
length(pred)