By convention, I have observed from some publications that the Age-Specific Marital Fertility Rate (ASMFR) could be derived by dividing the age-specific fertility rates by the proportion of women currently married in each age group. However, I guess this may be more valid in societies where births occur mostly within marriages. How do we account for the contribution of the never married as compared to the ever married? Your help needed.

In using the tfr2, the command "by v502, sort: tfr2, awf(awfactt)" gives the TFR as per marital status, this I guess should be different from ASMFR.

Thanks

Michaelo

]]>

gives the marital fertility rates, but how do one get the non-marital fertility rate or the fertility rate for the never married?,

your kind response will be appreciated

Thanks ]]>

For

tfr2, entry(v509)

only births occuring after first marriage and exposure after first marriage are used in the computation of fertility rates. This is equal to marital fertility rates if people remain married from that time. This is usually fine at low ages, but less at higher ages, since some people are no longer in union at the time of the survey.

you could select a subsample (for instance people married or living together at the time of the survey) - that should lead to slightly higher rates.

tfr2, entry(v509), if v501==1 | v501==2

There is no direct way to compute

Here is what I would do:

* you create a variable dates that is equal to the date of first marriage if marriage occured, and the date of survey if the marriage has not occured. So you will only keep observtions before that date (before marriage, and until the survey if the person married).

gene dates=cond(v509!=., v509, v008)

* you create a date of entry that is equal to the date of the survey(v008) minus the number of months (36 if you want to compute rates over the last 3 years)

gene entry=v008-36

* next, you compute the rates between the start of the period (entry) and the dates variable (date of marriage or date of survey if not married).

tfr2, entry(entry) dates(dates)

I tested it in a few countries and it looks fine. But I would be glad to have your feedback.

Hope this helps.

Best,

Bruno

]]>

However, trying the non-marital fertility rate with "GHIR5HFL.DTA", gives this error message

Maximum number of iterations exceeded.

r(498);

Besides, I observed, the period covered to have been 10 years earlier, that is 12/1995 to 11/1998 is instead of 2005-2008

I used:

gene dates=cond(v509!=., v509, v008)

gene entry=v008-36

tfr2, entry(entry) dates(dates)

This worked for the 2003 Ghana dataset but again, the period was 10 years ahead. 1990-1993, instead of 2000-2003

The output obtained was:

tfr2, entry(entry) dates(dates)

weight variable is v005

Preparing table of events and exposure for 3 year(s) preceding the survey

Period covered: 5/1990 to 4/1993

Central date is 1991.8359

Number of cases (women): 1851

Number of person-years (weighted): 3925.2241

Number of events (weighted): 80.825775

ASFRs - TFR

------------------------------------------------------------ ------------------

events | Coef. Std. Err. z P>|z| [95% Conf. Interval]

-------------+---------------------------------------------- ------------------

Rate_1519 | .0178312 .002676 6.66 0.000 .0125864 .0230761

Rate_2024 | .0328445 .0056704 5.79 0.000 .0217306 .0439583

Rate_2529 | .004697 .0041574 1.13 0.259 -.0034514 .0128454

Rate_3034 | .0071107 .0087363 0.81 0.416 -.0100121 .0242335

Rate_3539 | .024647 .0254917 0.97 0.334 -.0253158 .0746099

Rate_4044 | 2.40e-09 . . . . .

Rate_4549 | 7.74e-09 . . . . .

TFR | .4356522 .1398883 3.11 0.002 .1614763 .7098282

------------------------------------------------------------ ------------------

I would be grateful if you could kindly advise

Thanks so much

Michael]]>

for

You are right, the reported time period is not correct.

You should specify that the rates are to be estimated only if dates>entry. You will get the same rates, but the time period will be correct. I had not anticipated this use of tfr2 - and I will correct it in a further version.

If you get the message "maximum number of iterations exceded", this is probably because there are no events in some age groups. tfr2 uses Poisson regression and will run into this kind of problems with small samples.

You could use tabexp

You will get the number of events, exposure, and rates in each age groups (computed by dividing events by exposure).

if you find the number of events is 0 in th upper age groups, you could restrict you analyses with tfr2 to a smaller age range (for instance 15-39).

For instance

For

Best,

Bruno

]]>

Michael]]>

Is it possible to calculate the number of cases for age specific fertility rates using tfr2?]]>

Bruno]]>

I am trying to decompose ASFR for ages 15-19 years,and one of the steps is to calculate the national ASFR from proportion of adolescents aged 15-19 years and the disaggregated ASFR e.g. urban/rural (v025). Unfortunately the national ASFR I get does not add up to the national one obtained from using tfr2, the same one from the report,

I use tabexp to get cases (women) for (1) current ages 15-19 using:

tabexp if v012 <=19 & v025 ==1

tabexp if v012 <=19 & v025 ==2

and(2)including individuals currently aged 20-24 and contributed to the Person Years using:

tabexp v025, minage(15) maxage(19)

I still do not get consistent results.

Kind regards;

Mercy ]]>

Best regards,

Bruno]]>

I am using South Africa 2016 IR file.

Kind regards;

]]>

If I understand correctly what you want to do, you should use

. tabexp v025, rates mina(15) maxa(19)

weight variable is v005

Preparing table of events and exposure for 3 year(s) preceding the survey

Period covered: 8/2013 to 7/2016

Central date is 2015.0982

Number of cases (women): 2335

Number of person-years (weighted): 4482.1265

Number of events (weighted): 318.67191

v025 period ageg events exposure centry rate se_r

urban 0 15 178.119 2852.75 2015.098 .0624375 .0046783

rural 0 15 140.553 1629.376 2015.098 .086262 .0072761

You get the adolescent fertility rate in each place of residence, and you obtain the weighted exposure and weighted number of births.

You can check that the weighted mean of the rates (exposure used as weights) is equal to the rate at the country level : 2852,75*0,0624375+1629,376*0,086262=0,0710984

. tabexp, rates mina(15) maxa(19)

weight variable is v005

Preparing table of events and exposure for 3 year(s) preceding the survey

Period covered: 8/2013 to 7/2016

Central date is 2015.0982

Number of cases (women): 2335

Number of person-years (weighted): 4482.1265

Number of events (weighted): 318.67191

period ageg events exposure centry rate se_r

0 15 318.672 4482.126 2015.098 .0710984 .0039828

*******************

In contrast, if you do

tabexp if v025==1, rates

tabexp if v025==2, rates

or

by v025, sort: tabexp, rates

the rates will be the same, but weighted events and exposure will not be the same as in the previous example, because the weights are normalized so that their sum is equal to the sample size. So, doing it separately by place of residence will not allow you to estimate the share of exposure in each place of residence. If sampling weights were all equal to 1, the two approaches would lead to the same results.

Since you mentioned you tried also the following command, I will briefly comment on this.

. tabexp if v012 <=19 & v025 ==1

Here, you are not computing events and exposure beetween 15-19, but among women aged 15-19 at the time of the survey. By default, the minimum age in tabexp and tfr2 will be 15. So, three years before the survey, you will only get events and exposure among women 15-16. So, if you want to work on a specific age group, use minage and maxage options, but do not select people on the age at the time of the survey.

Best,

Bruno

]]>

You can check that the weighted mean of the rates (exposure used as weights) is equal to the rate at the country level : 2852,75*0,0624375+1629,376*0,086262=0,0710984

Thank you]]>

A follow-up question-

How can one decompose ASFR given the following:

1. That the rate refers to mid-point of the 3 years before the survey but all the potential independent variables' reference is at the time of the survey

2. That the denominator here is the PY(exposure) not the total population -although the total cases (number of women) are available using tfr2 but I could not get the numbers disaggregated for each variable.

Your help will be much appreciated.

Kind regards;

Mercy

]]>

I have used tfr2 package extensively on different rounds of Pakistan Demographic and Health Surveys (PDHS).

Tfr2 uses awfact for different subgroups. In this regards, five major variables of awfact for u/r, regions, education, wealth quintiles and total samples are constructed and provided with IR data file in DHS.

Can I have tfr2 package that accumulates only ever married women samples instead of awfact. It can help to calculated marital age specific fertility rates and marital TFRs.

Secondly, DHS report CS28 "Gora Mboup and Tulshi Saha. 1998. Fertility Levels, Trends and Differentials. DHS Comparative Studies No. 28. Calverton, Maryland: Macro International Inc." page#3 (https://www.dhsprogram.com/pubs/pdf/CS28/CS28.pdf) provides details on how MTFR can be calculated. we also need to have another filter of age 24-29 years marital duration to be incorporated in by definition.

Can you kindly help me on how can i achieve MTFRs!

Your response is import for me to understand fertility trends in Pakistan.

Thank You

Waqas Imran]]>

Thank you for your message.

By default, tfr2 uses awfactt to compute ASFRs. However, if you want to compute marital fertility rates, awfactt should not be used.

You can simply create a new all-women factor variable that is constant and equal to 100 (as in surveys with all women), and can compute marital fertility rates among ever married women in the following way.

gene awfac_cons=100

tfr2, entry(v509) awf(awfac_cons)

the DHS report you mention refers to duration-specific marital fertility rates. Unfortunately, the Stata command tfr2 does not allow computing fertility rates by duration of mariage. I could think of including it in a revised version (but probably not very soon).

I hope this helps.

Best regards,

Bruno

]]>