> mdata <-read.table("vote.csv", header=T, sep=",") > y <-mdata[,1] > x1 <-mdata[,2] > x2 <-mdata[,3] > x3 <-mdata[,4] > x4 <-mdata[,5] > mydata <-data.frame(y,x1,x2,x3,x4) > logit <- glm(y ~ x1 + x2 + x3 + x4, family=binomial(link="logit"), data=mydata) > summary(logit) Call: glm(formula = y ~ x1 + x2 + x3 + x4, family = binomial(link = "logit"), data = mydata) Deviance Residuals: Min 1Q Median 3Q Max -1.7744 -1.0751 0.5313 1.0443 1.6281 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -9.0785 6.8056 -1.334 0.18221 x1 -0.6009 0.7231 -0.831 0.40601 x2 2.9663 1.4785 2.006 0.04482 * x3 2.2680 0.7607 2.982 0.00287 ** x4 -1.8901 0.9936 -1.902 0.05713 . --- Signif. codes: 0 e***f 0.001 e**f 0.01 e*f 0.05 e.f 0.1 e f 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 126.07 on 94 degrees of freedom Residual deviance: 109.64 on 90 degrees of freedom AIC: 119.64 Number of Fisher Scoring iterations: 5 > library(mfx) > logitor(y ~ x1 + x2 + x3 + x4, data=mydata) Call: logitor(formula = y ~ x1 + x2 + x3 + x4, data = mydata) Odds Ratio: OddsRatio Std. Err. z P>|z| x1 0.54832 0.39652 -0.8309 0.406008 x2 19.42065 28.71261 2.0064 0.044817 * x3 9.65999 7.34799 2.9816 0.002867 ** x4 0.15105 0.15009 -1.9023 0.057133 . --- Signif. codes: 0 e***f 0.001 e**f 0.01 e*f 0.05 e.f 0.1 e f 1 ># Classification > y_pred_prob <- predict(logit, data=mydata, type="response") > y_pred <-I(y_pred_prob>0.5) > sum(y*y_pred)/sum(y) [1] 0.8474576 > sum((1-y)*(1-y_pred))/sum(1-y) [1] 0.3888889 > sum(y*y_pred+(1-y)*(1-y_pred))/95 [1] 0.6736842 > # marginal effects > logitmfx(y ~ x1 + x2 + x3 + x4, data=mydata) Call: logitmfx(formula = y ~ x1 + x2 + x3 + x4, data = mydata) Marginal Effects: dF/dx Std. Err. z P>|z| x1 -0.141848 0.177310 -0.8000 0.423710 x2 0.378944 0.075144 5.0429 4.586e-07 *** x3 0.504408 0.162596 3.1022 0.001921 ** x4 -0.420366 0.216248 -1.9439 0.051906 . --- Signif. codes: 0 e***f 0.001 e**f 0.01 e*f 0.05 e.f 0.1 e f 1 dF/dx is for discrete change for the following variables: [1] "x1" "x2" > > probit <- glm(y ~ x1 + x2 + x3 + x4, family=binomial(link="probit"), data=mydata) > summary(probit) Call: glm(formula = y ~ x1 + x2 + x3 + x4, family = binomial(link = "probit"), data = mydata) Deviance Residuals: Min 1Q Median 3Q Max -1.7734 -1.0785 0.5198 1.0457 1.6191 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -5.3625 4.0691 -1.318 0.18756 x1 -0.3755 0.4401 -0.853 0.39344 x2 1.7760 0.7984 2.224 0.02612 * x3 1.3692 0.4433 3.089 0.00201 ** x4 -1.1579 0.5833 -1.985 0.04712 * --- Signif. codes: 0 e***f 0.001 e**f 0.01 e*f 0.05 e.f 0.1 e f 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 126.07 on 94 degrees of freedom Residual deviance: 109.38 on 90 degrees of freedom AIC: 119.38 Number of Fisher Scoring iterations: 7 > y_pred_prob <- predict(probit, data=mydata, type="response") > y_pred <-I(y_pred_prob>0.5) > sum(y*y_pred)/sum(y) [1] 0.8474576 > sum((1-y)*(1-y_pred))/sum(1-y) [1] 0.3888889 > sum(y*y_pred+(1-y)*(1-y_pred))/95 [1] 0.6736842 > # marginal effects > probitmfx(y ~ x1 + x2 + x3 + x4, data=mydata) Call: probitmfx(formula = y ~ x1 + x2 + x3 + x4, data = mydata) Marginal Effects: dF/dx Std. Err. z P>|z| x1 -0.143777 0.173202 -0.8301 0.406478 x2 0.393362 0.071022 5.5386 3.05e-08 *** x3 0.501062 0.158507 3.1611 0.001572 ** x4 -0.423731 0.210724 -2.0108 0.044343 * --- Signif. codes: 0 e***f 0.001 e**f 0.01 e*f 0.05 e.f 0.1 e f 1 dF/dx is for discrete change for the following variables: [1] "x1" "x2" >