Load Library

library(ggplot2)
library(dplyr)
library(tidyr)
library(skimr)
# library(gapminder) for data set
# library(moderndive) for data set

One numerical explanatory variable

First we will check our data set

head(moderndive::evals)

To keep things simple, let’s select only the relevant columns from the main data set and make it subset

eval_ch5 <- moderndive::evals |> 
  select(ID, score, age, bty_avg)

Let’s check how our data is distributed

Statistical Summary

summary(eval_ch5[c("score", "age", "bty_avg")])
     score            age           bty_avg     
 Min.   :2.300   Min.   :29.00   Min.   :1.667  
 1st Qu.:3.800   1st Qu.:42.00   1st Qu.:3.167  
 Median :4.300   Median :48.00   Median :4.333  
 Mean   :4.175   Mean   :48.37   Mean   :4.418  
 3rd Qu.:4.600   3rd Qu.:57.00   3rd Qu.:5.500  
 Max.   :5.000   Max.   :73.00   Max.   :8.167  

Now, we will check little more deep only outcome and explanatory variables teaching score and beauty average score and pipe them into skim() function

eval_ch5 |> 
  select(score, bty_avg) |> 
  skim()
── Data Summary ────────────────────────
                           Values                      
Name                       select(eval_ch5, score, b...
Number of rows             463                         
Number of columns          2                           
_______________________                                
Column type frequency:                                 
  numeric                  2                           
________________________                               
Group variables            None                        
LS0tDQp0aXRsZTogIk1vZGVsaW5nIGZvciBleHBsYW5hdGlvbiINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIyMgTG9hZCBMaWJyYXJ5DQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkodGlkeXIpDQpsaWJyYXJ5KHNraW1yKQ0KIyBsaWJyYXJ5KGdhcG1pbmRlcikgZm9yIGRhdGEgc2V0DQojIGxpYnJhcnkobW9kZXJuZGl2ZSkgZm9yIGRhdGEgc2V0DQpgYGANCg0KIyMjIyBPbmUgbnVtZXJpY2FsIGV4cGxhbmF0b3J5IHZhcmlhYmxlDQoNCkZpcnN0IHdlIHdpbGwgY2hlY2sgb3VyIGRhdGEgc2V0DQoNCmBgYHtyfQ0KaGVhZChtb2Rlcm5kaXZlOjpldmFscykNCmBgYA0KDQpUbyBrZWVwIHRoaW5ncyBzaW1wbGUsIGxldCdzIHNlbGVjdCBvbmx5IHRoZSByZWxldmFudCBjb2x1bW5zIGZyb20gdGhlIG1haW4gZGF0YSBzZXQgYW5kIG1ha2UgaXQgc3Vic2V0DQoNCmBgYHtyfQ0KZXZhbF9jaDUgPC0gbW9kZXJuZGl2ZTo6ZXZhbHMgfD4gDQogIHNlbGVjdChJRCwgc2NvcmUsIGFnZSwgYnR5X2F2ZykNCmBgYA0KDQpMZXQncyBjaGVjayBob3cgb3VyIGRhdGEgaXMgZGlzdHJpYnV0ZWQNCg0KIyMjIyBTdGF0aXN0aWNhbCBTdW1tYXJ5IA0KDQpgYGB7cn0NCnN1bW1hcnkoZXZhbF9jaDVbYygic2NvcmUiLCAiYWdlIiwgImJ0eV9hdmciKV0pDQpgYGANCg0KTm93LCB3ZSB3aWxsIGNoZWNrIGxpdHRsZSBtb3JlIGRlZXAgb25seSAqKm91dGNvbWUqKiBhbmQgKipleHBsYW5hdG9yeSoqIHZhcmlhYmxlcyB0ZWFjaGluZyAqKnNjb3JlKiogYW5kICoqYmVhdXR5IGF2ZXJhZ2UqKiBzY29yZSBhbmQgcGlwZSB0aGVtIGludG8gc2tpbSgpIGZ1bmN0aW9uDQoNCmBgYHtyfQ0KZXZhbF9jaDUgfD4gDQogIHNlbGVjdChzY29yZSwgYnR5X2F2ZykgfD4gDQogIHNraW0oKQ0KYGBgDQo=