Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

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

From |
Alberto Dorantes <alberto.dorantes@finanzastec.net> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: use loop to add plots to scatter plot |

Date |
Wed, 27 Mar 2013 16:57:28 -0600 |

Hi Linda. I did something similiar few weeks ago. The example I did was about graphing different investment portfolios based on 2 stocks, but varying the correlation among the monthly stock returns. Try my following code (just copy and paset on your do-file-editor, and run it): clear * Create a dataset of 11 observations with 2 variables: weight a and weight b set obs 11 egen a=fill(0(1)10) replace a=a/10 gen b=1-a * Each observation represents 2 weights or percentages invested in 2 financial assets, so each observation represents 1 investment portfolio * I will use real data of 2 Stocks, A and B. local paramgraficas "" local i=0 * Define the expected values of monthly Stock Return A and Stock Return B, based on the last 27 months: scalar ERA = .01387535 scalar ERB = .00309298 * The variance-covariance matrix (2x2) of historical monthly returns of both Stocks is the following: matrix input COV = (0.005692,-0.00108\-0.00108,0.011222) * I do a loop varying the pairwise correlation between the returns forvalues rho1=-1(0.5)1 { local i=`i' + 1 * Calculate the expected value of the portfolio return based on the Expected value of Stock A and Stock B returns: gen ERP`i' = a*ERA + b*ERB label variable ERP`i' "rho = `rho1'" * Calculate the expected value of the portfolio variance: gen varP`i' = a^2*COV[1,1] + b^2*COV[2,2] + 2*a*b*`rho1'*sqrt(COV[1,1])*sqrt(COV[2,2]) * Now calculate the risk of the portfolio i: gen sdP`i' = sqrt(varP`i') * Now append the twoway graph parameters: local paramgraficas "`paramgraficas'(connected ERP`i' sdP`i', mlabel(a)) " } * Finally do a twoway graph using the appended macro paramgraficas: twoway `paramgraficas', note(Weights of Stock A are shown in each point) /// title(Portfolio Frontiers (2 Stocks) varying their pairwise correlation ) /// ytitle(Return) xtitle(Risk) I hope this help. Alberto Dorantes 2013/3/23 Harris, Linda J <ljharris@scharp.org>: > I have macros with names `antigen01' to `antigen40' > > I want to create a two way graph with the following: > > 1) scatter plots with a variable # of these items (approx 5 and not in numeric order), each with a different marker > 2) linear fits for the same items, with lines in the same color as the markers > 3) a linear fit that is based on the aggregate selection of items following to a selection of these antigens (say approx 5): > > If possible, I would like to use a loop with a foreach statement rather than having to modify the specific items and # of items each time i ran this. > I know that the last line is wrong - just have no idea how to accomplish this > > > This is my first posting - hope I've done it right! I'm also new to Stata programming, so hope this isn't too trivial a question. > > example - say want `antigen01', `antigen04' `antigen05' > > twoway /// > (scatter yvar xvar if ANTIGEN==`antigen01', mcolor(red)) /// > (lfit yvar xvar if ANTIGEN==`antigen01', lcolor (red)) /// > (scatter yvar xvar if ANTIGEN==`antigen04', mcolor(green)) /// > (lfit yvar xvar if ANTIGEN==`antigen04'), lcolor(green) /// > (scatter yvar xvar if ANTIGEN==`antigen05', mcolor(blue)) /// > (lfit yvar xvar if ANTIGEN==`antigen05', lcolor(blue)) /// > (lift yvar xvar if ANTIGEN oneof [`antigen01' `antigen04' `antigen5'], lcolor(black)) > > Thank you, > Linda > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/

**References**:**st: use loop to add plots to scatter plot***From:*"Harris, Linda J" <ljharris@scharp.org>

- Prev by Date:
**Re: st: Identifying unique values within duplicate IDs** - Next by Date:
**st: model question** - Previous by thread:
**st: RE: Re: use loop to add plots to scatter plot** - Next by thread:
**st: dividend programming question** - Index(es):