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]
st: RE: using loop to generate distributions with different means and standard deviations
From
"Sarah Edgington" <[email protected]>
To
<[email protected]>
Subject
st: RE: using loop to generate distributions with different means and standard deviations
Date
Fri, 20 May 2011 11:44:35 -0700
Lance,
Is your actual data really different from the simulated data you've shown?
If not I don't understand why the solution I suggested before doesn't solve
your problem. If your variables are actually numbered like you've shown,
it's still just a -forvalues- loop to get the drawnorm part working.
forv i=1/3 {
drawnorm product`i', m(max_product`i') sd(sd_product`i')
}
Unless you give more specific information about the actual problem you're
trying to solve and why the suggested solution doesn't work, I don't think
you're going to get much help.
-Sarah
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Lance Wiggains
Sent: Friday, May 20, 2011 11:29 AM
To: [email protected]
Subject: st: using loop to generate distributions with different means and
standard deviations
Sorry for the vagueness. Right now I'm just using simulated data for 3
different products. Here is my code:
My data looks like this
Week Product 1 Product 2 Product 3
1 50 45 50
2 60 50 40
3 70 55 30
4 80 50 20
5 90 45 10
6 100 50 0
tsset week
gen n=_n
egen max_n=max(n)
ds week n max_n, not
foreach var in `r(varlist)'{
tssmooth ma ms_`var'= `var', weights(1 1<2>1)
}
ds ms*
foreach var in `r(varlist)' {
gen week3_`var'=`var' if n==max_n
egen max_week3_`var'=max(week3_`var')
drop week3*
}
drop ms*
ds week n max_*, not
foreach var in `r(varlist)' {
gen max_`var'=max_week3_ms_`var'
}
drop max_week*
keep if n+3>=max_n
ds week n max*, not
foreach var in `r(varlist)'{
egen sd_`var'=sd(`var')
}
rename max_n maximum_n
ds max_* sd* week, not
foreach var in `r(varlist)'{
drop `var'
}
drawnorm product1, m(max_product1) sd(sd_product1)
Thanks,
Lance
- Hide quoted text -
On Wed, May 18, 2011 at 1:51 PM, Sarah Edgington <[email protected]> wrote:
> Lance,
> That's a different problem. From your original post I assumed you had
> all the variables already created.
> One strategy for writing loops is to write out the code for the first
> two examples of something repetitive you want to do. Then identify
> the parts of the example that remain the same across the examples.
> If you post the code your trying to repeat we may be able to help you
> but your current description is too vague for me to do much more than
> offer vague suggestions of how to think about loops.
> -Sarah
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Lance
> Wiggains
> Sent: Wednesday, May 18, 2011 10:36 AM
> To: [email protected]
> Subject: Re: st: RE: using loop to generate distributions with
> different means and standard deviations
>
> I've tried that but the problem is that I'm pre-calculating the means
> and sd's for the variable because I'm only using the last 3-4
> observations for each variable to calculate those values. I'm doing
> this because I want it to reflect the changes that happen recently. My
> mean function uses tssmooth, with weights (1 1<2>), to average the
> last 3 weeks of sales. So if sales were 70,80,90, and 100 I get a
> value of 92.5 for my mean. It also calculates a SD for the last 3-4
> observations. Then I want to plug those numbers into the drawnorm function
using a loop. Any idea about how that would work?
>
> Lance
>
> On Wed, May 18, 2011 at 1:16 PM, Sarah Edgington <[email protected]> wrote:
>> Lance,
>> Try something like this:
>>
>> forv i=1/3 {
>> drawnorm name`i', m(mean_var`i') sd(sd_var`i')
>> }
>>
>> You'll run into problems, though, if your data actually includes the
>> variable names you list since there isn't a sd_var1.
>>
>> -Sarah
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Lance
>> Wiggains
>> Sent: Wednesday, May 18, 2011 10:09 AM
>> To: [email protected]
>> Subject: st: using loop to generate distributions with different
>> means and standard deviations
>>
>> Statalist members,
>>
>> I'm trying to get Stata to generate a distribution of data from
>> variables in my data set.
>>
>> My appended data looks like this
>> mean_var1=90
>> standard_deviation_var1=5
>> mean_var2=100
>> sd_var2=10
>> mean var3=110
>> sd_var3=15
>> and so on
>>
>> I'm need a loop that will take my variables and create the
>> distributions for me.
>> I've been using the drawnorm command
>> drawnorm name1, m(mean_var1) sd(sd_var1) but I can't get it to
>> recognize more than 1 variable at a time
>>
>> I want it to perform the distribution command for each pair of my
> variables.
>> I.e. (m_var1, sd_var1), (m_var2, sd_var2) , (m_var3, sd_var3)
>>
>> Thanks for your consideration,
>>
>> Lance
*
* 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/
*
* 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/