I would like to fill out the out of sample stock returns based on factor values (LogSize DY MOM36) and their corresponding lagged estimated coefficients (r_* ). I want the lag of the estimated coefficient used to be 1 if the lag 1 period is in the same regime (crisis=1 and not crisis=0). If not, go back 1 more lag etc. until the same regime is found. I would like to write the condition for 30 periods or more with a loop. I have written what I want below but I do not know how to program the loop:
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input str24 Name double(date LogSize DY MOM36 r_LogSize r_DY r_MOM36 crisis F1_ret_out) "JETBLUE AIRWAYS" 650 -1.9281090176391644 -1.8181114098681626 -.8627962799540776 -.11740106122124609 -.3716441653324519 .22409716210708738 0 1.8540404037749423 "JETBLUE AIRWAYS" 651 -1.953333532727173 -1.8551743275315165 -.836440855462065 -.09929143504086753 -.2846929347412533 .1429385566198428 0 1.8860335692110155 "JETBLUE AIRWAYS" 652 -2.040089494317819 -1.8167224914402094 -.39804164897049843 -.1660916613095861 -.4176857431335997 .13354416700763644 0 1.7866539099625167 "JETBLUE AIRWAYS" 653 -1.9376887783114682 -1.855146244777546 -1.0022940764570223 -.2008035729740716 -.3884040095597731 .07710266777053551 0 1.8446875128967026 "JETBLUE AIRWAYS" 654 -1.89139700197255 -1.8845053642981344 -.952873175679264 -.05772417729581753 -.4192784135066334 .07334977451495205 0 1.8383769361076068 "JETBLUE AIRWAYS" 655 -1.8750128106669015 -1.8892477138558288 -.18088973509881917 -.08051653544275483 -.4548024605016906 .10042437629398587 0 1.7081340454007965 "JETBLUE AIRWAYS" 656 -1.814540662259903 -1.878219069758983 -.015018040948759314 .030316591395971204 -.5606721059659836 .06462305718704353 0 1.717937254222506 "JETBLUE AIRWAYS" 657 -1.8899958196512705 -1.8870379822576429 .12845071225998037 -.09828050321507352 -.5374306078947759 .14756611896577362 0 1.6786710939498055 "JETBLUE AIRWAYS" 658 -1.8734666247067702 -1.8100311501651383 .2426269691686575 -.19568526172467035 -.5830696282936368 .305543890196478 0 1.8580393179908445 "JETBLUE AIRWAYS" 659 -1.7461645514070612 -1.8512383210197532 1.217992661720144 -.21535605636043811 -.7959341990641041 .2900867371940641 0 2.116588445820907 "JETBLUE AIRWAYS" 660 -1.692094299715763 -1.908987603343651 .20408207441227527 -.2407048915345397 -.4638913615448051 .13906911628290866 0 2.290282442680227 "JETBLUE AIRWAYS" 661 -1.6028292798451296 -1.8294354869631928 .11371528200956979 -.3462294065508215 -.5301924329690795 .15008203037380277 0 2.0473785439661367 "JETBLUE AIRWAYS" 662 -1.5894642158894488 -1.817253754292456 .4632291367853355 -.4305278652742395 -.5310748548930454 .07142088346766136 0 2.0931007632563756 "JETBLUE AIRWAYS" 663 -1.502412234256875 -1.869958475944973 .5510200145917438 -.39478613732698586 -.5735449758828703 .06762865927749417 0 1.9865583234814765 "JETBLUE AIRWAYS" 664 -1.4381325587041185 -1.872899546189993 .290459580093873 -.2637125252213425 -.6050211260507602 -.0791073861886854 0 1.9923069106552418 "JETBLUE AIRWAYS" 665 -1.4346107054749733 -1.853383997628375 .4626815973038487 -.3347989257777495 -.7415560149350192 -.24551711474135118 0 2.1426702014101564 "JETBLUE AIRWAYS" 666 -1.3837307184634124 -1.8603434268013155 .7842136954824868 -.3557117562921646 -.8508032516613332 -.1728824671510134 0 1.9277463540377373 "JETBLUE AIRWAYS" 667 -1.3095279184574133 -1.8810853784564083 .6522721892414917 -.49767411971986547 -.7885927941452933 -.1386465455571269 0 1.982904380926538 "JETBLUE AIRWAYS" 668 -1.297060717502879 -1.871271052629726 1.2607102400567876 -.5604188200170354 -.7793884205409202 -.13010930791954625 0 1.758176279994274 "JETBLUE AIRWAYS" 669 -1.1857513056668958 -1.847046860910674 .9887769258002137 -.33929683816169876 -.7835090531290422 .050015702797166856 0 1.759595469622606 "JETBLUE AIRWAYS" 670 -1.2374135289405173 -1.806675763042542 .8442581624745737 -.3294514167560277 -.696769393160383 -.05034272028810181 0 1.9177682264675857 "JETBLUE AIRWAYS" 671 -1.222139244006631 -1.8813265586754884 1.591537244372993 -.15344172760858385 -.41968700810903276 .0862684369257555 0 1.8919047731041647 "JETBLUE AIRWAYS" 672 -1.2481252096525723 -1.9619519415807867 1.6631747723192434 -.13854266428408865 -.2467082440978814 -.0664816047923369 0 1.7471333203153496 "JETBLUE AIRWAYS" 673 -1.25705129270388 -1.963839454410656 2.183010014591035 -.23933375565368648 -.23337260176994834 -.03910357445320117 0 1.4191474589565207 "JETBLUE AIRWAYS" 674 -1.2494336578892438 -2.004047520466713 2.344961476976875 -.2083672532479426 -.13959484455152432 -.04125995615692998 0 1.4371343566057324 "JETBLUE AIRWAYS" 675 -1.3292223763674835 -2.0119035102762193 2.7841695903411563 -.2133127189404055 -.2525793127197275 -.09543774347431311 0 1.5020704372325804 "JETBLUE AIRWAYS" 676 -1.357535078661709 -2.0497516666491196 3.480456785840916 -.3318323076231331 -.05127774626055727 -.11311312215010828 0 1.4249541070904717 "JETBLUE AIRWAYS" 677 -1.4235611631074985 -2.201618343920832 4.227544657318321 -.3398356862642233 .1065961578154545 -.15874074006626535 0 1.4263592684667348 "JETBLUE AIRWAYS" 678 -1.4727884698765796 -2.1825070176310244 4.21535042602119 -.32169456752576925 .1277570797801772 -.12394074050485275 0 1.4812872940742856 "JETBLUE AIRWAYS" 679 -1.4219814780262425 -2.1176223293386385 4.631131961457205 -.2626086622384509 .025476944155852183 -.17139773258202934 0 1.42298753854275 "JETBLUE AIRWAYS" 680 -1.4991990586928854 -2.1230880184103302 4.590675197821155 -.2780658037155568 .14169773586447532 -.10705273608177726 0 1.547996435072859 "JETBLUE AIRWAYS" 681 -1.459294981027219 -2.0983917444659266 5.189699666284187 -.27364692741971064 .17003316433984927 -.03674752851021042 0 1.453059258286882 "JETBLUE AIRWAYS" 682 -1.4498797668533787 -1.989732268987346 4.747501752585942 -.3497173048793914 .12605542239321968 -.01966143223115133 0 1.3256424725958094 "JETBLUE AIRWAYS" 683 -1.3902569074269073 -2.0057577749140085 3.8415939639770946 -.33600703487677414 .1695058296638096 .05881047399930028 0 1.3825073167976898 "JETBLUE AIRWAYS" 684 -1.322118232951108 -1.959022411519761 3.624189086826994 -.28618917018963014 .1695551883605059 .10479023544742615 0 1.4116943076178747 "JETBLUE AIRWAYS" 685 -1.396220645894086 -1.9567223380334045 3.5641777773442094 -.2778948819508057 .19372954771215292 .11950262133484794 0 1.440820766522946 "JETBLUE AIRWAYS" 686 -1.402520955538576 -1.96953622537209 3.922943126913067 -.2097371279756402 .17683181444387097 .1484652336983575 0 1.4666120879115756 "JETBLUE AIRWAYS" 687 -1.3604687369468886 -1.94604014298 3.5810931323301567 -.18294187851077567 .06594503284838997 .157001879621086 0 1.330908500065616 "JETBLUE AIRWAYS" 688 -1.319997263135289 -1.9576414629312204 4.060685405064835 -.13779516046777654 .2704736910257452 .21183077741844625 0 1.3054366135685358 "JETBLUE AIRWAYS" 689 -1.2924569194734041 -1.9122486980719648 2.6019674119778933 -.09711875123087865 .09175957756789314 .22921610263177578 0 1.2399792997863297 "JETBLUE AIRWAYS" 690 -1.3069321768783775 -1.9574346890828307 1.3956800209247344 -.11124536140824151 .22908799260152718 .22231107376262743 0 1.1987920359049031 "JETBLUE AIRWAYS" 691 -1.3266485926740674 -1.9861920700965066 1.8143747534014256 -.09153782709876308 .24236888868905038 .1788774198632877 0 1.3238250700066507 "JETBLUE AIRWAYS" 692 -1.4033396930449857 -1.9584059562482576 .6867533055484274 -.16236667788236372 .23724800963099923 .0878773221439432 0 1.2025845429581148 "JETBLUE AIRWAYS" 693 -1.4696288994795015 -1.9675881730680882 1.9168138240196126 .049001451634333545 .1968145358553358 .009561823629454413 0 1.2861002113788877 "JETBLUE AIRWAYS" 694 -1.4608459697658476 -1.9314128179586356 1.9890551338782092 .07006572347107917 .23609188152602176 .08747432879810034 0 1.1939271272083103 "JETBLUE AIRWAYS" 695 -1.41398000794931 -1.849392019834293 1.533027074104009 .12857185548787506 .06425068804878765 -.05429653827299268 0 1.1935234417137695 "JETBLUE AIRWAYS" 696 -1.3845351416791354 -1.8222556414336153 1.550916343665786 .1926999528234059 -.09706666944893436 -.128644805130466 0 1.1937384980071082 "JETBLUE AIRWAYS" 697 -1.4403580823922357 -1.8213327682781757 .061691130331108 .12924227501156713 -.05438472508749682 -.1184746118258624 0 1.39217144439771 "JETBLUE AIRWAYS" 698 -1.3983125575496569 -1.8600349461553258 -.07602823348285048 .07598602415707684 .028185520587709574 -.1408917533150811 0 1.1246199731374733 "JETBLUE AIRWAYS" 699 -1.4462318832439784 -1.8764180924066283 -.5100018484801856 .04827935754069952 .022522384968607777 -.11014895224027146 0 1.1976240152003148 "JETBLUE AIRWAYS" 700 -1.4845166918958868 -1.8479358058574682 -.5926658768989383 .007320485407972707 .0103733288824484 -.05826941581894475 0 1.1947879161219679 "JETBLUE AIRWAYS" 701 -1.5021753535811029 -1.9419077651887453 -.41818584508419177 -.015486205054111675 .2953959676741235 .08437497469163702 0 1.2074444179652768 "JETBLUE AIRWAYS" 702 -1.4941390021617675 -1.9080564578549488 -.6619739308617701 .045078937437599546 .2774267697019265 .06791036421380109 0 1.3829369024091536 "JETBLUE AIRWAYS" 703 -1.55816195669197 -1.855829341350433 -1.1616632331050794 .14889986869875438 .20412988751902583 .037560910598434735 0 1.433891787479454 "JETBLUE AIRWAYS" 704 -1.5219018007469973 -1.8643560214743238 -1.594995551307098 .1699076026481305 .1978521715904848 .02738490907248949 0 1.7229575362100982 "JETBLUE AIRWAYS" 705 -1.5120691385628433 -1.9259632607061428 -2.198007159126804 .13188295937244132 .35944292922900456 -.09382291749754358 0 1.722175404048602 "JETBLUE AIRWAYS" 706 -1.5682608979799764 -1.926632896936461 -1.8638461360272345 .048830402792163136 .40767458459099637 -.0001143745855458626 0 1.3110221049311839 "JETBLUE AIRWAYS" 707 -1.5116511042014564 -1.9889598094806196 -1.7259706636585337 -.8909783289412979 .4213275369004427 -.7710631663158782 1 1.4759140268763835 "JETBLUE AIRWAYS" 708 -1.5567477143333293 -1.9814266375528284 -1.387162786495836 -.027662298985861696 .3659707141624182 -.07862129908399942 0 .7608203564024189 "JETBLUE AIRWAYS" 709 -1.5398110620101853 -2.001655857271038 -1.2923183178692352 -.0031592206010508943 .22722470555671467 .12873914655122895 0 1.2069979283450059 "JETBLUE AIRWAYS" 710 -1.6194647472886576 -1.9610020554491814 -1.1094500452606715 .17807936584891618 .26550846933740413 .08676581709554265 0 1.498527751848327 "JETBLUE AIRWAYS" 711 -1.6470375328647275 -1.9538426612469215 -1.004774216215306 .24857361012872486 .03412064951785949 .0767210543960463 0 1.4324886902948895 "JETBLUE AIRWAYS" 712 -1.5810820951147067 -1.946242714668633 -1.0731286058429657 .34108835545803856 .03635476557533664 .0962384384273429 0 1.263467801209109 "JETBLUE AIRWAYS" 713 -1.5617632465481632 -1.9469389957448986 -.7822480558681837 .2867848525512256 .03232698693559846 .13514392811620166 0 1.0119751290615115 "JETBLUE AIRWAYS" 714 -1.5698706181755224 -1.9420050666498048 -.5243303474120904 .31291520535218864 -.20557452230064133 .15920143732662864 0 1.2371467346333476 "JETBLUE AIRWAYS" 715 -1.5595283891147056 -1.9006776147940263 -1.0202053078519882 .41806081171742 -.1930815205692955 .1099229371745441 0 1.233145162364478 "JETBLUE AIRWAYS" 716 -1.5846928225314447 -1.97280010989225 -.5568678205838594 .21666116924643736 -.04300997963870179 .13813675281402457 0 1.0569243981003704 "JETBLUE AIRWAYS" 717 -1.657392728913543 -1.9419222342850389 -.7445227753239338 .27030405485046066 -.08943737555179268 .13693414380619232 0 1.1957166106768116 "JETBLUE AIRWAYS" 718 -1.5587659145191604 -1.9237117710266296 -1.116351224479294 .2912440565888479 -.09254763256055343 .087682139526089 0 1.1923008466537928 "JETBLUE AIRWAYS" 719 -1.561663761699428 -1.9373688073786115 -1.1810026441487442 .289736360226523 .1742948071460107 .09255905021599896 0 1.2359567147579076 "JETBLUE AIRWAYS" 720 -1.5968662183470914 -1.8429929281659625 -1.5753536637468164 .30248978673891525 .15068564152357172 -.0007846378235321622 0 1.1512098959829702 "JETBLUE AIRWAYS" 721 -1.5451900274062849 -1.8173779987325835 -1.142597832968991 .30160991203273346 .15077414010443677 .07463246232835952 0 1.070451579922707 "JETBLUE AIRWAYS" 722 -1.6032595645739733 -1.4653024908754302 -1.3879868169926164 -1.0050490769240181 .39218638525544486 -.6451287804629928 1 .6417595491275315 "JETBLUE AIRWAYS" 723 -1.7775177389789087 -1.5694282512723101 -1.6409309491110946 -.9331713959894647 .5707161364241239 -.6502110052431429 1 1.1333392153210944 "JETBLUE AIRWAYS" 724 -1.7686958944433848 -1.4423549186589482 -1.5844855812878076 -.9272944980694869 .43631036990620764 -.5016372520061669 1 1.5400427253172186 "JETBLUE AIRWAYS" 725 -1.766388461164701 -1.452353851970067 -1.548652561338926 -1.0056204186623565 .2530694988293223 -.46432116098724996 1 1.6744076644938812 "JETBLUE AIRWAYS" 726 -1.7435162839119513 -1.3909598812627135 -1.5940293149780636 -1.0000248246823393 .2880828005366245 -.3659202687630539 1 1.6620585732231892 "JETBLUE AIRWAYS" 727 -1.7898376334109156 -1.3451342182576946 -1.470324581563863 .5271992034678995 .16363851689386766 .06225267748471568 0 1.7301947948971343 "JETBLUE AIRWAYS" 728 -1.7617118503638505 -1.2961110481102112 -1.323203333089691 -.9758479969485518 -.13773473241099948 -.5152350599253908 1 -.0651646111123104 "JETBLUE AIRWAYS" 729 -1.7559000989249036 -1.2646077365663073 -1.2338579872684814 -1.419702497641784 -.09128677208665681 -.48798444866308377 1 1.9437710219473865 "JETBLUE AIRWAYS" 730 -1.770284124854819 -1.2965867028555096 -.8260260837721991 .49720032672231473 .15675241072955048 .041097811094588356 0 1.9353438907392708 "JETBLUE AIRWAYS" 731 -1.706609261470894 -1.3151127557941884 -1.1055407399058685 .48941266577006426 .17804434602521038 .04147415177070184 0 -.03937037049866469 "JETBLUE AIRWAYS" 732 -1.6551115577415698 -1.3431887559333195 -1.3106217350560523 -1.393671541682524 -.21022237989480286 -.8170797365948982 1 .031276087771243924 "JETBLUE AIRWAYS" 733 -1.6601665551600997 -1.3985731329612159 -.7432081223715259 . . . 0 2.3978724800699753 end format %tm date
Code:
global M7 LogSize DY MOM36 local t 7 local m`t' ${M`t'} foreach var in `m`t'' { replace F1_ret_out = F1_ret_out + (L1.r_`var')*`var' if (crisis==0 & L1.crisis==0) replace F1_ret_out = F1_ret_out + (L2.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==0) replace F1_ret_out = F1_ret_out + (L3.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==0) replace F1_ret_out = F1_ret_out + (L4.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==0) replace F1_ret_out = F1_ret_out + (L5.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==0) replace F1_ret_out = F1_ret_out + (L6.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==0) replace F1_ret_out = F1_ret_out + (L7.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==1 & L7.crisis==0) replace F1_ret_out = F1_ret_out + (L8.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==1 & L7.crisis==1 & L8.crisis==0) replace F1_ret_out = F1_ret_out + (L9.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==1 & L7.crisis==1 & L8.crisis==1 & L9.crisis==0) replace F1_ret_out = F1_ret_out + (L10.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==1 & L7.crisis==1 & L8.crisis==1 & L9.crisis==1 & L10.crisis==0) replace F1_ret_out = F1_ret_out + (L11.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==1 & L7.crisis==1 & L8.crisis==1 & L9.crisis==1 & L10.crisis==1 & L11.crisis==0) replace F1_ret_out = F1_ret_out + (L12.r_`var')*`var' if (crisis==0 & L1.crisis==1 & L2.crisis==1 & L3.crisis==1 & L4.crisis==1 & L5.crisis==1 & L6.crisis==1 & L7.crisis==1 & L8.crisis==1 & L9.crisis==1 & L10.crisis==1 & L11.crisis==1 & L12.crisis==0) }
Does anyone know how to program that more efficiently? Thanks.
0 Response to If condition with loops
Post a Comment