America is one of 13 countries where in the last 25 years maternal mortality rates have worsened [1].Black women are a particularly vulnerable group with a high maternal mortality rate who frequently report receiving inadequate maternal healthcare and support.India has worked substanially to reduce the maternal mortality rate by establishing several crucial government intervention programs and sucessfully dropped from 556 per 100 000 live births in 1990 to 130 per 100 000 live births in 2016 [2].For my research, I will be looking at age as the independent variable and how it impacts maternal mortality rates when interacting with other dependent variables, such as seeking medical care, where they live (rural or urban), and if they have a safe drinking water supply .
library (readr)
library (pander)
library (Zelig)
## Loading required package: survival
library (maxLik)
## Loading required package: miscTools
##
## Please cite the 'maxLik' package as:
## Henningsen, Arne and Toomet, Ott (2011). maxLik: A package for maximum likelihood estimation in R. Computational Statistics 26(3), 443-458. DOI 10.1007/s00180-010-0217-1.
##
## If you have questions, suggestions, or comments regarding the 'maxLik' package, please use a forum or 'tracker' at maxLik's R-Forge site:
## https://r-forge.r-project.org/projects/maxlik/
library (visreg)
library (texreg)
## Version: 1.36.23
## Date: 2017-03-03
## Author: Philip Leifeld (University of Glasgow)
##
## Please cite the JSS article in your publications -- see citation("texreg").
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
The “predict_mortality_death_rate” dataset is downloaded from Kaggle. The dataset comprises of responses from the Annual Health Survey in 8 Empowered Action Group States (Bihar, Jharkhand, Uttar Pradesh, Uttarakhand, Madhya Pradesh, Chhattisgarh, Orissa and Rajasthan) and Assam, India. The survey is administered by the Office of Registrar General, India. It is conducted over a three year period, starting with the baseline survey and two updated versions, from 2010 - 2011 then 2012-2013. The representative sample encompasses about 20.1 million population and 4.1 million households [3]. There are 770k observations in the original dataset and 121 variables.
predict_mortality_death_rate <- read_csv("C:/Users/Matthew/Downloads/predict-mortality-death-rate.zip")
## Multiple files in zip: reading 'Mortality_05_UT.csv'
## Parsed with column specification:
## cols(
## .default = col_double(),
## field38 = col_logical(),
## building_no = col_character(),
## isdeadmigrated = col_logical(),
## x = col_logical(),
## v126 = col_logical()
## )
## See spec(...) for full column specifications.
head (predict_mortality_death_rate)
## # A tibble: 6 x 122
## id m_id client_m_id hl_id house_no house_hold_no state district
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 165767 10 NA NA 132 1 5 9
## 2 167609 4 NA NA 111 1 5 2
## 3 530767 954 NA 25345 19 1 5 1
## 4 530775 962 NA 25535 72 6 5 1
## 5 167601 26 NA NA 248 2 5 2
## 6 167593 7 NA NA 77 1 5 2
## # ... with 114 more variables: rural <dbl>, stratum_code <dbl>,
## # psu_id <dbl>, m_serial_no <dbl>, deceased_sex <dbl>,
## # date_of_death <dbl>, month_of_death <dbl>, year_of_death <dbl>,
## # age_of_death_below_one_month <dbl>,
## # age_of_death_below_eleven_month <dbl>,
## # age_of_death_above_one_year <dbl>, treatment_source <dbl>,
## # place_of_death <dbl>, is_death_reg <dbl>,
## # is_death_certificate_received <dbl>,
## # serial_num_of_infant_mother <dbl>, order_of_birth <dbl>,
## # death_symptoms <dbl>, is_death_associated_with_pregnan <dbl>,
## # death_period <dbl>, months_of_pregnancy <dbl>,
## # factors_contributing_death <dbl>, factors_contributing_death_2 <dbl>,
## # symptoms_of_death <dbl>, time_between_onset_of_complicati <dbl>,
## # nearest_medical_facility <dbl>, m_expall_status <dbl>, field38 <lgl>,
## # hh_id <dbl>, client_hh_id <dbl>, currently_dead_or_out_migrated <dbl>,
## # hh_serial_no <dbl>, sex <dbl>, usual_residance <dbl>,
## # relation_to_head <dbl>, member_identity <dbl>, father_serial_no <dbl>,
## # mother_serial_no <dbl>, date_of_birth <dbl>, month_of_birth <dbl>,
## # year_of_birth <dbl>, age <dbl>, religion <dbl>,
## # social_group_code <dbl>, marital_status <dbl>, date_of_marriage <dbl>,
## # month_of_marriage <dbl>, year_of_marriage <dbl>,
## # currently_attending_school <dbl>,
## # reason_for_not_attending_school <dbl>, highest_qualification <dbl>,
## # occupation_status <dbl>, disability_status <dbl>,
## # injury_treatment_type <dbl>, illness_type <dbl>,
## # symptoms_pertaining_illness <dbl>, sought_medical_care <dbl>,
## # diagnosed_for <dbl>, diagnosis_source <dbl>, regular_treatment <dbl>,
## # regular_treatment_source <dbl>, chew <dbl>, smoke <dbl>,
## # alcohol <dbl>, status <dbl>, hh_expall_status <dbl>,
## # client_hl_id <dbl>, serial_no <dbl>, building_no <chr>,
## # house_status <dbl>, house_structure <dbl>, owner_status <dbl>,
## # drinking_water_source <dbl>, is_water_filter <dbl>,
## # water_filteration <dbl>, toilet_used <dbl>, is_toilet_shared <dbl>,
## # household_have_electricity <dbl>, lighting_source <dbl>,
## # cooking_fuel <dbl>, no_of_dwelling_rooms <dbl>,
## # kitchen_availability <dbl>, is_radio <dbl>, is_television <dbl>,
## # is_computer <dbl>, is_telephone <dbl>, is_washing_machine <dbl>,
## # is_refrigerator <dbl>, is_sewing_machine <dbl>, is_bicycle <dbl>,
## # is_scooter <dbl>, is_car <dbl>, is_tractor <dbl>, is_water_pump <dbl>,
## # cart <dbl>, land_possessed <dbl>, hl_expall_status <dbl>, fid <dbl>,
## # isdeadmigrated <lgl>, residancial_status <dbl>, ...
I used the “is_death_certificate_received” variable due to the notion that its a strong confirmation of death for the participants surveyed. This model demonsrates a strong correlation between age and mortality.
model_1 <- glm(is_death_certificate_received ~ age,data = predict_mortality_death_rate)
summary(model_1)
##
## Call:
## glm(formula = is_death_certificate_received ~ age, data = predict_mortality_death_rate)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.9508 -0.8156 0.1417 0.2176 4.1631
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.7159628 0.0124326 57.588 <2e-16 ***
## age 0.0023722 0.0002432 9.755 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.6094838)
##
## Null deviance: 30111 on 49310 degrees of freedom
## Residual deviance: 30053 on 49309 degrees of freedom
## (4192 observations deleted due to missingness)
## AIC: 115527
##
## Number of Fisher Scoring iterations: 2
model_2 <- glm(is_death_certificate_received ~ rural, data= predict_mortality_death_rate)
summary(model_2)
##
## Call:
## glm(formula = is_death_certificate_received ~ rural, data = predict_mortality_death_rate)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.8459 -0.8330 0.1541 0.1670 4.1670
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.820217 0.011362 72.19 <2e-16 ***
## rural 0.012830 0.009164 1.40 0.162
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.6118744)
##
## Null deviance: 30320 on 49551 degrees of freedom
## Residual deviance: 30318 on 49550 degrees of freedom
## (3951 observations deleted due to missingness)
## AIC: 116285
##
## Number of Fisher Scoring iterations: 2
model_3 <- glm(is_death_certificate_received~ age+rural,data = predict_mortality_death_rate)
summary(model_3)
##
## Call:
## glm(formula = is_death_certificate_received ~ age + rural, data = predict_mortality_death_rate)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.9626 -0.8130 0.1421 0.2154 4.1657
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.6988231 0.0163482 42.746 <2e-16 ***
## age 0.0023660 0.0002432 9.728 <2e-16 ***
## rural 0.0147910 0.0091612 1.615 0.106
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.6094639)
##
## Null deviance: 30111 on 49310 degrees of freedom
## Residual deviance: 30051 on 49308 degrees of freedom
## (4192 observations deleted due to missingness)
## AIC: 115526
##
## Number of Fisher Scoring iterations: 2
model_4 <- glm(is_death_certificate_received~ age+rural+is_water_filter+household_have_electricity+is_refrigerator,data = predict_mortality_death_rate)
summary(model_4)
##
## Call:
## glm(formula = is_death_certificate_received ~ age + rural + is_water_filter +
## household_have_electricity + is_refrigerator, data = predict_mortality_death_rate)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.0181 -0.8086 0.1350 0.2248 4.1788
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.9133138 0.0366629 24.911 < 2e-16 ***
## age 0.0020895 0.0002497 8.369 < 2e-16 ***
## rural -0.0104661 0.0106438 -0.983 0.32546
## is_water_filter -0.1029359 0.0116731 -8.818 < 2e-16 ***
## household_have_electricity 0.0391465 0.0130781 2.993 0.00276 **
## is_refrigerator -0.0107694 0.0099152 -1.086 0.27742
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.6109933)
##
## Null deviance: 29177 on 47575 degrees of freedom
## Residual deviance: 29065 on 47570 degrees of freedom
## (5927 observations deleted due to missingness)
## AIC: 111584
##
## Number of Fisher Scoring iterations: 2
model_4 <- lm(is_death_certificate_received~ age+rural+is_water_filter+household_have_electricity+is_refrigerator,data = predict_mortality_death_rate)
summary(model_4)
##
## Call:
## lm(formula = is_death_certificate_received ~ age + rural + is_water_filter +
## household_have_electricity + is_refrigerator, data = predict_mortality_death_rate)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.0181 -0.8086 0.1350 0.2248 4.1788
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.9133138 0.0366629 24.911 < 2e-16 ***
## age 0.0020895 0.0002497 8.369 < 2e-16 ***
## rural -0.0104661 0.0106438 -0.983 0.32546
## is_water_filter -0.1029359 0.0116731 -8.818 < 2e-16 ***
## household_have_electricity 0.0391465 0.0130781 2.993 0.00276 **
## is_refrigerator -0.0107694 0.0099152 -1.086 0.27742
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7817 on 47570 degrees of freedom
## (5927 observations deleted due to missingness)
## Multiple R-squared: 0.003834, Adjusted R-squared: 0.00373
## F-statistic: 36.62 on 5 and 47570 DF, p-value: < 2.2e-16
htmlreg(list(model_1, model_2, model_3), doctype = FALSE)
##
## <table cellspacing="0" align="center" style="border: none;">
## <caption align="bottom" style="margin-top:0.3em;">Statistical models</caption>
## <tr>
## <th style="text-align: left; border-top: 2px solid black; border-bottom: 1px solid black; padding-right: 12px;"><b></b></th>
## <th style="text-align: left; border-top: 2px solid black; border-bottom: 1px solid black; padding-right: 12px;"><b>Model 1</b></th>
## <th style="text-align: left; border-top: 2px solid black; border-bottom: 1px solid black; padding-right: 12px;"><b>Model 2</b></th>
## <th style="text-align: left; border-top: 2px solid black; border-bottom: 1px solid black; padding-right: 12px;"><b>Model 3</b></th>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;">(Intercept)</td>
## <td style="padding-right: 12px; border: none;">0.72<sup style="vertical-align: 0px;">***</sup></td>
## <td style="padding-right: 12px; border: none;">0.82<sup style="vertical-align: 0px;">***</sup></td>
## <td style="padding-right: 12px; border: none;">0.70<sup style="vertical-align: 0px;">***</sup></td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;">(0.01)</td>
## <td style="padding-right: 12px; border: none;">(0.01)</td>
## <td style="padding-right: 12px; border: none;">(0.02)</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;">age</td>
## <td style="padding-right: 12px; border: none;">0.00<sup style="vertical-align: 0px;">***</sup></td>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;">0.00<sup style="vertical-align: 0px;">***</sup></td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;">(0.00)</td>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;">(0.00)</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;">rural</td>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;">0.01</td>
## <td style="padding-right: 12px; border: none;">0.01</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;"></td>
## <td style="padding-right: 12px; border: none;">(0.01)</td>
## <td style="padding-right: 12px; border: none;">(0.01)</td>
## </tr>
## <tr>
## <td style="border-top: 1px solid black;">AIC</td>
## <td style="border-top: 1px solid black;">115526.56</td>
## <td style="border-top: 1px solid black;">116285.14</td>
## <td style="border-top: 1px solid black;">115525.95</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;">BIC</td>
## <td style="padding-right: 12px; border: none;">115552.98</td>
## <td style="padding-right: 12px; border: none;">116311.58</td>
## <td style="padding-right: 12px; border: none;">115561.18</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;">Log Likelihood</td>
## <td style="padding-right: 12px; border: none;">-57760.28</td>
## <td style="padding-right: 12px; border: none;">-58139.57</td>
## <td style="padding-right: 12px; border: none;">-57758.98</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;">Deviance</td>
## <td style="padding-right: 12px; border: none;">30053.03</td>
## <td style="padding-right: 12px; border: none;">30318.38</td>
## <td style="padding-right: 12px; border: none;">30051.45</td>
## </tr>
## <tr>
## <td style="border-bottom: 2px solid black;">Num. obs.</td>
## <td style="border-bottom: 2px solid black;">49311</td>
## <td style="border-bottom: 2px solid black;">49552</td>
## <td style="border-bottom: 2px solid black;">49311</td>
## </tr>
## <tr>
## <td style="padding-right: 12px; border: none;" colspan="5"><span style="font-size:0.8em"><sup style="vertical-align: 0px;">***</sup>p < 0.001, <sup style="vertical-align: 0px;">**</sup>p < 0.01, <sup style="vertical-align: 0px;">*</sup>p < 0.05</span></td>
## </tr>
## </table>
References
2)Singh, Poonam Khetrapal. “India has achieved groundbreaking success in reducing maternal mortality.” World Health Organization: South-East Asia. Accessed March 2019. http://www.searo.who.int/mediacentre/features/2018/india-groundbreaking-sucess-reducing-maternal-mortality-rate/en/