Introduction

In this assignment, I will be applying the Zelig 5 syntax to recreate the computations described on pages 5.2-5.18 of the lecture slides. The objective is to estimate the probability of survival on the titanic by age, fare, sex, and class.


Data and Variables

library(Zelig)
library(texreg)
library(car)
library(mvtnorm)
library(ggplot2)
library(radiant.data)
head(titanic_z)

Creating the Estimation Model

z5titanic<- zlogit$new()
z5titanic$zelig(survival ~ age + sex*pclass + fare, data = titanic_z)
summary(z5titanic)
Model: 

Call:
z5titanic$zelig(formula = survival ~ age + sex * pclass + fare, 
    data = titanic_z)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0628  -0.6636  -0.4941   0.4337   2.4940  

Coefficients:
                    Estimate Std. Error z value            Pr(>|z|)
(Intercept)        4.8959649  0.6128145   7.989 0.00000000000000136
age               -0.0386781  0.0067926  -5.694 0.00000001239977237
sexmale           -3.9001038  0.5015680  -7.776 0.00000000000000750
pclass2nd         -1.5922712  0.6024689  -2.643             0.00822
pclass3rd         -4.1381922  0.5601346  -7.388 0.00000000000014922
fare              -0.0009074  0.0020510  -0.442             0.65820
sexmale:pclass2nd -0.0603255  0.6373047  -0.095             0.92459
sexmale:pclass3rd  2.5016703  0.5479814   4.565 0.00000498908018340

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1409.99  on 1042  degrees of freedom
Residual deviance:  931.42  on 1035  degrees of freedom
AIC: 947.42

Number of Fisher Scoring iterations: 5

Next step: Use 'setx' method

Age Effect on the Probability of Survival

z5titanic$setrange(age = min(titanic_z$age):max(titanic_z$age))
z5titanic$sim()
ci.plot(z5titanic)

Fare Effect on the Probability of Survival

z5titanic$setrange(fare = min(titanic_z$fare):max(titanic_z$fare))
z5titanic$sim()
ci.plot(z5titanic)

Sex Difference in the Probability of Survival

z5sexdiff <- zlogit$new()
z5sexdiff$zelig(survival ~ age + sex*pclass + fare, data = titanic_z)
  z5sexdiff$setx(sex = "male") 
  z5sexdiff$setx1(sex = "female")
  z5sexdiff$sim()
  summary(z5sexdiff)

 sim x :
 -----
ev
          mean         sd       50%      2.5%     97.5%
[1,] 0.1406442 0.01941659 0.1391434 0.1063094 0.1815272
pv
        0    1
[1,] 0.85 0.15

 sim x1 :
 -----
ev
          mean         sd       50%      2.5%     97.5%
[1,] 0.3952872 0.04363755 0.3931868 0.3109656 0.4854279
pv
         0     1
[1,] 0.587 0.413
fd
          mean        sd      50%      2.5%     97.5%
[1,] 0.2546429 0.0451618 0.251758 0.1656266 0.3415504
plot(z5sexdiff)

Class Variations in Sex Difference

1st class

z5_1class <- zlogit$new()
z5_1class$zelig(survival ~ age + sex*pclass + fare, data = titanic_z)
z5_1class$setx(sex = "male", pclass = "1st") 
z5_1class$setx1(sex = "female", pclass = "1st")
z5_1class$sim()
plot(z5_1class)

2nd class

z5_2class <- zlogit$new()
z5_2class$zelig(survival ~ age + sex*pclass + fare, data = titanic_z)
z5_2class$setx(sex = "male", pclass = "2nd") 
z5_2class$setx1(sex = "female", pclass = "2nd")
z5_2class$sim()
plot(z5_2class)

3rd class

z5_3class <- zlogit$new()
z5_3class$zelig(survival ~ age + sex*pclass + fare, data = titanic_z)
z5_3class$setx(sex = "male", pclass = "3rd") 
z5_3class$setx1(sex = "female", pclass = "3rd")
z5_3class$sim()
plot(z5_3class)

Consolidating into one table

d1 <- z5_1class$get_qi(xvalue="x1", qi="fd")
d2 <- z5_2class$get_qi(xvalue="x1", qi="fd")
d3 <- z5_3class$get_qi(xvalue="x1", qi="fd")
  
dfd <- as.data.frame(cbind(d1, d2, d3))
head(dfd)
library(tidyr)
tidd <- dfd %>% 
  gather(class, simv, 1:3)
head(tidd)
tidd %>% 
  group_by(class) %>% 
  summarise(mean = mean(simv), sd = sd(simv))

Plotting class variations in sex difference

ggplot(tidd, aes(simv)) + geom_histogram() + facet_grid(~class)

LS0tDQp0aXRsZTogIlNvYyA3MTIgSG9tZXdvcmsgIzZhIC0gUmVjcmVhdGluZyBTbGlkZXMgVXNpbmcgWmVsaWcgNSBzeW50YXgiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KLS0tDQoNCiMjIEludHJvZHVjdGlvbiANCg0KSW4gdGhpcyBhc3NpZ25tZW50LCBJIHdpbGwgYmUgYXBwbHlpbmcgdGhlIFplbGlnIDUgc3ludGF4IHRvIHJlY3JlYXRlIHRoZSBjb21wdXRhdGlvbnMgZGVzY3JpYmVkIG9uIHBhZ2VzIDUuMi01LjE4IG9mIHRoZSBsZWN0dXJlIHNsaWRlcy4gVGhlIG9iamVjdGl2ZSBpcyB0byBlc3RpbWF0ZSB0aGUgcHJvYmFiaWxpdHkgb2Ygc3Vydml2YWwgb24gdGhlIHRpdGFuaWMgYnkgKmFnZSosICpmYXJlKiwgKnNleCosIGFuZCAqY2xhc3MqLg0KDQotLS0NCg0KIyNEYXRhIGFuZCBWYXJpYWJsZXMgDQoNCmBgYHtyfQ0KbGlicmFyeShaZWxpZykNCmxpYnJhcnkodGV4cmVnKQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KG12dG5vcm0pDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHJhZGlhbnQuZGF0YSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnRpdGFuaWNfeiA8LSB0aXRhbmljICU+JSANCiAgbXV0YXRlKHN1cnZpdmVkMSA9IGFzLmludGVnZXIoc3Vydml2ZWQpKSAlPiUNCiAgbXV0YXRlIChhZ2UgPSBhcy5pbnRlZ2VyKGFnZSkpICU+JQ0KICBtdXRhdGUoc3Vydml2YWwgPSBzam1pc2M6OnJlYyhzdXJ2aXZlZDEsIHJlYyA9ICIyPTA7IDE9MSIpKSAlPiUNCiAgc2VsZWN0KHN1cnZpdmVkLCBzdXJ2aXZhbCwgYWdlLCBzZXgsIHBjbGFzcywgZmFyZSkNCmBgYA0KDQpgYGB7cn0NCmhlYWQodGl0YW5pY196KQ0KYGBgDQoNCiMjQ3JlYXRpbmcgdGhlIEVzdGltYXRpb24gTW9kZWwNCg0KYGBge3J9DQp6NXRpdGFuaWM8LSB6bG9naXQkbmV3KCkNCno1dGl0YW5pYyR6ZWxpZyhzdXJ2aXZhbCB+IGFnZSArIHNleCpwY2xhc3MgKyBmYXJlLCBkYXRhID0gdGl0YW5pY196KQ0Kc3VtbWFyeSh6NXRpdGFuaWMpDQpgYGANCg0KIyMjIEFnZSBFZmZlY3Qgb24gdGhlIFByb2JhYmlsaXR5IG9mIFN1cnZpdmFsDQoNCmBgYHtyfQ0KejV0aXRhbmljJHNldHJhbmdlKGFnZSA9IG1pbih0aXRhbmljX3okYWdlKTptYXgodGl0YW5pY196JGFnZSkpDQp6NXRpdGFuaWMkc2ltKCkNCmNpLnBsb3QoejV0aXRhbmljKQ0KYGBgDQoNCg0KIyMjIEZhcmUgRWZmZWN0IG9uIHRoZSBQcm9iYWJpbGl0eSBvZiBTdXJ2aXZhbCANCg0KYGBge3J9DQp6NXRpdGFuaWMkc2V0cmFuZ2UoZmFyZSA9IG1pbih0aXRhbmljX3okZmFyZSk6bWF4KHRpdGFuaWNfeiRmYXJlKSkNCno1dGl0YW5pYyRzaW0oKQ0KY2kucGxvdCh6NXRpdGFuaWMpDQpgYGANCg0KIyMjU2V4IERpZmZlcmVuY2UgaW4gdGhlIFByb2JhYmlsaXR5IG9mIFN1cnZpdmFsDQoNCmBgYHtyfQ0KejVzZXhkaWZmIDwtIHpsb2dpdCRuZXcoKQ0KejVzZXhkaWZmJHplbGlnKHN1cnZpdmFsIH4gYWdlICsgc2V4KnBjbGFzcyArIGZhcmUsIGRhdGEgPSB0aXRhbmljX3opDQogIHo1c2V4ZGlmZiRzZXR4KHNleCA9ICJtYWxlIikgDQogIHo1c2V4ZGlmZiRzZXR4MShzZXggPSAiZmVtYWxlIikNCiAgejVzZXhkaWZmJHNpbSgpDQogIHN1bW1hcnkoejVzZXhkaWZmKQ0KYGBgDQoNCmBgYHtyIGZpZy5oZWlnaHQ9OH0NCnBsb3QoejVzZXhkaWZmKQ0KYGBgDQoNCg0KIyMjQ2xhc3MgVmFyaWF0aW9ucyBpbiBTZXggRGlmZmVyZW5jZSANCg0KKioxc3QgY2xhc3MqKg0KYGBge3IgZmlnLmhlaWdodD04fQ0KejVfMWNsYXNzIDwtIHpsb2dpdCRuZXcoKQ0KejVfMWNsYXNzJHplbGlnKHN1cnZpdmFsIH4gYWdlICsgc2V4KnBjbGFzcyArIGZhcmUsIGRhdGEgPSB0aXRhbmljX3opDQp6NV8xY2xhc3Mkc2V0eChzZXggPSAibWFsZSIsIHBjbGFzcyA9ICIxc3QiKSANCno1XzFjbGFzcyRzZXR4MShzZXggPSAiZmVtYWxlIiwgcGNsYXNzID0gIjFzdCIpDQp6NV8xY2xhc3Mkc2ltKCkNCnBsb3QoejVfMWNsYXNzKQ0KYGBgDQoNCioqMm5kIGNsYXNzKioNCg0KYGBge3IgZmlnLmhlaWdodD04fQ0KejVfMmNsYXNzIDwtIHpsb2dpdCRuZXcoKQ0KejVfMmNsYXNzJHplbGlnKHN1cnZpdmFsIH4gYWdlICsgc2V4KnBjbGFzcyArIGZhcmUsIGRhdGEgPSB0aXRhbmljX3opDQp6NV8yY2xhc3Mkc2V0eChzZXggPSAibWFsZSIsIHBjbGFzcyA9ICIybmQiKSANCno1XzJjbGFzcyRzZXR4MShzZXggPSAiZmVtYWxlIiwgcGNsYXNzID0gIjJuZCIpDQp6NV8yY2xhc3Mkc2ltKCkNCnBsb3QoejVfMmNsYXNzKQ0KYGBgDQoNCioqM3JkIGNsYXNzKioNCg0KYGBge3IgZmlnLmhlaWdodD04fQ0KejVfM2NsYXNzIDwtIHpsb2dpdCRuZXcoKQ0KejVfM2NsYXNzJHplbGlnKHN1cnZpdmFsIH4gYWdlICsgc2V4KnBjbGFzcyArIGZhcmUsIGRhdGEgPSB0aXRhbmljX3opDQp6NV8zY2xhc3Mkc2V0eChzZXggPSAibWFsZSIsIHBjbGFzcyA9ICIzcmQiKSANCno1XzNjbGFzcyRzZXR4MShzZXggPSAiZmVtYWxlIiwgcGNsYXNzID0gIjNyZCIpDQp6NV8zY2xhc3Mkc2ltKCkNCnBsb3QoejVfM2NsYXNzKQ0KYGBgDQoNCipDb25zb2xpZGF0aW5nIGludG8gb25lIHRhYmxlKiANCg0KYGBge3J9DQpkMSA8LSB6NV8xY2xhc3MkZ2V0X3FpKHh2YWx1ZT0ieDEiLCBxaT0iZmQiKQ0KZDIgPC0gejVfMmNsYXNzJGdldF9xaSh4dmFsdWU9IngxIiwgcWk9ImZkIikNCmQzIDwtIHo1XzNjbGFzcyRnZXRfcWkoeHZhbHVlPSJ4MSIsIHFpPSJmZCIpDQogIA0KZGZkIDwtIGFzLmRhdGEuZnJhbWUoY2JpbmQoZDEsIGQyLCBkMykpDQpoZWFkKGRmZCkNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXIpDQp0aWRkIDwtIGRmZCAlPiUgDQogIGdhdGhlcihjbGFzcywgc2ltdiwgMTozKQ0KaGVhZCh0aWRkKQ0KYGBgDQoNCmBgYHtyfQ0KdGlkZCAlPiUgDQogIGdyb3VwX2J5KGNsYXNzKSAlPiUgDQogIHN1bW1hcmlzZShtZWFuID0gbWVhbihzaW12KSwgc2QgPSBzZChzaW12KSkNCmBgYA0KDQoqUGxvdHRpbmcgY2xhc3MgdmFyaWF0aW9ucyBpbiBzZXggZGlmZmVyZW5jZSoNCmBgYHtyfQ0KZ2dwbG90KHRpZGQsIGFlcyhzaW12KSkgKyBnZW9tX2hpc3RvZ3JhbSgpICsgZmFjZXRfZ3JpZCh+Y2xhc3MpDQpgYGA=