Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Nick Cox <n.j.cox@durham.ac.uk> |

To |
"'statalist@hsphsun2.harvard.edu'" <statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: New variable based on a sum of products of another variable |

Date |
Wed, 25 May 2011 15:55:30 +0100 |

Thanks for the update. At some point, it becomes natural to learn Mata for stuff like this. As they say, the learning curve is steep, meaning put in a little effort and you learn a lot. Nick n.j.cox@durham.ac.uk Seamer Paul Many thanks to Nick and Paul for their suggestions, Apologies that it’s taken me a while to reply. Paul’s iterative solution is a neat answer to the question I posed, but there was an additional step that I didn’t mention in my original post, I need to multiply each of the product terms (in parentheses in my original post) by another 2 variables before I perform the summation, Essentially I’m looking generate a probability (P) that is of the form, (P)= ∑ {var1} {var2} { ∏ var3 } My original post related to calculating the sum product of var3, but I need to do this for different values of each variable and then perform a summation for each time period. Nick's hint led me to a solution using logarithms ? it has a number of steps, but gives the answer I was looking for, The values x are chronological years and i values are age in years (I'm using the probabilities to populate an illness-death Markov-type model). .forvalues x = 1903/1997 { .forvalues i = 1/41 { .gen p`x'`i' = exp(sum(ln(var3`x')) - sum(ln(var3`x'[_n-`i']))) * var2`x'[_n-(`i'-1)] .replace p`x'`i' = p`x'`i' * var1`x'[_n-`i'] if _n>=`i'+1 .} .forvalues j = 2/41 { .replace p`x'1 = p`x'1 + p`x'`j' if _n>=`j' .} .drop p`x'2-p`x'41 .rename p`x'1 p`x' .} * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**RE: st: New variable based on a sum of products of another variable***From:*"Seamer Paul" <Paul.Seamer@westmidlands.nhs.uk>

- Prev by Date:
**Re: st: svy subpop option and e(sample)** - Next by Date:
**st: auto macro for name of do file?** - Previous by thread:
**RE: st: New variable based on a sum of products of another variable** - Next by thread:
**[no subject]** - Index(es):