Model 1: Effect of class size on Test scores (as previously done)

library("AER")
Loading required package: car
Loading required package: lmtest
Loading required package: zoo

Attaching package: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric
Loading required package: sandwich
Loading required package: survival
data("CASchools")
teacher_stu_ratio <- CASchools$students/CASchools$teachers
lm_classsize <- lm(CASchools$math ~ teacher_stu_ratio)
plot(CASchools$math ~ teacher_stu_ratio)
regLine(lm_classsize)

Model 2: Effect of income on Test scores

inc <- CASchools$income
lm_inc <- lm(CASchools$math ~ inc)
plot(CASchools$math ~ inc)
regLine(lm_inc)

Model 3: Effect of class-size and income on Test Scores

lm_combined <- lm(CASchools$math ~ inc+teacher_stu_ratio)
covariance<-data.frame(CASchools[,c(11,14)],teacher_stu_ratio)  
head(covariance)
plot(covariance, pch=10, col="blue", main="All Correlations Presented")

Note the size and direction of class-size effect in Model 1 and compare it with the coefficient on class-size in Model 3

lm_classsize$coefficients[2]
teacher_stu_ratio 
        -1.938591 
lm_combined$coefficients[3]
teacher_stu_ratio 
       -0.3474342 

Explain the difference in magnitude. What did the introduction of the income variable do to the effect of class-size?

The effect decreased substantially since beforehand the chagne was attributed to it, but now we introduced more posible explanatory variables.

Run Model 5: Test Scores = F(STR, income, english)

lm_w_english <- lm(CASchools$math~ teacher_stu_ratio+ inc + CASchools$english)
df_eng<-data.frame(CASchools[,c(11,12,14)],teacher_stu_ratio)  
plot(df_eng, pch=10, col="blue", main="All Correlations Presented")

Compare Model 5 to Model 6: Test Scores = F(STR, income, income squared, english). Use adjusted r-squared to argue for the best specification.

lm_inc_squared <- lm(CASchools$math~ teacher_stu_ratio+ inc +inc**2 +CASchools$english)
inc_sq<-data.frame(CASchools[,c(11,12,14)],inc**2, teacher_stu_ratio)  
head(inc_sq)
plot(inc_sq, pch=10, col="blue", main="All Correlations Presented")

Use stargazer to put all the models in one regression table (adjust the font size if need be, so it can fit in a single page on the googe doc.)

#install.packages("stargazer")
library(stargazer)

Please cite as: 
 Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
 R package version 5.2.1. https://CRAN.R-project.org/package=stargazer 
stargazer(lm_classsize,lm_combined,lm_inc_squared, lm_w_english,align=TRUE, no.space=TRUE, type = "text", font.size = "footnotesize")

======================================================================================================================
                                                           Dependent variable:                                        
                    --------------------------------------------------------------------------------------------------
                                                                   math                                               
                              (1)                     (2)                      (3)                      (4)           
----------------------------------------------------------------------------------------------------------------------
inc                                                 1.794***                 1.510***                 1.510***        
                                                    (0.093)                  (0.083)                  (0.083)         
english                                                                     -0.402***                -0.402***        
                                                                             (0.033)                  (0.033)         
teacher_stu_ratio          -1.939***                 -0.347                   0.130                    0.130          
                            (0.476)                 (0.356)                  (0.307)                  (0.307)         
Constant                  691.417***               632.687***               633.994***               633.994***       
                            (9.382)                 (7.489)                  (6.411)                  (6.411)         
----------------------------------------------------------------------------------------------------------------------
Observations                  420                     420                      420                      420           
R2                           0.038                   0.490                    0.627                    0.627          
Adjusted R2                  0.036                   0.488                    0.625                    0.625          
Residual Std. Error    18.414 (df = 418)       13.421 (df = 417)        11.488 (df = 416)        11.488 (df = 416)    
F Statistic         16.620*** (df = 1; 418) 200.580*** (df = 2; 417) 233.552*** (df = 3; 416) 233.552*** (df = 3; 416)
======================================================================================================================
Note:                                                                                      *p<0.1; **p<0.05; ***p<0.01
#,lm_inc missing
LS0tCnRpdGxlOiAiMy4yIE11bHRpcGxlIFJlZ3Jlc3Npb24iCm91dHB1dDogaHRtbF9ub3RlYm9vawogICAgI2luY2x1ZGVzOiBcdXNlcGFja2FnZXtkY29sdW1ufQotLS0KCiMjIE1vZGVsIDE6IEVmZmVjdCBvZiBjbGFzcyBzaXplIG9uIFRlc3Qgc2NvcmVzIChhcyBwcmV2aW91c2x5IGRvbmUpCmBgYHtyfQpsaWJyYXJ5KCJBRVIiKQpkYXRhKCJDQVNjaG9vbHMiKQpgYGAKCmBgYHtyfQp0ZWFjaGVyX3N0dV9yYXRpbyA8LSBDQVNjaG9vbHMkc3R1ZGVudHMvQ0FTY2hvb2xzJHRlYWNoZXJzCmxtX2NsYXNzc2l6ZSA8LSBsbShDQVNjaG9vbHMkbWF0aCB+IHRlYWNoZXJfc3R1X3JhdGlvKQpwbG90KENBU2Nob29scyRtYXRoIH4gdGVhY2hlcl9zdHVfcmF0aW8pCnJlZ0xpbmUobG1fY2xhc3NzaXplKQpgYGAKCiMjIE1vZGVsIDI6IEVmZmVjdCBvZiBpbmNvbWUgb24gVGVzdCBzY29yZXMKYGBge3J9CmluYyA8LSBDQVNjaG9vbHMkaW5jb21lCmxtX2luYyA8LSBsbShDQVNjaG9vbHMkbWF0aCB+IGluYykKcGxvdChDQVNjaG9vbHMkbWF0aCB+IGluYykKcmVnTGluZShsbV9pbmMpCmBgYAoKIyMgTW9kZWwgMzogRWZmZWN0IG9mIGNsYXNzLXNpemUgYW5kIGluY29tZSBvbiBUZXN0IFNjb3JlcwpgYGB7cn0KbG1fY29tYmluZWQgPC0gbG0oQ0FTY2hvb2xzJG1hdGggfiBpbmMrdGVhY2hlcl9zdHVfcmF0aW8pCmNvdmFyaWFuY2U8LWRhdGEuZnJhbWUoQ0FTY2hvb2xzWyxjKDExLDE0KV0sdGVhY2hlcl9zdHVfcmF0aW8pICAKaGVhZChjb3ZhcmlhbmNlKQpwbG90KGNvdmFyaWFuY2UsIHBjaD0xMCwgY29sPSJibHVlIiwgbWFpbj0iQWxsIENvcnJlbGF0aW9ucyBQcmVzZW50ZWQiKQpgYGAKIyMgTm90ZSB0aGUgc2l6ZSBhbmQgZGlyZWN0aW9uIG9mIGNsYXNzLXNpemUgZWZmZWN0IGluIE1vZGVsIDEgYW5kIGNvbXBhcmUgaXQgd2l0aCB0aGUgY29lZmZpY2llbnQgb24gY2xhc3Mtc2l6ZSBpbiBNb2RlbCAzCmBgYHtyfQpsbV9jbGFzc3NpemUkY29lZmZpY2llbnRzWzJdCmxtX2NvbWJpbmVkJGNvZWZmaWNpZW50c1szXQpgYGAKCiMjIEV4cGxhaW4gdGhlIGRpZmZlcmVuY2UgaW4gbWFnbml0dWRlLiBXaGF0IGRpZCB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBpbmNvbWUgdmFyaWFibGUgZG8gdG8gdGhlIGVmZmVjdCBvZiBjbGFzcy1zaXplPwoKVGhlIGVmZmVjdCBkZWNyZWFzZWQgc3Vic3RhbnRpYWxseSBzaW5jZSBiZWZvcmVoYW5kIHRoZSBjaGFnbmUgd2FzIGF0dHJpYnV0ZWQgdG8gaXQsIGJ1dCBub3cgd2UgaW50cm9kdWNlZCBtb3JlIHBvc2libGUgZXhwbGFuYXRvcnkgdmFyaWFibGVzLgoKUnVuIE1vZGVsIDU6IFRlc3QgU2NvcmVzID0gRihTVFIsIGluY29tZSwgZW5nbGlzaCkKYGBge3J9CmxtX3dfZW5nbGlzaCA8LSBsbShDQVNjaG9vbHMkbWF0aH4gdGVhY2hlcl9zdHVfcmF0aW8rIGluYyArIENBU2Nob29scyRlbmdsaXNoKQpkZl9lbmc8LWRhdGEuZnJhbWUoQ0FTY2hvb2xzWyxjKDExLDEyLDE0KV0sdGVhY2hlcl9zdHVfcmF0aW8pICAKcGxvdChkZl9lbmcsIHBjaD0xMCwgY29sPSJibHVlIiwgbWFpbj0iQWxsIENvcnJlbGF0aW9ucyBQcmVzZW50ZWQiKQpgYGAKCkNvbXBhcmUgTW9kZWwgNSB0byBNb2RlbCA2OiBUZXN0IFNjb3JlcyA9IEYoU1RSLCBpbmNvbWUsIGluY29tZSBzcXVhcmVkLCBlbmdsaXNoKS4gVXNlIGFkanVzdGVkIHItc3F1YXJlZCB0byBhcmd1ZSBmb3IgdGhlIGJlc3Qgc3BlY2lmaWNhdGlvbi4KYGBge3J9CmxtX2luY19zcXVhcmVkIDwtIGxtKENBU2Nob29scyRtYXRofiB0ZWFjaGVyX3N0dV9yYXRpbysgaW5jICtpbmMqKjIgK0NBU2Nob29scyRlbmdsaXNoKQppbmNfc3E8LWRhdGEuZnJhbWUoQ0FTY2hvb2xzWyxjKDExLDEyLDE0KV0saW5jKioyLCB0ZWFjaGVyX3N0dV9yYXRpbykgIApoZWFkKGluY19zcSkKYGBgCmBgYHtyfQpwbG90KGluY19zcSwgcGNoPTEwLCBjb2w9ImJsdWUiLCBtYWluPSJBbGwgQ29ycmVsYXRpb25zIFByZXNlbnRlZCIpCmBgYApVc2Ugc3RhcmdhemVyIHRvIHB1dCBhbGwgdGhlIG1vZGVscyBpbiBvbmUgcmVncmVzc2lvbiB0YWJsZSAoYWRqdXN0IHRoZSBmb250IHNpemUgaWYgbmVlZCBiZSwgc28gaXQgY2FuIGZpdCBpbiBhIHNpbmdsZSBwYWdlIG9uIHRoZSBnb29nZSBkb2MuKQpgYGB7cn0KI2luc3RhbGwucGFja2FnZXMoInN0YXJnYXplciIpCmxpYnJhcnkoc3RhcmdhemVyKQpgYGAKCmBgYHtyfQpzdGFyZ2F6ZXIobG1fY2xhc3NzaXplLGxtX2NvbWJpbmVkLGxtX2luY19zcXVhcmVkLCBsbV93X2VuZ2xpc2gsYWxpZ249VFJVRSwgbm8uc3BhY2U9VFJVRSwgdHlwZSA9ICJ0ZXh0IiwgZm9udC5zaXplID0gImZvb3Rub3Rlc2l6ZSIpCiMsbG1faW5jIG1pc3NpbmcKYGBgCgo=