The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » General » svyset for multilevel analysis of pooled dhs data
svyset for multilevel analysis of pooled dhs data [message #20526] Sat, 14 November 2020 12:39 Go to next message
chiarap93 is currently offline  chiarap93
Messages: 6
Registered: November 2014
Dear all,

I am trying to do a multilevel analysis utlizing the most recent DHS survey from 30 Sub-Saharan African countries, to analyse determinants of infant mortality. In the multilevel analysis, the levels shall be child, mother and cluster (variable v001).

To apply weights correctly, I am relying on the valuable DHS methodological report that came out in August of this year, where a detailed explanation of how to construct level-specific weights is provided (

I followed the procedure described in the document thoroughly, constructing woman-level and cluster-level weights for each of the 30 countries I am analysing.

Following this, I have appended all the datasets together, and relying on the replies to other queries on this forum I have constructed new variables for cluster, strata, and mother with the commands

egen cluster_pooled=group(v000 v001) 
egen strata_pooled=group(v000 strata)
egen mother_pooled=group(v000 mother)

I am writing here because my model fails to converge, which makes me wonder specifically if I have used the svyset command in the correct way.

svyset  cluster_pooled, weight(wt2) strata(strata_pooled) singleunit(centered) || mother_pooled, weight (wt1) 

where wt2 is the cluster-level weight and wt1 is the woman-level weight, again created according to what mentioned in the DHS methodological report (for example, for the woman-level weight, denormalizing it by multiplying v005 by the ratio between the number of women in reproductive age in the country in the year of the survey and the number of women interviewed)

My model is something like:

svy: melogit infant_death (various control variables) if childbornlast5years==1 || cluster_pooled: || mother_pooled: 

The error message I receive is:

initial values not feasible
an error occurred when svy executed melogit

My original plan was even to include country as a fourth level of analysis, but I suspect this would further complicate things.

I was wondering if someone could
a) elucidate on whether the svyset is correct, as well as the use of weights like this
b) provide any suggestion on why the model fails to converge, and what shall I do to simplify things

Thank you lots!

Re: svyset for multilevel analysis of pooled dhs data [message #21555 is a reply to message #20526] Wed, 18 November 2020 14:30 Go to previous message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 2548
Registered: February 2013
Senior Member

Following is a response from DHS Research & Data Analysis Director, Tom Pullum:

If you multiply "v005 by the ratio between the number of women in reproductive age in the country in the year of the survey and the number of women interviewed" you will get an extremely large number. That may cause a problem.

Check the syntax of svyset. You want the hierarchy to be such that the child is level 1, the mother is level 2, and the cluster is level 3. Do you have them sequenced correctly?

Maternal clustering is difficult to capture with a multi-level model because most women who had a child in the past five years had only one. Especially when you include covariates, you will have combinations in which only a few women had more than one child. That could cause a problem. Conceptually a strong case could be made for maternal clustering of child mortality, and we know it is real, but it is hard to measure.

I hope other users can make suggestions.
Previous Topic: information on average number of households per enumeration area in Mozambique 2011 DHS
Next Topic: Most recent DHS for Namibia
Goto Forum:

Current Time: Tue Aug 9 03:48:10 Coordinated Universal Time 2022