CAschools Stock & Watson casestudy

Data Prep:

library("AER")
data("CASchools")

Interpret the effect of class-size on test scores (Test Scores = beta_1 + beta_2 Class-Size)

teacher_stu_ratio <- CASchools$students/CASchools$teachers
lm_math <- lm(CASchools$math ~ teacher_stu_ratio)
plot(CASchools$math ~ teacher_stu_ratio)
regLine(lm_math)

lm_math$coefficients
      (Intercept) teacher_stu_ratio 
       691.417362         -1.938591 
summary(lm_math)

Call:
lm(formula = CASchools$math ~ teacher_stu_ratio)

Residuals:
    Min      1Q  Median      3Q     Max 
-44.615 -13.374  -0.828  12.728  52.711 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)       691.4174     9.3825  73.692  < 2e-16 ***
teacher_stu_ratio  -1.9386     0.4755  -4.077 5.47e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 18.41 on 418 degrees of freedom
Multiple R-squared:  0.03824,   Adjusted R-squared:  0.03594 
F-statistic: 16.62 on 1 and 418 DF,  p-value: 5.467e-05

This can be interpreted as: on any student that we add to class, the average score of the class would go down by 1.9 points. \(Beta_1=1.9\)

Test whether the effect of class-size on test scores is statistically different from zero (H0: \(beta_1 = 0\); HA: \(beta_1 \neq 0\)) ### According to the summary function, the std. error is .475 for the intercept. the t-value is -4.07. And 4.07 is bigger than 1.96!

beta1 = lm_math$coefficients[2]
beta1
teacher_stu_ratio 
        -1.938591 
SE_beta1 <- 0.4755
t_beta1<- (beta1-0) / (SE_beta1)
t_beta1
teacher_stu_ratio 
        -4.076952 
abs(t_beta1) > 1.96
teacher_stu_ratio 
             TRUE 

Test whether the effect of class-size on test scores is statistically different from one (\(H0: beta_1 = 1\); \(HA: beta_1 \neq 1\))

t_beta1<- (beta1-1) / (SE_beta1)
t_beta1
teacher_stu_ratio 
        -6.180001 
abs(t_beta1) > 1.96
teacher_stu_ratio 
             TRUE 

Construct the dummy variable (D_i, see p. 195 in Stock and Watson) and interpret the coefficient on the dummy variable (Test Scores = \(beta_1\) + \(beta_2 \cdot D_i\)). Generate \(D_i\) (= 1, if class-size < median), a small class-size dummy and compare it to the difference of means test as in chapter 3 (difference in test scores for class-sizes above and below median)

med <- median(teacher_stu_ratio)
med
[1] 19.72321
#lm_math <- lm(CASchools$math ~ teacher_stu_ratio)    so:
D_i <- ifelse(teacher_stu_ratio < med , 1,0) #puts 1 when the ratio is less than median.
D_i #dummy
  [1] 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0
 [45] 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0
 [89] 0 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0
[133] 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1
[177] 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0
[221] 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0
[265] 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1
[309] 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1
[353] 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0
[397] 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1
teacher_stu_ratio <- CASchools$students/CASchools$teachers
lm_math <- lm(CASchools$math ~ teacher_stu_ratio)
beta_0 <- lm_math$coefficients[1]
math_scores <- beta_0 + D_i*beta1*teacher_stu_ratio

Subsetting:

low_ratio <-subset(CASchools,CASchools$students/CASchools$teachers < med)
low_ratio
high_ratio <- subset(CASchools,CASchools$students/CASchools$teachers >= med)
high_ratio
teacher_stu_ratio <- low_ratio$students/low_ratio$teachers
lm_math <- lm(low_ratio$math ~ teacher_stu_ratio)
lm_math

Call:
lm(formula = low_ratio$math ~ teacher_stu_ratio)

Coefficients:
      (Intercept)  teacher_stu_ratio  
           688.44              -1.74  
beta_0 <- lm_math$coefficients[1]
beta_0
(Intercept) 
   688.4394 
beta1 = lm_math$coefficients[2]
beta1
teacher_stu_ratio 
        -1.739883 
math_scores_low<- beta_0 + beta1*teacher_stu_ratio
mean(math_scores_low)
[1] 656.7967
teacher_stu_ratio <- high_ratio$students/high_ratio$teachers
lm_math <- lm(high_ratio$math ~ teacher_stu_ratio)
lm_math

Call:
lm(formula = high_ratio$math ~ teacher_stu_ratio)

Coefficients:
      (Intercept)  teacher_stu_ratio  
         667.2536            -0.8232  
beta_0 <- lm_math$coefficients[1]
beta_0
(Intercept) 
   667.2536 
beta1 = lm_math$coefficients[2]
beta1
teacher_stu_ratio 
       -0.8232153 
math_scores_high <- beta_0 + beta1*teacher_stu_ratio
mean(math_scores_high)
[1] 649.8886

Difference in means:

diff_means<-mean(math_scores_low)-mean(math_scores_high)
diff_means
[1] 6.908093

Calculate the t statistic and compare it with the critical values from the t table in the link here ().

#SE for beta_1:
summary(lm_math)

Call:
lm(formula = high_ratio$math ~ teacher_stu_ratio)

Residuals:
    Min      1Q  Median      3Q     Max 
-44.232 -12.171   0.339  12.361  41.017 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)       667.2536    21.1377  31.567   <2e-16 ***
teacher_stu_ratio  -0.8232     1.0005  -0.823    0.412    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 17.06 on 208 degrees of freedom
Multiple R-squared:  0.003244,  Adjusted R-squared:  -0.001548 
F-statistic: 0.677 on 1 and 208 DF,  p-value: 0.4116
SE_beta1 = 1
t <- diff_means/SE_beta1
t
[1] 6.908093
Conclusion: since the t statistics exceeds the 1.96 threshold (we have 208 DF so we use 1.96 for the 95% CI), the results are statistically significant for the effect of students-teachers ratio for the math scores.
LS0tCnRpdGxlOiAiMi4yIEh5cG90aGVzaXMgVGVzdGluZyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQojIyBDQXNjaG9vbHMgU3RvY2sgJiBXYXRzb24gY2FzZXN0dWR5CkRhdGEgUHJlcDoKYGBge3J9CmxpYnJhcnkoIkFFUiIpCmRhdGEoIkNBU2Nob29scyIpCmBgYAoKSW50ZXJwcmV0IHRoZSBlZmZlY3Qgb2YgY2xhc3Mtc2l6ZSBvbiB0ZXN0IHNjb3JlcyAoVGVzdCBTY29yZXMgPSBiZXRhXzEgKyBiZXRhXzIgQ2xhc3MtU2l6ZSkKYGBge3J9CnRlYWNoZXJfc3R1X3JhdGlvIDwtIENBU2Nob29scyRzdHVkZW50cy9DQVNjaG9vbHMkdGVhY2hlcnMKbG1fbWF0aCA8LSBsbShDQVNjaG9vbHMkbWF0aCB+IHRlYWNoZXJfc3R1X3JhdGlvKQpwbG90KENBU2Nob29scyRtYXRoIH4gdGVhY2hlcl9zdHVfcmF0aW8pCnJlZ0xpbmUobG1fbWF0aCkKYGBgCgoKYGBge3J9CmxtX21hdGgkY29lZmZpY2llbnRzCmBgYAoKYGBge3J9CnN1bW1hcnkobG1fbWF0aCkKYGBgCgojIyMjIF9UaGlzIGNhbiBiZSBpbnRlcnByZXRlZCBhczogb24gYW55IHN0dWRlbnQgdGhhdCB3ZSBhZGQgdG8gY2xhc3MsIHRoZSBhdmVyYWdlIHNjb3JlIG9mIHRoZSBjbGFzcyB3b3VsZCBnbyBkb3duIGJ5IDEuOSBwb2ludHMuICRCZXRhXzE9MS45JF8KClRlc3Qgd2hldGhlciB0aGUgZWZmZWN0IG9mIGNsYXNzLXNpemUgb24gdGVzdCBzY29yZXMgaXMgc3RhdGlzdGljYWxseSBkaWZmZXJlbnQgZnJvbSB6ZXJvIChIMDogJGJldGFfMSA9IDAkOyBIQTogJGJldGFfMSBcbmVxIDAkKQojIyMgX0FjY29yZGluZyB0byB0aGUgc3VtbWFyeSBmdW5jdGlvbiwgdGhlIHN0ZC4gZXJyb3IgaXMgLjQ3NSBmb3IgdGhlIGludGVyY2VwdC4gdGhlIHQtdmFsdWUgaXMgLTQuMDcuIEFuZCA0LjA3IGlzIGJpZ2dlciB0aGFuIDEuOTYhXwpgYGB7cn0KYmV0YTEgPSBsbV9tYXRoJGNvZWZmaWNpZW50c1syXQpiZXRhMQpTRV9iZXRhMSA8LSAwLjQ3NTUKdF9iZXRhMTwtIChiZXRhMS0wKSAvIChTRV9iZXRhMSkKdF9iZXRhMQphYnModF9iZXRhMSkgPiAxLjk2CmBgYAoKVGVzdCB3aGV0aGVyIHRoZSBlZmZlY3Qgb2YgY2xhc3Mtc2l6ZSBvbiB0ZXN0IHNjb3JlcyBpcyBzdGF0aXN0aWNhbGx5IGRpZmZlcmVudCBmcm9tIG9uZSAoJEgwOiBiZXRhXzEgPSAxJDsgJEhBOiBiZXRhXzEgXG5lcSAxJCkKYGBge3J9CnRfYmV0YTE8LSAoYmV0YTEtMSkgLyAoU0VfYmV0YTEpCnRfYmV0YTEKYWJzKHRfYmV0YTEpID4gMS45NgpgYGAKCkNvbnN0cnVjdCB0aGUgZHVtbXkgdmFyaWFibGUgKERfaSwgc2VlIHAuIDE5NSBpbiBTdG9jayBhbmQgV2F0c29uKSBhbmQgaW50ZXJwcmV0IHRoZSBjb2VmZmljaWVudCBvbiB0aGUgZHVtbXkgdmFyaWFibGUgKFRlc3QgU2NvcmVzID0gJGJldGFfMSQgKyAkYmV0YV8yIFxjZG90IERfaSQpLiBHZW5lcmF0ZSAkRF9pJCAoPSAxLCBpZiBjbGFzcy1zaXplIDwgbWVkaWFuKSwgYSBzbWFsbCBjbGFzcy1zaXplIGR1bW15IGFuZCBjb21wYXJlIGl0IHRvIHRoZSBkaWZmZXJlbmNlIG9mIG1lYW5zIHRlc3QgYXMgaW4gY2hhcHRlciAzIChkaWZmZXJlbmNlIGluIHRlc3Qgc2NvcmVzIGZvciBjbGFzcy1zaXplcyBhYm92ZSBhbmQgYmVsb3cgbWVkaWFuKQpgYGB7cn0KbWVkIDwtIG1lZGlhbih0ZWFjaGVyX3N0dV9yYXRpbykKbWVkCiNsbV9tYXRoIDwtIGxtKENBU2Nob29scyRtYXRoIH4gdGVhY2hlcl9zdHVfcmF0aW8pICAgIHNvOgpEX2kgPC0gaWZlbHNlKHRlYWNoZXJfc3R1X3JhdGlvIDwgbWVkICwgMSwwKSAjcHV0cyAxIHdoZW4gdGhlIHJhdGlvIGlzIGxlc3MgdGhhbiBtZWRpYW4uCkRfaSAjZHVtbXkKYGBgCmBgYHtyfQp0ZWFjaGVyX3N0dV9yYXRpbyA8LSBDQVNjaG9vbHMkc3R1ZGVudHMvQ0FTY2hvb2xzJHRlYWNoZXJzCmxtX21hdGggPC0gbG0oQ0FTY2hvb2xzJG1hdGggfiB0ZWFjaGVyX3N0dV9yYXRpbykKYmV0YV8wIDwtIGxtX21hdGgkY29lZmZpY2llbnRzWzFdCm1hdGhfc2NvcmVzIDwtIGJldGFfMCArIERfaSpiZXRhMSp0ZWFjaGVyX3N0dV9yYXRpbwpgYGAKClN1YnNldHRpbmc6CmBgYHtyfQpsb3dfcmF0aW8gPC1zdWJzZXQoQ0FTY2hvb2xzLENBU2Nob29scyRzdHVkZW50cy9DQVNjaG9vbHMkdGVhY2hlcnMgPCBtZWQpCmxvd19yYXRpbwpoaWdoX3JhdGlvIDwtIHN1YnNldChDQVNjaG9vbHMsQ0FTY2hvb2xzJHN0dWRlbnRzL0NBU2Nob29scyR0ZWFjaGVycyA+PSBtZWQpCmhpZ2hfcmF0aW8KYGBgCgpgYGB7cn0KdGVhY2hlcl9zdHVfcmF0aW8gPC0gbG93X3JhdGlvJHN0dWRlbnRzL2xvd19yYXRpbyR0ZWFjaGVycwpsbV9tYXRoIDwtIGxtKGxvd19yYXRpbyRtYXRoIH4gdGVhY2hlcl9zdHVfcmF0aW8pCmxtX21hdGgKYmV0YV8wIDwtIGxtX21hdGgkY29lZmZpY2llbnRzWzFdCmJldGFfMApiZXRhMSA9IGxtX21hdGgkY29lZmZpY2llbnRzWzJdCmJldGExCm1hdGhfc2NvcmVzX2xvdzwtIGJldGFfMCArIGJldGExKnRlYWNoZXJfc3R1X3JhdGlvCm1lYW4obWF0aF9zY29yZXNfbG93KQpgYGAKCmBgYHtyfQp0ZWFjaGVyX3N0dV9yYXRpbyA8LSBoaWdoX3JhdGlvJHN0dWRlbnRzL2hpZ2hfcmF0aW8kdGVhY2hlcnMKbG1fbWF0aCA8LSBsbShoaWdoX3JhdGlvJG1hdGggfiB0ZWFjaGVyX3N0dV9yYXRpbykKbG1fbWF0aApiZXRhXzAgPC0gbG1fbWF0aCRjb2VmZmljaWVudHNbMV0KYmV0YV8wCmJldGExID0gbG1fbWF0aCRjb2VmZmljaWVudHNbMl0KYmV0YTEKbWF0aF9zY29yZXNfaGlnaCA8LSBiZXRhXzAgKyBiZXRhMSp0ZWFjaGVyX3N0dV9yYXRpbwptZWFuKG1hdGhfc2NvcmVzX2hpZ2gpCmBgYAojIyMgRGlmZmVyZW5jZSBpbiBtZWFuczoKYGBge3J9CmRpZmZfbWVhbnM8LW1lYW4obWF0aF9zY29yZXNfbG93KS1tZWFuKG1hdGhfc2NvcmVzX2hpZ2gpCmRpZmZfbWVhbnMKYGBgCgpDYWxjdWxhdGUgdGhlIHQgc3RhdGlzdGljIGFuZCBjb21wYXJlIGl0IHdpdGggdGhlIGNyaXRpY2FsIHZhbHVlcyBmcm9tIHRoZSB0IHRhYmxlIGluIHRoZSBsaW5rIGhlcmUgKCkuCgpgYGB7cn0KI1NFIGZvciBiZXRhXzEgPSAxOgpzdW1tYXJ5KGxtX21hdGgpCmBgYAoKYGBge3J9ClNFX2JldGExID0gMQp0IDwtIGRpZmZfbWVhbnMvU0VfYmV0YTEKdApgYGAKCiMjIyMjIENvbmNsdXNpb246IHNpbmNlIHRoZSB0IHN0YXRpc3RpY3MgZXhjZWVkcyB0aGUgMS45NiB0aHJlc2hvbGQgKHdlIGhhdmUgMjA4IERGIHNvIHdlIHVzZSAxLjk2IGZvciB0aGUgOTUlIENJKSwgdGhlIHJlc3VsdHMgYXJlIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgZm9yIHRoZSBlZmZlY3Qgb2Ygc3R1ZGVudHMtdGVhY2hlcnMgcmF0aW8gZm9yIHRoZSBtYXRoICBzY29yZXMuCg==