- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to find the difference between regression line and the points in R?
The difference between regression line and the points on the scatterplot are actually the residuals, thus we need to calculate the residual from the model object. This can be simply done by using residuals function. For example, if we create a linear model defined as Model between x and y then the residuals will be found as residuals(Model).
Consider the below data frame −
Example
set.seed(999) x1<-rnorm(100,5,1) y1<-rnorm(100,5,2) set.seed(999) x1<-rnorm(50,5,1) x1
Output
[1] 4.718260 3.687440 5.795184 5.270070 4.722694 4.433976 3.121342 3.733209 [9] 4.032250 3.878991 6.325464 5.133977 5.938749 5.172538 5.957650 3.637314 [17] 5.068335 5.100658 5.901345 2.925643 3.771437 5.643044 4.640237 5.294036 [25] 3.874732 5.642266 3.893262 4.115160 3.445905 4.873321 7.382664 5.601276 [33] 5.179361 6.080531 4.753188 2.886263 4.629473 5.522868 5.517806 3.597489 [41] 4.514363 5.008498 3.717887 3.888421 5.300665 5.276479 2.949122 5.014190 [49] 5.582266 4.965274
Example
y1<-rnorm(50,5,2) y1
Output
[1] 6.222789 3.709758 4.657909 2.502828 6.815813 3.366121 5.061378 2.805245 [9] 6.263176 4.886151 2.502289 4.752686 4.920821 4.117212 4.965663 5.664139 [17] 5.903942 4.077208 6.065462 7.370909 4.147725 2.713465 7.280148 5.385931 [25] 3.962250 2.559837 3.806861 1.682934 4.501635 6.555197 3.401010 2.300028 [33] 5.379501 7.656098 3.800852 7.796749 4.400438 9.056425 6.675732 5.027199 [41] 3.768654 6.341022 5.703656 5.280295 3.070839 6.451703 3.750322 7.117050 [49] 4.822037 4.550620
Model1<-lm(y1~x1)
We can find the differences by using residuals function which is the actual description of this difference −
Example
Difference1<-residuals(Model1) Difference1
Output
1 2 3 4 5 6 -0.318821302 -1.329658317 3.355482915 0.622179231 -0.219309849 0.492362522 7 8 9 10 11 12 1.120847727 -2.600159409 0.815723717 -1.179206602 -2.003523096 2.225944847 13 14 15 16 17 18 1.944418528 2.101980331 -0.177708526 -2.331382376 -2.917405743 -0.667140236 19 20 21 22 23 24 -0.973596995 1.987479224 -0.255997620 -0.265385092 1.817375711 -0.944140091 25 26 27 28 29 30 1.899985405 -0.001963328 1.028005379 -4.188344031 0.843900482 -0.412835686 31 32 33 34 35 36 -1.489716807 1.845872066 -2.563126203 0.024431186 -2.495232512 -0.757793692 37 38 39 40 41 42 2.645748932 -0.627006899 1.891963477 0.838600642 3.240642878 -0.043017748 43 44 45 46 47 48 -1.998486011 2.518834654 -2.370852257 1.983021019 -1.162755388 -0.686229669 49 50 -0.607433313 0.343427925
Let’s have a look at another example −
Example
x2<-rpois(100,5) x2
Output
[1] 8 2 6 5 4 4 4 4 2 3 5 5 4 10 3 2 3 5 5 8 9 8 3 6 4 [26] 5 3 2 5 6 5 2 6 8 3 9 11 2 4 4 8 2 8 1 3 2 5 8 2 6 [51] 7 4 3 4 6 2 3 2 8 4 9 4 8 3 6 4 8 9 10 4 9 9 2 7 10 [76] 8 6 7 5 6 1 2 8 8 9 10 5 1 7 3 3 1 7 2 6 2 3 4 2 7
Example
y2<-rpois(100,10) y2
Output
[1] 12 4 13 12 9 7 12 7 14 12 8 6 6 15 10 12 8 14 9 11 8 6 9 7 15 [26] 7 12 15 9 7 13 11 5 2 9 11 8 17 8 15 7 12 7 11 6 12 12 8 12 8 [51] 10 6 7 7 5 9 14 9 9 17 12 12 9 10 5 11 18 9 13 7 13 10 9 11 11 [76] 12 9 8 5 9 5 7 14 10 6 10 9 10 13 11 11 9 10 6 8 16 8 8 6 6
Model2<-lm(y2~x2)
Finding the residuals using model object Model2 −
Example
Difference2<-residuals(Model2) Difference2
Output
1 2 3 4 5 6 3.34416495 4.13956424 -0.06503647 1.93496353 2.24186460 -1.16733682 7 8 9 10 11 12 -0.75813540 4.24186460 3.62806246 -2.16733682 0.54876566 -0.16733682 13 14 15 16 17 18 -3.96273611 0.24186460 3.73036282 3.03726389 -2.65583505 0.24186460 19 20 21 22 23 24 -3.75813540 0.24186460 0.13956424 0.44646531 -0.65583505 -5.16733682 25 26 27 28 29 30 -0.75813540 3.03726389 -0.75813540 -4.75813540 2.13956424 1.52576211 31 32 33 34 35 36 -1.75813540 1.03726389 -6.16733682 -2.16733682 -6.26963718 -1.55353469 37 38 39 40 41 42 2.34416495 -1.16733682 -1.06503647 -2.96273611 -2.86043576 -3.75813540 43 44 45 46 47 48 -0.96273611 -0.47423789 -1.55353469 -3.86043576 1.44646531 2.03726389 49 50 51 52 53 54 1.73036282 0.24186460 -2.96273611 2.34416495 -0.96273611 -0.16733682 55 56 57 58 59 60 1.03726389 -0.06503647 -2.16733682 1.24186460 -4.96273611 0.13956424 61 62 63 64 65 66 -2.86043576 -0.65583505 -0.86043576 -1.06503647 -0.06503647 0.24186460 67 68 69 70 71 72 1.13956424 0.13956424 1.24186460 -2.06503647 1.93496353 0.93496353 73 74 75 76 77 78 0.34416495 -4.96273611 1.24186460 -5.06503647 -0.75813540 3.93496353 79 80 81 82 83 84 4.83266318 -1.65583505 7.03726389 4.93496353 6.73036282 2.03726389 85 86 87 88 89 90 -3.96273611 1.13956424 3.83266318 1.34416495 -2.06503647 -2.86043576 91 92 93 94 95 96 9.13956424 2.93496353 -0.16733682 -0.26963718 -0.96273611 0.03726389 97 98 99 100 3.24186460 2.13956424 -3.16733682 -0.86043576
An example with uniformly distributed data −
Example
x3<-round(runif(50,2,5)) x3
Output
[1] 3 5 2 2 4 4 4 2 3 4 4 4 3 4 3 4 4 3 2 5 5 2 3 5 4 4 3 5 3 5 3 3 3 5 4 3 4 5 [39] 5 4 3 4 5 3 5 3 3 3 5 2
Example
y3<-round(runif(50,2,10)) y3
Output
[1] 5 5 2 2 8 9 8 4 7 6 6 7 3 4 5 3 5 5 7 9 10 10 6 3 4 [26] 2 6 4 3 10 7 6 8 8 9 8 7 5 3 2 9 3 8 3 9 5 3 3 2 4
Model3<-lm(y3~x3)
Finding the residuals using model object Model3 −
Example
Difference3<-residuals(Model3) Difference3
Output
1 2 3 4 5 6 -1.09603340 -0.13883090 -4.05323591 2.86116910 0.90396660 -3.18162839 7 8 9 10 11 12 -0.05323591 -3.13883090 -1.13883090 -1.13883090 2.90396660 2.86116910 13 14 15 16 17 18 1.86116910 -1.13883090 -2.09603340 0.86116910 -0.09603340 -1.13883090 19 20 21 22 23 24 -0.05323591 1.86116910 -0.13883090 0.90396660 2.81837161 -2.13883090 25 26 27 28 29 30 -1.13883090 0.90396660 2.81837161 -0.09603340 2.81837161 -0.09603340 31 32 33 34 35 36 -0.13883090 -1.05323591 -2.09603340 3.86116910 1.86116910 2.86116910 37 38 39 40 41 42 2.90396660 1.86116910 1.90396660 -3.09603340 0.90396660 -4.18162839 43 44 45 46 47 48 -2.18162839 2.94676409 -4.09603340 -4.18162839 -2.05323591 2.90396660 49 50 1.90396660 -3.13883090
Advertisements