# library(knitr)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.0.5
## Warning: package 'tibble' was built under R version 4.0.5
## Warning: package 'tidyr' was built under R version 4.0.4
## Warning: package 'dplyr' was built under R version 4.0.4
## Warning: package 'forcats' was built under R version 4.0.4
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.0.5

Exercise 1

What subjects did you randomly select?

#I randomly sleceted AAS, AIS, AST, ENT, and WGSS. Heres the data I created
class_data <- tribble(
  ~subject, ~enrollment,
  'AAS'   , 44,
  'AAS'   , 43,
  'AAS'   , 27,
  'AAS'   , 22,
  'AAS'   , 13,
  'AAS'   , 25,
  'AAS'   , 12,
  'AAS'   , 25,
  'AIS'   , 35,
  'AIS'   , 35,
  'AIS'   , 34,
  'AIS'   , 24,
  'AIS'   , 34,
  'AIS'   , 35,
  'AIS'   , 35,
  'AIS'   , 35,
  'AIS'   , 35,
  'AIS'   , 35,
  'AST'   , 128,
  'AST'   , 127,
  'AST'   , 126,
  'AST'   ,  77,
  'AST'   ,   6,
  'ENT'   , 40,
  'ENT'   ,  8,
  'ENT'   , 45,
  'ENT'   ,  5,
  'ENT'   ,  3,
  'WGSS'  , 52,
  'WGSS'  , 52,
  'WGSS'  , 48,
  'WGSS'  , 13,
  'WGSS'  ,  5,
  'WGSS'  ,  3,
  'WGSS'  ,  4,
  'WGSS'  , 14,
  'WGSS'  , 15,
  'WGSS'  ,  7,
  'IST'   , 13,
  'IST'   , 12,
  'IST'   , 13,
  'IST'   , 19,
  'KOR'   , 25,
  'KOR'   , 33,
  'KOR'   , 19,
  'KOR'   ,  8,
  'KOR'   , 15,
  'TIS'   , 31,
  'TIS'   , 7
) 

#creating the summary statistics 
class_summary <- class_data %>%
  group_by(subject) %>%
  summarise(avg = mean(enrollment),
            var = var(enrollment),
            n_class = n())

#making table of amount of courses in each subject
course_data <- tribble(
  ~subject, ~courses,
  'AAS'   , 6,
  'AIS'   , 4,
  'AST'   , 3,
  'ENT'   , 4,
  'WGSS'  , 4,
  'IST'   , 4,
  'KOR'   , 4,
  'TIS'   , 2
)

#joing with class summary to have number of course in each subject
class_summary <- class_summary %>% full_join(course_data)
## Joining, by = "subject"
#then create est.t and est.v
class_summary <- class_summary %>%
  mutate(course.est.t= courses * avg, 
         course.est.v= signif(var*(courses-n_class)/courses, digits = 4))

Exercise 2

What are the sample mean and variance, and a 95% confidence interval for each sampled cluster?

class_summary
## # A tibble: 8 x 7
##   subject   avg    var n_class courses course.est.t course.est.v
##   <chr>   <dbl>  <dbl>   <int>   <dbl>        <dbl>        <dbl>
## 1 AAS      26.4  142.        8       6        158.         -47.4
## 2 AIS      33.7   11.8      10       4        135.         -17.7
## 3 AST      92.8 2824.        5       3        278.       -1882  
## 4 ENT      20.2  421.        5       4         80.8       -105. 
## 5 IST      14.2   10.2       4       4         57            0  
## 6 KOR      20     91         5       4         80          -22.8
## 7 TIS      19    288         2       2         38            0  
## 8 WGSS     21.3  429.       10       4         85.2       -644

Exercise 3

Estimate mean, the average class size per subject, using the ratio estimator.

est.mean <- weighted.mean(class_summary$avg, w=class_summary$courses)
names(est.mean) <- "estimated students per class"
est.mean
## estimated students per class 
##                     29.43387

Exercise 4

Estimate Var1, the variance of ??^.

m <- 8 #number of cluster samples
N <- 132 #population subject of classes
summarize(class_summary, 
          est.M.bar = mean(courses), 
          ssqb =  
            sum(courses ^ 2 * (avg - est.mean)^2)/(m-1) ) -> between.stats

est.M.bar <- between.stats$est.M.bar
ssqb      <- between.stats$ssqb
est.M     <- N * est.M.bar
Vb        <- (1-m/N)*ssqb/(m*est.M.bar^2)

class_summary %>%
  summarize(
    Msqsum = 
      sum(courses^2*(1-n_class/courses)*course.est.v/n_class) ) -> within.stats

Vw <- within.stats$Msqsum/(m*N*est.M.bar^2)


#Overall Estimate
#Combine the variance components to get the variance of the estimated mean. 
#Then find the 95% confidence intervals for the mean and total:
V <- Vb + Vw
ME.mean  <- signif(2*sqrt(V), digits=2)

# scale up the mean => total, and ME similarly
est.total <- N*est.M.bar*est.mean
ME.total <- signif(N*ME.mean, digits=2)

Exercise 5

Find a 95% confidence interval for ??

#it would be
# u= est.mean +- ME.mean
est.mean - ME.mean
## estimated students per class 
##                     15.43387
est.mean + ME.mean
## estimated students per class 
##                     43.43387
# (15.43, 43.43)

  1. ??^↩︎

LS0tDQp0aXRsZTogIkxhYiBOYW1lIg0KYXV0aG9yOiAiQXV0aG9yIE5hbWUiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpvdXRwdXQ6IG9wZW5pbnRybzo6bGFiX3JlcG9ydA0KLS0tDQoNCmBgYHtyIGxvYWQtcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0V9DQojIGxpYnJhcnkoa25pdHIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoa2FibGVFeHRyYSkNCmBgYA0KDQojIyMgRXhlcmNpc2UgMQ0KDQpXaGF0IHN1YmplY3RzIGRpZCB5b3UgcmFuZG9tbHkgc2VsZWN0Pw0KDQpgYGB7ciBjb2RlLWNodW5rLWxhYmVsfQ0KDQojSSByYW5kb21seSBzbGVjZXRlZCBBQVMsIEFJUywgQVNULCBFTlQsIGFuZCBXR1NTLiBIZXJlcyB0aGUgZGF0YSBJIGNyZWF0ZWQNCmNsYXNzX2RhdGEgPC0gdHJpYmJsZSgNCiAgfnN1YmplY3QsIH5lbnJvbGxtZW50LA0KICAnQUFTJyAgICwgNDQsDQogICdBQVMnICAgLCA0MywNCiAgJ0FBUycgICAsIDI3LA0KICAnQUFTJyAgICwgMjIsDQogICdBQVMnICAgLCAxMywNCiAgJ0FBUycgICAsIDI1LA0KICAnQUFTJyAgICwgMTIsDQogICdBQVMnICAgLCAyNSwNCiAgJ0FJUycgICAsIDM1LA0KICAnQUlTJyAgICwgMzUsDQogICdBSVMnICAgLCAzNCwNCiAgJ0FJUycgICAsIDI0LA0KICAnQUlTJyAgICwgMzQsDQogICdBSVMnICAgLCAzNSwNCiAgJ0FJUycgICAsIDM1LA0KICAnQUlTJyAgICwgMzUsDQogICdBSVMnICAgLCAzNSwNCiAgJ0FJUycgICAsIDM1LA0KICAnQVNUJyAgICwgMTI4LA0KICAnQVNUJyAgICwgMTI3LA0KICAnQVNUJyAgICwgMTI2LA0KICAnQVNUJyAgICwgIDc3LA0KICAnQVNUJyAgICwgICA2LA0KICAnRU5UJyAgICwgNDAsDQogICdFTlQnICAgLCAgOCwNCiAgJ0VOVCcgICAsIDQ1LA0KICAnRU5UJyAgICwgIDUsDQogICdFTlQnICAgLCAgMywNCiAgJ1dHU1MnICAsIDUyLA0KICAnV0dTUycgICwgNTIsDQogICdXR1NTJyAgLCA0OCwNCiAgJ1dHU1MnICAsIDEzLA0KICAnV0dTUycgICwgIDUsDQogICdXR1NTJyAgLCAgMywNCiAgJ1dHU1MnICAsICA0LA0KICAnV0dTUycgICwgMTQsDQogICdXR1NTJyAgLCAxNSwNCiAgJ1dHU1MnICAsICA3LA0KICAnSVNUJyAgICwgMTMsDQogICdJU1QnICAgLCAxMiwNCiAgJ0lTVCcgICAsIDEzLA0KICAnSVNUJyAgICwgMTksDQogICdLT1InICAgLCAyNSwNCiAgJ0tPUicgICAsIDMzLA0KICAnS09SJyAgICwgMTksDQogICdLT1InICAgLCAgOCwNCiAgJ0tPUicgICAsIDE1LA0KICAnVElTJyAgICwgMzEsDQogICdUSVMnICAgLCA3DQopIA0KDQojY3JlYXRpbmcgdGhlIHN1bW1hcnkgc3RhdGlzdGljcyANCmNsYXNzX3N1bW1hcnkgPC0gY2xhc3NfZGF0YSAlPiUNCiAgZ3JvdXBfYnkoc3ViamVjdCkgJT4lDQogIHN1bW1hcmlzZShhdmcgPSBtZWFuKGVucm9sbG1lbnQpLA0KICAgICAgICAgICAgdmFyID0gdmFyKGVucm9sbG1lbnQpLA0KICAgICAgICAgICAgbl9jbGFzcyA9IG4oKSkNCg0KI21ha2luZyB0YWJsZSBvZiBhbW91bnQgb2YgY291cnNlcyBpbiBlYWNoIHN1YmplY3QNCmNvdXJzZV9kYXRhIDwtIHRyaWJibGUoDQogIH5zdWJqZWN0LCB+Y291cnNlcywNCiAgJ0FBUycgICAsIDYsDQogICdBSVMnICAgLCA0LA0KICAnQVNUJyAgICwgMywNCiAgJ0VOVCcgICAsIDQsDQogICdXR1NTJyAgLCA0LA0KICAnSVNUJyAgICwgNCwNCiAgJ0tPUicgICAsIDQsDQogICdUSVMnICAgLCAyDQopDQoNCiNqb2luZyB3aXRoIGNsYXNzIHN1bW1hcnkgdG8gaGF2ZSBudW1iZXIgb2YgY291cnNlIGluIGVhY2ggc3ViamVjdA0KY2xhc3Nfc3VtbWFyeSA8LSBjbGFzc19zdW1tYXJ5ICU+JSBmdWxsX2pvaW4oY291cnNlX2RhdGEpDQoNCiN0aGVuIGNyZWF0ZSBlc3QudCBhbmQgZXN0LnYNCmNsYXNzX3N1bW1hcnkgPC0gY2xhc3Nfc3VtbWFyeSAlPiUNCiAgbXV0YXRlKGNvdXJzZS5lc3QudD0gY291cnNlcyAqIGF2ZywgDQogICAgICAgICBjb3Vyc2UuZXN0LnY9IHNpZ25pZih2YXIqKGNvdXJzZXMtbl9jbGFzcykvY291cnNlcywgZGlnaXRzID0gNCkpDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDINCg0KV2hhdCBhcmUgdGhlIHNhbXBsZSBtZWFuIGFuZCB2YXJpYW5jZSwgYW5kIGEgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIGVhY2ggc2FtcGxlZCBjbHVzdGVyPw0KDQpgYGB7cn0NCg0KY2xhc3Nfc3VtbWFyeQ0KDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDMNCg0KRXN0aW1hdGUgbWVhbiwgdGhlIGF2ZXJhZ2UgY2xhc3Mgc2l6ZSBwZXIgc3ViamVjdCwgdXNpbmcgdGhlIHJhdGlvIGVzdGltYXRvci4NCg0KDQpgYGB7cn0NCg0KZXN0Lm1lYW4gPC0gd2VpZ2h0ZWQubWVhbihjbGFzc19zdW1tYXJ5JGF2Zywgdz1jbGFzc19zdW1tYXJ5JGNvdXJzZXMpDQpuYW1lcyhlc3QubWVhbikgPC0gImVzdGltYXRlZCBzdHVkZW50cyBwZXIgY2xhc3MiDQplc3QubWVhbg0KDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDQNCg0KRXN0aW1hdGUgVmFyXls/P15dLCB0aGUgdmFyaWFuY2Ugb2YgPz9eLg0KDQoNCmBgYHtyfQ0KDQptIDwtIDggI251bWJlciBvZiBjbHVzdGVyIHNhbXBsZXMNCk4gPC0gMTMyICNwb3B1bGF0aW9uIHN1YmplY3Qgb2YgY2xhc3Nlcw0Kc3VtbWFyaXplKGNsYXNzX3N1bW1hcnksIA0KICAgICAgICAgIGVzdC5NLmJhciA9IG1lYW4oY291cnNlcyksIA0KICAgICAgICAgIHNzcWIgPSAgDQogICAgICAgICAgICBzdW0oY291cnNlcyBeIDIgKiAoYXZnIC0gZXN0Lm1lYW4pXjIpLyhtLTEpICkgLT4gYmV0d2Vlbi5zdGF0cw0KDQplc3QuTS5iYXIgPC0gYmV0d2Vlbi5zdGF0cyRlc3QuTS5iYXINCnNzcWIgICAgICA8LSBiZXR3ZWVuLnN0YXRzJHNzcWINCmVzdC5NICAgICA8LSBOICogZXN0Lk0uYmFyDQpWYiAgICAgICAgPC0gKDEtbS9OKSpzc3FiLyhtKmVzdC5NLmJhcl4yKQ0KDQpjbGFzc19zdW1tYXJ5ICU+JQ0KICBzdW1tYXJpemUoDQogICAgTXNxc3VtID0gDQogICAgICBzdW0oY291cnNlc14yKigxLW5fY2xhc3MvY291cnNlcykqY291cnNlLmVzdC52L25fY2xhc3MpICkgLT4gd2l0aGluLnN0YXRzDQoNClZ3IDwtIHdpdGhpbi5zdGF0cyRNc3FzdW0vKG0qTiplc3QuTS5iYXJeMikNCg0KDQojT3ZlcmFsbCBFc3RpbWF0ZQ0KI0NvbWJpbmUgdGhlIHZhcmlhbmNlIGNvbXBvbmVudHMgdG8gZ2V0IHRoZSB2YXJpYW5jZSBvZiB0aGUgZXN0aW1hdGVkIG1lYW4uIA0KI1RoZW4gZmluZCB0aGUgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGZvciB0aGUgbWVhbiBhbmQgdG90YWw6DQpWIDwtIFZiICsgVncNCk1FLm1lYW4gIDwtIHNpZ25pZigyKnNxcnQoViksIGRpZ2l0cz0yKQ0KDQojIHNjYWxlIHVwIHRoZSBtZWFuID0+IHRvdGFsLCBhbmQgTUUgc2ltaWxhcmx5DQplc3QudG90YWwgPC0gTiplc3QuTS5iYXIqZXN0Lm1lYW4NCk1FLnRvdGFsIDwtIHNpZ25pZihOKk1FLm1lYW4sIGRpZ2l0cz0yKQ0KDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDUNCg0KRmluZCBhIDk1JSBjb25maWRlbmNlIGludGVydmFsIGZvciA/Pw0KDQoNCmBgYHtyfQ0KDQojaXQgd291bGQgYmUNCiMgdT0gZXN0Lm1lYW4gKy0gTUUubWVhbg0KZXN0Lm1lYW4gLSBNRS5tZWFuDQplc3QubWVhbiArIE1FLm1lYW4NCg0KIyAoMTUuNDMsIDQzLjQzKQ0KDQpgYGANCg0K