Here we will use Stat 2016 midterm data to further illustrate the related modelling and analysis of a exam score data set.
Curator/Coder: Kno Tsao

Import raw data

Now we load the raw data (names/id removed and reordered for privacy and anonymity) from the web and reconstruct the summary statistics and graphs given in 2016 Stat Website(plots)

Local data import and analyses

If you have got the data set stat2016.txt on your local folder, you can change the working directory to the folder where data is and then proceed

t<-matrix(scan("stat2016.txt"),ncol=3,byrow=T)
Read 189 items
summary(t) # This is not the way to summarize data, just for comparison. 
       V1              V2               V3        
 Min.   :2.000   Min.   :  0.00   Min.   :-10.00  
 1st Qu.:2.000   1st Qu.: 25.50   1st Qu.: 13.50  
 Median :2.000   Median : 46.00   Median : 31.00  
 Mean   :2.476   Mean   : 46.52   Mean   : 34.11  
 3rd Qu.:3.000   3rd Qu.: 67.50   3rd Qu.: 53.00  
 Max.   :5.000   Max.   :110.00   Max.   :100.00  
exam <-data.frame(year=as.factor(t[,1]),mid=t[,2],final=t[,3])
summary(exam)
 year        mid             final       
 2:42   Min.   :  0.00   Min.   :-10.00  
 3:15   1st Qu.: 25.50   1st Qu.: 13.50  
 4: 3   Median : 46.00   Median : 31.00  
 5: 3   Mean   : 46.52   Mean   : 34.11  
        3rd Qu.: 67.50   3rd Qu.: 53.00  
        Max.   :110.00   Max.   :100.00  
plot(exam)

Further plots on midterm and final scores

attach(exam)
stem(mid)

  The decimal point is 1 digit(s) to the right of the |

   0 | 011556056789
   2 | 01256770146779
   4 | 00046667901555558
   6 | 555500011555
   8 | 0501155
  10 | 0
par(mfrow=c(2,2));    # Setup the graphical device
hist(mid); boxplot(mid); qqnorm(mid);
plot(density(mid));

I use “mid” as the variable, you can try the command on “final”

stem(final)

  The decimal point is 1 digit(s) to the right of the |

  -0 | 00
   0 | 01344560111123456678
   2 | 013468001136677889
   4 | 01379133367788
   6 | 0335689
   8 | 3
  10 | 0
par(mfrow=c(2,2));    # Setup the graphical device
hist(final); boxplot(final); qqnorm(final);
plot(density(final));

Relation between mid and final

plot(final,mid,main="Final vs. Midterm Stat 2016")
m1<-lm(final~mid)
summary(m1)

Call:
lm(formula = final ~ mid)

Residuals:
    Min      1Q  Median      3Q     Max 
-36.062 -12.562  -3.029  10.211  61.213 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  8.44481    5.14339   1.642    0.106    
mid          0.55168    0.09554   5.774 2.79e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 20.54 on 61 degrees of freedom
Multiple R-squared:  0.3534,    Adjusted R-squared:  0.3428 
F-statistic: 33.34 on 1 and 61 DF,  p-value: 2.791e-07
# plot(m1)
abline(m1)

m1$coef
(Intercept)         mid 
   8.444807    0.551681 

Questions/Tasks

  • Q1. Is final normal? Is final score appear normal? Your rationale? How do you make it “more normal”?
  • Q2. Estimate the passing threshold. Focus on the final, suppose the instructor failed 1/3 of the class based solely on the final scores. If you want to estimate the passing threshold, should you transform or not? How do you do it exactly? What’s the difference between two approaches?
  • Q3. If the course grade is based on cpoint = 0.35 mid + 0.65 final and the failing rate is about 1/3,
    • Estimate the passing threshold/point of cpoint
    • You and your roommates score 10, 30, 50, 70 in midterm respectively, what are the (estimated) final they need to score in order to pass?
  • Mid-Project (Checkpoint: 5/1, A team =3~5 persons or ask Kno)
    • Given the 2016 Stat data set, estimate the final exam scores of 4 students who scores, say, 10, 30, 50, 70 (or more realistic scores of your interest) in the midterm Stat 2017.
    • According to an unidentified yet reliable source, the course grades given by instructor is roughly #A:#B:#C:#(D or E) \(\approx 1:3:3:3\). Estimate the course grades of these 4 students. Please provide the assumptions and rationale of your estimation.
LS0tCnRpdGxlOiAiUmdhbWVzOiBXZWVrIDctMiAocmV2aXNlZCkiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KSGVyZSB3ZSB3aWxsIHVzZSBTdGF0IDIwMTYgbWlkdGVybSBkYXRhIHRvIGZ1cnRoZXIgCmlsbHVzdHJhdGUgdGhlIHJlbGF0ZWQgbW9kZWxsaW5nIGFuZCBhbmFseXNpcyBvZiBhIGV4YW0gc2NvcmUgZGF0YSBzZXQuICAKQ3VyYXRvci9Db2RlcjogS25vIFRzYW8KCiMgSW1wb3J0IHJhdyBkYXRhIApOb3cgd2UgbG9hZCB0aGUgcmF3IGRhdGEgKG5hbWVzL2lkIHJlbW92ZWQgYW5kIHJlb3JkZXJlZCBmb3IgcHJpdmFjeSBhbmQgYW5vbnltaXR5KSBmcm9tIHRoZSB3ZWIgYW5kIHJlY29uc3RydWN0IHRoZSBzdW1tYXJ5IHN0YXRpc3RpY3MgYW5kIGdyYXBocyAKZ2l2ZW4gaW4gWzIwMTYgU3RhdCBXZWJzaXRlXShodHRwOi8vZmFjdWx0eS5uZGh1LmVkdS50dy8lN0VjaHRzYW8vZWR1LzE2L3N0YXQvc3RhdC5odG1sKShbcGxvdHNdKGh0dHA6Ly9mYWN1bHR5Lm5kaHUuZWR1LnR3L35jaHRzYW8vZWR1LzE2L3N0YXQvbWlkLnN1bW1hcnkuanBnKSkgCgojIyBMb2NhbCBkYXRhIGltcG9ydCBhbmQgYW5hbHlzZXMKSWYgeW91IGhhdmUgZ290IHRoZSBkYXRhIHNldCAgW3N0YXQyMDE2LnR4dF0oaHR0cDovL2ZhY3VsdHkubmRodS5lZHUudHcvfmNodHNhby9mdHAvc3RhdDIwMTYudHh0KSBvbiB5b3VyIGxvY2FsIGZvbGRlciwgeW91IGNhbiBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IHRvIHRoZSBmb2xkZXIgd2hlcmUgZGF0YSBpcyBhbmQgdGhlbiBwcm9jZWVkCmBgYHtyfQp0PC1tYXRyaXgoc2Nhbigic3RhdDIwMTYudHh0IiksbmNvbD0zLGJ5cm93PVQpCnN1bW1hcnkodCkgIyBUaGlzIGlzIG5vdCB0aGUgd2F5IHRvIHN1bW1hcml6ZSBkYXRhLCBqdXN0IGZvciBjb21wYXJpc29uLiAKCmV4YW0gPC1kYXRhLmZyYW1lKHllYXI9YXMuZmFjdG9yKHRbLDFdKSxtaWQ9dFssMl0sZmluYWw9dFssM10pCnN1bW1hcnkoZXhhbSkKcGxvdChleGFtKQpgYGAKCkZ1cnRoZXIgcGxvdHMgb24gbWlkdGVybSBhbmQgZmluYWwgc2NvcmVzCmBgYHtyfQphdHRhY2goZXhhbSkKCnN0ZW0obWlkKQpwYXIobWZyb3c9YygyLDIpKTsgICAgIyBTZXR1cCB0aGUgZ3JhcGhpY2FsIGRldmljZQpoaXN0KG1pZCk7IGJveHBsb3QobWlkKTsgcXFub3JtKG1pZCk7CnBsb3QoZGVuc2l0eShtaWQpKTsKYGBgCkkgdXNlICJtaWQiIGFzIHRoZSB2YXJpYWJsZSwgeW91IGNhbiB0cnkgdGhlIGNvbW1hbmQgb24gImZpbmFsIgpgYGB7ciBzdW1tYXJ5IG9mIGZpbmFsfQpzdGVtKGZpbmFsKQpwYXIobWZyb3c9YygyLDIpKTsgICAgIyBTZXR1cCB0aGUgZ3JhcGhpY2FsIGRldmljZQpoaXN0KGZpbmFsKTsgYm94cGxvdChmaW5hbCk7IHFxbm9ybShmaW5hbCk7CnBsb3QoZGVuc2l0eShmaW5hbCkpOwpgYGAKClJlbGF0aW9uIGJldHdlZW4gbWlkIGFuZCBmaW5hbCAKYGBge3J9CnBsb3QoZmluYWwsbWlkLG1haW49IkZpbmFsIHZzLiBNaWR0ZXJtIFN0YXQgMjAxNiIpCm0xPC1sbShmaW5hbH5taWQpCnN1bW1hcnkobTEpCiMgcGxvdChtMSkKYWJsaW5lKG0xKQptMSRjb2VmCmBgYAoKCiMjIyBRdWVzdGlvbnMvVGFza3MKKiBRMS4gSXMgZmluYWwgbm9ybWFsPyAKSXMgZmluYWwgc2NvcmUgYXBwZWFyIG5vcm1hbD8gWW91ciByYXRpb25hbGU/IEhvdyBkbyB5b3UgbWFrZSBpdCAibW9yZSBub3JtYWwiPwoqIFEyLiBFc3RpbWF0ZSB0aGUgcGFzc2luZyB0aHJlc2hvbGQuCkZvY3VzIG9uIHRoZSBmaW5hbCwgc3VwcG9zZSB0aGUgaW5zdHJ1Y3RvciBmYWlsZWQgMS8zIG9mIHRoZSBjbGFzcyBiYXNlZCBzb2xlbHkgCm9uIHRoZSBmaW5hbCBzY29yZXMuIElmIHlvdSB3YW50IHRvIGVzdGltYXRlIHRoZSBwYXNzaW5nIHRocmVzaG9sZCwgc2hvdWxkIHlvdSB0cmFuc2Zvcm0gb3Igbm90PyBIb3cgZG8geW91IGRvIGl0IGV4YWN0bHk/IFdoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBhcHByb2FjaGVzPwoqIFEzLiBJZiB0aGUgY291cnNlIGdyYWRlIGlzIGJhc2VkIG9uIGNwb2ludCA9IDAuMzUgbWlkICsgMC42NSBmaW5hbCBhbmQgdGhlIGZhaWxpbmcgcmF0ZSBpcyBhYm91dCAxLzMsIAogICAgLSBFc3RpbWF0ZSB0aGUgcGFzc2luZyB0aHJlc2hvbGQvcG9pbnQgb2YgY3BvaW50IAogICAgLSBZb3UgYW5kIHlvdXIgcm9vbW1hdGVzIHNjb3JlIDEwLCAzMCwgNTAsIDcwIGluIG1pZHRlcm0gcmVzcGVjdGl2ZWx5LCB3aGF0IGFyZSB0aGUgKGVzdGltYXRlZCkgZmluYWwgdGhleSBuZWVkIHRvIHNjb3JlIGluIG9yZGVyIHRvIHBhc3M/IAoqICpNaWQtUHJvamVjdCogKENoZWNrcG9pbnQ6IDUvMSwgQSB0ZWFtID0zfjUgcGVyc29ucyBvciBhc2sgS25vKQogICAgLSBHaXZlbiB0aGUgMjAxNiBTdGF0IGRhdGEgc2V0LCBlc3RpbWF0ZSB0aGUgZmluYWwgZXhhbSBzY29yZXMgb2YgNCBzdHVkZW50cyB3aG8gc2NvcmVzLCBzYXksIDEwLCAzMCwgNTAsIDcwIChvciBtb3JlIHJlYWxpc3RpYyBzY29yZXMgb2YgeW91ciBpbnRlcmVzdCkgaW4gdGhlIG1pZHRlcm0gU3RhdCAyMDE3LgogICAgLSBBY2NvcmRpbmcgdG8gYW4gdW5pZGVudGlmaWVkIHlldCByZWxpYWJsZSBzb3VyY2UsIHRoZSBjb3Vyc2UgZ3JhZGVzIGdpdmVuIGJ5IGluc3RydWN0b3IgaXMgcm91Z2hseSAjQTojQjojQzojKEQgb3IgRSkgJFxhcHByb3ggMTozOjM6MyQuIEVzdGltYXRlIHRoZSBjb3Vyc2UgZ3JhZGVzIG9mIHRoZXNlIDQgc3R1ZGVudHMuIFBsZWFzZSBwcm92aWRlIHRoZSBhc3N1bXB0aW9ucyBhbmQgcmF0aW9uYWxlIG9mIHlvdXIgZXN0aW1hdGlvbi4gIAoKCg==