# Computes the measures of central tendency and measures of variability and the relationships
# using mean, median, mode, max, min, range, quantile, IQR, var( ), sd( ), and cor( )
# Created by Muhammad Yasir
# July 19, 2020

# Measures of central tendency
# Calculating Mean each of the seven variables in the attitude dataset
# The mean of a set of observations is just an average. Add them and divide them by total numbers.

mean(attitude$complaints, na.rm=TRUE)
## [1] 66.6
mean(attitude$privileges, na.rm=TRUE)
## [1] 53.13333
mean(attitude$learning, na.rm=TRUE)
## [1] 56.36667
mean(attitude$raises, na.rm=TRUE)
## [1] 64.63333
mean(attitude$critical, na.rm=TRUE)
## [1] 74.76667
mean(attitude$advance, na.rm=TRUE)
## [1] 42.93333
# Measures of central tendency
# Calculating Median each of the seven variables in the attitude dataset
# The middle value in a set of observations is the median.
# In case, the middle value is at positions 25 and 26 and values are different then will take the average of both.
median(attitude$rating, na.rm=TRUE)
## [1] 65.5
median(attitude$complaints, na.rm=TRUE)
## [1] 65
median(attitude$privileges, na.rm=TRUE)
## [1] 51.5
median(attitude$learning, na.rm=TRUE)
## [1] 56.5
median(attitude$raises, na.rm=TRUE)
## [1] 63.5
median(attitude$critical, na.rm=TRUE)
## [1] 77.5
median(attitude$advance, na.rm=TRUE)
## [1] 41
# Measures of central tendency
# Calculating Mode each of the seven variables in the attitude dataset
# The mode of a set of observations is the value that occurs most frequently
modeforrating <- table(as.vector(attitude$rating))
names(modeforrating)[modeforrating == max(modeforrating)]
## [1] "43" "50" "63" "64" "65" "67" "71" "81"
modeforcomplaints <- table(as.vector(attitude$complaints))
names(modeforcomplaints)[modeforcomplaints == max(modeforcomplaints)]
## [1] "60" "61" "70" "75" "77" "82" "85"
modeforprivileges <- table(as.vector(attitude$privileges))
names(modeforprivileges)[modeforprivileges == max(modeforprivileges)]
## [1] "42"
modeforlearning <- table(as.vector(attitude$learning))
names(modeforlearning)[modeforlearning == max(modeforlearning)]
## [1] "39" "45" "47" "54" "58" "69" "72"
modeforraises <- table(as.vector(attitude$raises))
names(modeforraises)[modeforraises == max(modeforraises)]
## [1] "66"
modeforcritical <- table(as.vector(attitude$critical))
names(modeforcritical)[modeforcritical == max(modeforcritical)]
## [1] "80"
modeforadvance <- table(as.vector(attitude$advance))
names(modeforadvance)[modeforadvance == max(modeforadvance)]
## [1] "41"
# Measures of variability
# Min , Max and Range of each variable

min(attitude$rating)
## [1] 40
max(attitude$rating)
## [1] 85
range(attitude$rating)
## [1] 40 85
min(attitude$complaints)
## [1] 37
max(attitude$complaints)
## [1] 90
range(attitude$complaints)
## [1] 37 90
min(attitude$privileges)
## [1] 30
max(attitude$privileges)
## [1] 83
range(attitude$privileges)
## [1] 30 83
min(attitude$learning)
## [1] 34
max(attitude$learning)
## [1] 75
range(attitude$learning)
## [1] 34 75
min(attitude$raises)
## [1] 43
max(attitude$raises)
## [1] 88
range(attitude$raises)
## [1] 43 88
min(attitude$critical)
## [1] 49
max(attitude$critical)
## [1] 92
range(attitude$critical)
## [1] 49 92
min(attitude$advance)
## [1] 25
max(attitude$advance)
## [1] 72
range(attitude$advance)
## [1] 25 72
# Interquartile range for each variable
# you calculate the difference between the 25th quantile and the 75th quantile
quantile(attitude$rating)
##    0%   25%   50%   75%  100% 
## 40.00 58.75 65.50 71.75 85.00
IQR(attitude$rating)
## [1] 13
quantile(attitude$complaints)
##   0%  25%  50%  75% 100% 
## 37.0 58.5 65.0 77.0 90.0
IQR(attitude$complaints)
## [1] 18.5
quantile(attitude$privileges)
##   0%  25%  50%  75% 100% 
## 30.0 45.0 51.5 62.5 83.0
IQR(attitude$privileges)
## [1] 17.5
quantile(attitude$learning)
##    0%   25%   50%   75%  100% 
## 34.00 47.00 56.50 66.75 75.00
IQR(attitude$learning)
## [1] 19.75
quantile(attitude$raises)
##    0%   25%   50%   75%  100% 
## 43.00 58.25 63.50 71.00 88.00
IQR(attitude$raises)
## [1] 12.75
quantile(attitude$raises)
##    0%   25%   50%   75%  100% 
## 43.00 58.25 63.50 71.00 88.00
IQR(attitude$raises)
## [1] 12.75
quantile(attitude$critical)
##    0%   25%   50%   75%  100% 
## 49.00 69.25 77.50 80.00 92.00
IQR(attitude$critical)
## [1] 10.75
quantile(attitude$advance)
##    0%   25%   50%   75%  100% 
## 25.00 35.00 41.00 47.75 72.00
IQR(attitude$advance)
## [1] 12.75
# Variance and Standard Deviation

var(attitude$rating)
## [1] 148.1713
sd(attitude$rating)
## [1] 12.17256
var(attitude$complaints)
## [1] 177.2828
sd(attitude$complaints)
## [1] 13.31476
var(attitude$privileges)
## [1] 149.7057
sd(attitude$privileges)
## [1] 12.23543
var(attitude$learning)
## [1] 137.7575
sd(attitude$learning)
## [1] 11.73701
var(attitude$raises)
## [1] 108.1023
sd(attitude$raises)
## [1] 10.39723
var(attitude$critical)
## [1] 97.9092
sd(attitude$critical)
## [1] 9.894908
var(attitude$advance)
## [1] 105.8575
sd(attitude$advance)
## [1] 10.28871
# Correlation between all set of pairs
cor(attitude)
##               rating complaints privileges  learning    raises  critical
## rating     1.0000000  0.8254176  0.4261169 0.6236782 0.5901390 0.1564392
## complaints 0.8254176  1.0000000  0.5582882 0.5967358 0.6691975 0.1877143
## privileges 0.4261169  0.5582882  1.0000000 0.4933310 0.4454779 0.1472331
## learning   0.6236782  0.5967358  0.4933310 1.0000000 0.6403144 0.1159652
## raises     0.5901390  0.6691975  0.4454779 0.6403144 1.0000000 0.3768830
## critical   0.1564392  0.1877143  0.1472331 0.1159652 0.3768830 1.0000000
## advance    0.1550863  0.2245796  0.3432934 0.5316198 0.5741862 0.2833432
##              advance
## rating     0.1550863
## complaints 0.2245796
## privileges 0.3432934
## learning   0.5316198
## raises     0.5741862
## critical   0.2833432
## advance    1.0000000
# summary
summary(attitude)
##      rating        complaints     privileges       learning         raises     
##  Min.   :40.00   Min.   :37.0   Min.   :30.00   Min.   :34.00   Min.   :43.00  
##  1st Qu.:58.75   1st Qu.:58.5   1st Qu.:45.00   1st Qu.:47.00   1st Qu.:58.25  
##  Median :65.50   Median :65.0   Median :51.50   Median :56.50   Median :63.50  
##  Mean   :64.63   Mean   :66.6   Mean   :53.13   Mean   :56.37   Mean   :64.63  
##  3rd Qu.:71.75   3rd Qu.:77.0   3rd Qu.:62.50   3rd Qu.:66.75   3rd Qu.:71.00  
##  Max.   :85.00   Max.   :90.0   Max.   :83.00   Max.   :75.00   Max.   :88.00  
##     critical        advance     
##  Min.   :49.00   Min.   :25.00  
##  1st Qu.:69.25   1st Qu.:35.00  
##  Median :77.50   Median :41.00  
##  Mean   :74.77   Mean   :42.93  
##  3rd Qu.:80.00   3rd Qu.:47.75  
##  Max.   :92.00   Max.   :72.00