Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 95% CI for age-adjusted rate, distrate does not work

    Hi,


    I am calculating the age-standardised cancer incidence rates for multiple states. I have used the distrate command to determine the ASR for each state along with the 95% confidence interval for each. This worked well.
    I also want to present the 95% CI for the age-adjusted rates that is the incidence rate in each age group (Crude rate* age-specific population weight). The distrate command does not give a breakdown of the results by age group.

    Any help will be appreciated.

    Here is a subset of my data:

    HTML Code:
      State agegroup cases_2007_2020 avgannualcases population_2007_2020 Crude_R Segi_pop Segi_pwt age_sp_rate_Segi A 20-39 2 0.142857 100662 1.98685 28000 0.4666667 0.9271967 A 40-59 12 0.857143 81640 14.6987 21000 0.35 5.144538 A >=60 8 0.571429 31425 25.4574 11000 0.1833333 4.667197 A All age 22 1.57143 213727 10.2935 60000 1 10.73893 B 20-39 7 0.5 96525 7.25201 28000 0.4666667 3.384271 B 40-59 19 1.35714 113303 16.7692 21000 0.35 5.869216 B >=60 8 0.571429 28711 27.8639 11000 0.1833333 5.108378 B All age 34 2.42857 238539 14.2534 60000 1 14.36187 C 20-39 32 2.28571 238552 13.4143 28000 0.4666667 6.259993 C 40-59 58 4.14286 144346 40.1812 21000 0.35 14.06343 C >=60 19 1.35714 48404 39.2529 11000 0.1833333 7.196374 C All age 109 7.78571 431302 25.2723 60000 1 27.5198
    Here is the distrate command:

    Code:
     
     distrate cases_2007_2020 population_2007_2020 using SEGi_pop_3groups.dta, standstrata(agegroup) popstand(Popwt)///   mult(100000) format(%8.1f) formatn(7)
    Here is the result:
    State cases_2007_2020 N UScrude USrateadj USlb_gam USub_gam USse_gam USlb_dob USub_dob USsrr USlb_srr USub_srr
    A 22 213727 10.3 10.7 6.7 16.3 2.4 6.7 16.3 0.5 0.3 0.8
    B 34 238539 14.3 14.4 9.7 20.4 2.6 9.7 20.4 0.7 0.5 1
    C 109 431302 25.3 27.5 22.5 33.4 2.7 22.5 33.4 1.3 1.1 1.6
    (Reposting this for some help with it; the previous post got no response)

  • #2
    Conditional on age group (ie, within each age group), there is nothing to age-standardize.
    You could present state- and age-specific rates (ie, rates conditional on both variables. No standardization here). From there, the state-standardized rates (as in the table above) would be obtained as weighted averages of the age-specific rates (ie, you would marginalise over a given age distribution).

    Comment


    • #3
      Thanks Andrea. Yes, nothing to standardize. That's why I asked about the age-adjusted rates. How to calculate their 95% CI?

      The Fay and Fuer method uses gamma distribution. I tried to implement this formula in state but that did not give valid results.
      Click image for larger version

Name:	Fay method.JPG
Views:	1
Size:	94.3 KB
ID:	1757776

      Comment


      • #4
        The age-adjusted rates (or age-standardised rates) are those presented in the 5th column of your table.
        The CI are reported in column 6-7 and 9-10, using 2 different methods (see -help distrate-)

        Comment


        • #5
          Thanks Andrea. I think my question was not clear.
          I know the distrate gave the overall age-stardised rates. What I need, in addition to that, are the age-adjusted rates. For example, For state A, the ASR is 10.7 (95% CI 6.7-16.3). How do I find the 95% CI for state A age groups 1, 2, and 3? Basically, they are the intermediate steps when we multiply the crude rate by population weight (also called the age-adjusted rate), which is then summed to give the age-standardized rate.

          Comment


          • #6
            I was probably unclear in #2.
            At any rate, to do what you want, you can simply condition (stratify) on state and age group.
            This would answer your question
            How do I find the 95% CI for state A age groups 1, 2, and 3?

            Example:
            Download the ancillary files for the distrate package ( net describe distrate, from(http://fmwww.bc.edu/RePEc/bocode/d) )
            and then, based on the example in the help file ( help distrate )

            Code:
            use SuffolkCounty.dta, clear
            collapse (sum) deaths pop,by(cindpov agegr)
            list
            distrate deaths pop using year2000st, stand(agegr) by(cindpov agegr) mult(100000)
            Code:
            Directly standardized rates (per 100000)
            CI based on the gamma distribution (Fay and Feuer, 1997. Tiwari and al., 2006)
            
              +------------------------------------------------------------------------------------------------------------------------------------+
              |  cindpov   agegr   deaths        N       crude     rateadj      lb_gam      ub_gam      se_gam         srr      lb_srr      ub_srr |
              |------------------------------------------------------------------------------------------------------------------------------------|
              |   0-4.9%    0-14        1    10608   9.4268477   9.4268477   .23866712   52.523033   13.331576           1           .           . |
              |   0-4.9%   15-24        5     9984   50.080128   50.080128   16.260881   116.87031   24.534152      5.3125   .59445993   251.26817 |
              |   0-4.9%   25-44       54    29190   184.99486   184.99486   138.97383   241.37817   25.406641   19.624255   3.3757414   789.28898 |
              |   0-4.9%   45-64      106    16710   634.35069   634.35069   519.35437   767.22888   61.903533   67.291921   11.819512   2682.6459 |
              |   0-4.9%     65+      657    15825   4151.6588   4151.6588   3840.2271   4481.6201   162.09485   440.40796   78.769933   17421.327 |
              |------------------------------------------------------------------------------------------------------------------------------------|
            [ ... output omitted ...]
            (The crude and adjusted rates are the same, since conditional on age, there is nothing to age-standardise for. The next step to obtain age-standardised rates, would be, as you said, to calculate a weighted average of those age-specific rates by state (or cindpov, in my example)).
            Last edited by Andrea Discacciati; 05 Jul 2024, 10:06.

            Comment


            • #7
              Thanks Andrea. I also tried to put the age-group in the by (var), and the results were the same as crude rates. That is why I was confused.
              Shouldn't it be the sum of crude rate * population weight for that age group? And therefore, a different 95% CI?
              I am using two different standard populations SEGI and US 2000. They have different population weights. I want to show the difference in age-adjusted rates and the age-standardised rates. Using the distrate command, both std populations would give the same age-adjusted rates because it is showing the crude rate. That seems not right.

              Comment


              • #8
                The formula for the Age-standardised Rates (ASR) is
                Code:
                ASR = Sum_j CR_j * w_j
                where CR_j is the Crude Rate for the j-th age-strata and w_j is the standardisation weight for the corresponding j-th strata.

                My initial confusion was that I have never seen the *individual components* of the formula above (ie, the CR_j * w_j) referenced to as "age-adjusted rates". In fact, to me, they are *not* age-adjusted rates by themselves, and most importantly each of them lacks any *meaningful* interpretation (and so do their CIs). They are just intermediate pieces to get the ASRs. Do you have any reference that defines the CR_j*w_j "age-adjusted rates"? Terminology can be confusing, but to me, "age-adjusted rates" is generally used as a synonym for "age-standardised rates". But I am curious to know if in other fields these terms are used differently.

                You say you are using 2 different sets of population weights. This will give you different results for the Age-Standardised Rates for the 3 States because the w_j's are different, clearly. But what would the CIs for CR_j*w_j tell you?

                The official Stata -dstdize- command has a richer output. It will give you the CR_j*w_j (s*P), but no CIs.

                Code:
                . webuse hb
                . generate pop = 1
                . dstdize hbp pop age, by(city)
                (5 observations excluded because of missing values)
                
                ----------------------------------------------------------
                -> city= 1
                                         -----Unadjusted-----  Std.
                                                Pop.  Stratum  Pop.  
                  Stratum       Pop.     Cases  Dist. Rate[s] Dst[P]  s*P
                ----------------------------------------------------------
                  15 - 19         91         3  0.257 0.0330  0.220 0.0072
                  20 - 24        103         2  0.291 0.0194  0.362 0.0070
                  25 - 29         95         4  0.268 0.0421  0.237 0.0100
                  30 - 34         65         4  0.184 0.0615  0.181 0.0112
                ----------------------------------------------------------
                Totals:          354        13    Adjusted Cases:     12.5
                                                      Crude Rate:   0.0367
                                                   Adjusted Rate:   0.0354
                                       95% Conf. Interval: [0.0164, 0.0544]
                
                [... output omitted ...]
                
                Summary of Study Populations:
                     city             N      Crude     Adj_Rate       Confidence Interval
                 --------------------------------------------------------------------------
                        1           354   0.036723     0.035415    [  0.016391,    0.054439]
                        2           340   0.023529     0.023044    [  0.007178,    0.038911]
                        3           215   0.139535     0.124565    [  0.083669,    0.165462]
                        5           216   0.018519     0.025030    [  0.000353,    0.049707]

                Comment


                • #9
                  Hi Andrea,

                  You are right. These are just age-specific rates multiplied by the population weight. Age-adjusted and age-standardised are the same—apologies for creating the confusion.
                  In my analysis, because of the differing cancer rates by age group, I want to show the result by age group. However, I am having difficulty producing the 95% CI using the inverted gamma distribution or poison distribution.

                  Comment


                  • #10
                    If you assume that the number of events (d_i) is Poisson, since the weights (s_i) and the total person-time/population (P_i) is not random, an exact 95% CI for s_i*d_i/P_i (see (2) in #3) is, using the distrate example data:

                    Code:
                    . cii means `=16710/0.2147/100000' 106, poisson
                    
                                                                             -- Poisson  Exact --
                        Variable |   Exposure        Mean    Std. Err.       [95% Conf. Interval]
                    -------------+---------------------------------------------------------------
                                 |   .7782953    136.1951    13.22844        111.5054     164.724
                    for cindpov=0-4.9% and agegr=45-64 (where 0.2167 is the standard population weight for that age group and 100,000 is a multiplier for the rate).

                    That said, the interpretation of this quantity and the usefulness of the CI is still unclear to me.
                    Last edited by Andrea Discacciati; 08 Jul 2024, 04:06.

                    Comment

                    Working...
                    X