2017-07-28 7 views
0

Je veux être en mesure de calculer la distance de chaque point de données sur ma parcelle de ma régression linéaire sur cette parcelle, puis stocker les distances comme une nouvelle variable (colonne) dans ma base de données originale. Basé sur this answer, cette valeur de distance peut être trouvée en utilisant les résidus de la régression linéaire. Cependant, je ne sais pas comment l'appliquer à chaque point individuel, et je ne sais pas comment stocker ensuite les valeurs dans la base de données (si cela est même possible).La distance d'entrée du point de données à la régression (en utilisant les résidus?) Dans une nouvelle colonne de données

J'ai créé quelques données par exemple ...

ex.age <- c(50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70) 
ex.score <- c(10,9,9,10,8,7,9,6,8,7,6,8,6,5,6,4,5,6,3,5,3) 
ex.df <- data.frame(ex.age,ex.score) 

Quand la représentation graphique, il ressemble à ceci ... graph

Je veux donc être en mesure de calculer la distance de chaque point à la ligne de régression, puis stocker dans une nouvelle colonne, ex.df$reg.dev.

Comment pourrais-je accomplir cela?

Merci.

+0

Vous ne l'appliquez pas à chaque point. Faites juste 'resids (your_lm_object)' – Sotos

Répondre

2

Tout ce que vous avez à faire est de récupérer les résidus de lm().

ex.age <- c(50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70) 
ex.score <- c(10,9,9,10,8,7,9,6,8,7,6,8,6,5,6,4,5,6,3,5,3) 
ex.df <- data.frame(ex.age,ex.score) 

ex_model <- lm(ex.score ~ ex.age, data = ex.df) 
ex.df$reg.dev <- ex_model$residuals 
1
ex.age <- c(50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70) 
ex.score <- c(10,9,9,10,8,7,9,6,8,7,6,8,6,5,6,4,5,6,3,5,3) 
ex.df <- data.frame(ex.age,ex.score) 

linear_model <- lm(ex.score ~ ex.age, data = ex.df) 
ex.df$reg.dev <- linear_model$residuals 

ex.df