Code:
* Example generated by -dataex-. For more info, type help dataex clear input int stock_id str52 stock str10 month float(pr mk rf smb hml) 1 "3M India Ltd." "29-06-2001" 380.1 1050.43 .000190118 .006906632 -.02635773 1 "3M India Ltd." "02-07-2001" 380 1044.7 .000190118 .0243053 .012395788 1 "3M India Ltd." "03-07-2001" 382 1016.12 .000190118 .009193858 .011030175 1 "3M India Ltd." "04-07-2001" 373 1012.19 .000189043 -.003779778 .002102887 1 "3M India Ltd." "05-07-2001" 370 1016.32 .000189043 -.002112604 -.009983404 1 "3M India Ltd." "06-07-2001" 363 1008.44 .000189043 -.004746309 .004176213 1 "3M India Ltd." "09-07-2001" 370.1 1005.61 .000189043 .004967289 -.000901557 1 "3M India Ltd." "10-07-2001" 365 1015.86 .000189043 -.004156345 -.005973499 1 "3M India Ltd." "11-07-2001" 365 1023.1 .000189043 -.009570085 -.0000385042 1 "3M India Ltd." "12-07-2001" . 1045.89 .000189043 -.008317466 -.014657998 1 "3M India Ltd." "13-07-2001" 379.8 1047.82 .000189043 -.009258101 .003756839 1 "3M India Ltd." "16-07-2001" 374.5 1043.17 .000189043 .008141486 .001153436 1 "3M India Ltd." "17-07-2001" 384 1038.48 .000189043 .002734654 -.006272981 1 "3M India Ltd." "18-07-2001" . 1035.52 .000191194 .002666798 -.007612133 1 "3M India Ltd." "19-07-2001" 380 1029.28 .000191194 -.010764934 .002164563 1 "3M India Ltd." "20-07-2001" 367 1021.48 .000191194 -.003531434 .006274182 1 "3M India Ltd." "23-07-2001" . 1017.91 .000191194 .003957119 .00298848 1 "3M India Ltd." "24-07-2001" 364 1007.34 .000191194 .003522038 -.002557836 1 "3M India Ltd." "25-07-2001" 362.1 992.87 .000190118 -.005112115 -.003178912 1 "3M India Ltd." "26-07-2001" 345 983.87 .000190118 .008406641 -.007936762 1 "3M India Ltd." "27-07-2001" 335 985.08 .000190118 .007523834 -.007662709 1 "3M India Ltd." "30-07-2001" . 997.06 .000190118 -.001052119 .003796941 1 "3M India Ltd." "31-07-2001" 325.1 1007.38 .000190118 -.006281636 -.006013084 1 "3M India Ltd." "01-08-2001" 321.35 1002.07 .000187969 -.003827866 .007759471 1 "3M India Ltd." "02-08-2001" 318 1007.21 .000187969 -.002262957 -.006467539 1 "3M India Ltd." "03-08-2001" 323 1016.31 .000187969 .002335253 -.005333087 1 "3M India Ltd." "06-08-2001" 332.5 1016.84 .000187969 .013860058 -.002403292 1 "3M India Ltd." "07-08-2001" 332 1009.8 .000187969 .0000310135 .008616665 1 "3M India Ltd." "08-08-2001" 330 1005.47 .000186894 .002830373 .006939544 1 "3M India Ltd." "09-08-2001" 330 1005.16 .000186894 .000680501 -.0000935619 1 "3M India Ltd." "10-08-2001" 325.9 1001.29 .000186894 -.003242821 .004484232 1 "3M India Ltd." "13-08-2001" 330 991.02 .000186894 .016223654 -.003393324 1 "3M India Ltd." "14-08-2001" 325 1004.51 .000184742 -.009961346 -.007970894 1 "3M India Ltd." "16-08-2001" 320 1006.83 .000184742 -.001116778 .00184716 1 "3M India Ltd." "17-08-2001" 320 998.73 .000184742 .003973659 .0040762 1 "3M India Ltd." "20-08-2001" 301.3 993.36 .000184742 .0070569 -.002350738 1 "3M India Ltd." "21-08-2001" 309.55 998.08 .000184742 .003531019 -.011190037 1 "3M India Ltd." "23-08-2001" 305 998.48 .000184742 -.004440534 .004637646 1 "3M India Ltd." "24-08-2001" 302.5 1001.45 .000184742 .002634362 -.011495728 1 "3M India Ltd." "27-08-2001" 315 1005.27 .000184742 .017009705 -.007403183 1 "3M India Ltd." "28-08-2001" 315 1003.13 .000184742 -.002180334 .002409128 1 "3M India Ltd." "29-08-2001" . 1001.18 .000183666 .006914516 .001008481 1 "3M India Ltd." "30-08-2001" 323 999.71 .000183666 .007821609 -.001851162 1 "3M India Ltd." "31-08-2001" . 986.25 .000183666 .005843469 .008782397 1 "3M India Ltd." "03-09-2001" 311.05 976.87 .000183666 .018127613 -.008090637 1 "3M India Ltd." "04-09-2001" 324 980.81 .000183666 .000421051 -.007871736 1 "3M India Ltd." "05-09-2001" 321 976.21 .000183666 .001085125 .00383226 1 "3M India Ltd." "06-09-2001" 316.9 967.46 .000183666 .001295311 -.002122955 1 "3M India Ltd." "07-09-2001" 318 968.13 .000183666 -.005481656 -.000656931 1 "3M India Ltd." "10-09-2001" 317 965.93 .000183666 .008949677 .004532822 1 "3M India Ltd." "11-09-2001" 310 959.32 .000183666 .004254708 .002196711 1 "3M India Ltd." "12-09-2001" 303.85 924.96 .000187969 -.00078408 .005701145 1 "3M India Ltd." "13-09-2001" 305.4 915.84 .000187969 -.002050521 .014715027 1 "3M India Ltd." "14-09-2001" 290 861.02 .000187969 .006616689 .013136523 1 "3M India Ltd." "17-09-2001" 257.3 804.92 .000187969 .006880768 .001179116 1 "3M India Ltd." "18-09-2001" 280 836.2 .000187969 -.008791488 .004700812 1 "3M India Ltd." "19-09-2001" 290 840.08 .000193344 .007614173 .017786305 1 "3M India Ltd." "20-09-2001" 278.95 826.37 .000193344 -.004123228 .008266608 1 "3M India Ltd." "21-09-2001" 272 792.18 .000193344 .01756763 .02199402 1 "3M India Ltd." "24-09-2001" 271 815.18 .000193344 -.006995669 -.017225754 1 "3M India Ltd." "25-09-2001" 270 807.94 .000193344 .004815123 .009335892 1 "3M India Ltd." "26-09-2001" 261.5 821.67 .000187969 -.008984162 -.012087896 1 "3M India Ltd." "27-09-2001" 260 825.81 .000187969 -.004142652 .006669711 1 "3M India Ltd." "28-09-2001" 266 850.56 .000187969 -.017421316 .000376217 1 "3M India Ltd." "01-10-2001" 276.5 844.2 .000187969 .005426327 .001641476 1 "3M India Ltd." "03-10-2001" 270 832.46 .000184742 .003100564 .014084384 1 "3M India Ltd." "04-10-2001" 263.8 842.15 .000184742 -.00491618 -.009198776 1 "3M India Ltd." "05-10-2001" . 844.87 .000184742 .002996849 -.00724678 1 "3M India Ltd." "08-10-2001" 273.5 831.16 .000184742 .003219688 .010580573 1 "3M India Ltd." "09-10-2001" 270 842.27 .000184742 -.012359478 .002310888 1 "3M India Ltd." "10-10-2001" 278 861.97 .000185818 -.00611104 -.014635766 1 "3M India Ltd." "11-10-2001" 270 875.14 .000185818 -.008688306 -.003316985 1 "3M India Ltd." "12-10-2001" 265.5 878.54 .000185818 .000993069 -.005601964 1 "3M India Ltd." "15-10-2001" 262.2 880.39 .000185818 .01196225 .001652932 1 "3M India Ltd." "16-10-2001" 259.85 891.59 .000185818 .001527667 -.007085373 1 "3M India Ltd." "17-10-2001" 260 906.58 .000187969 -.003437033 -.001419346 1 "3M India Ltd." "18-10-2001" 261.9 890.81 .000187969 .001909316 .01943403 1 "3M India Ltd." "19-10-2001" 260 899.6 .000187969 -.002249387 -.003969661 1 "3M India Ltd." "22-10-2001" 265 903.64 .000187969 .015999708 .009118058 1 "3M India Ltd." "23-10-2001" 265 916.9 .000187969 -.008250358 .000710333 1 "3M India Ltd." "24-10-2001" 261.6 912.92 .000178282 -.00415184 .008784475 1 "3M India Ltd." "25-10-2001" 263.25 909.88 .000178282 .002199966 .00303661 1 "3M India Ltd." "29-10-2001" 265.85 911.35 .000178282 .001279933 .007193609 1 "3M India Ltd." "30-10-2001" 265 895.86 .000178282 .007337891 .006994818 1 "3M India Ltd." "31-10-2001" 270 902.84 .000180436 -.002044746 -.00972682 1 "3M India Ltd." "01-11-2001" 274.9 916.37 .000180436 -.005455928 -.012044747 1 "3M India Ltd." "02-11-2001" 265.95 918.84 .000180436 -.006226132 .000252876 1 "3M India Ltd." "05-11-2001" 270 919.12 .000180436 .005960923 .006250963 1 "3M India Ltd." "06-11-2001" 275 932.31 .000180436 .000496976 -.00934026 1 "3M India Ltd." "07-11-2001" 270.25 920.84 .000180436 .008103575 .013195202 1 "3M India Ltd." "08-11-2001" 274.75 931.26 .000180436 -.001850496 -.001523932 1 "3M India Ltd." "09-11-2001" 271.5 934.92 .000180436 .005705178 -.002968989 1 "3M India Ltd." "12-11-2001" 273 942.81 .000180436 .02629301 -.002724774 1 "3M India Ltd." "13-11-2001" 285 937.24 .000180436 .00258975 .0000337117 1 "3M India Ltd." "14-11-2001" 289.9 950.69 .000180436 -.002274552 .00513802 1 "3M India Ltd." "15-11-2001" 290 968.45 .000180436 -.002998726 -.024889307 1 "3M India Ltd." "19-11-2001" 297.2 997.2 .000180436 .016279232 -.012132827 1 "3M India Ltd." "20-11-2001" 288 986.23 .000180436 .004437539 .00697962 1 "3M India Ltd." "21-11-2001" 290 994.23 .000180436 .002880188 .006559707 1 "3M India Ltd." "22-11-2001" 288 1003.35 .000180436 -.006428535 .012129813 end
Code:
* Change date to STATA format gen date1=date(month,"DMY") format date1 %td drop month rename date1 date gen mdate= mofd(date) format mdate %tm * Calculate Raw Returns Returns bysort stock_id (date) : gen rt_r =((pr[_n]-pr[_n-1])/pr[_n-1]) bysort stock_id (date) : gen mkt_r =((mk[_n]-mk[_n-1])/mk[_n-1]) gen rt=rt_r-rf gen mkt=mkt_r-rf gen mkt2 = mkt^2 * Generate monthly idiosyncratic skewness capture program drop one_regression program define one_regression regress rt mkt mkt2 tempvar resid // no need to keep resid around after the program predict `resid', resid summ `resid', detail gen double skewness = r(skewness) gen obs = r(N) end bysort stock_id mdate (date): gen high = cond(_n==1, mdate, -99) rangerun one_regression, by(stock_id) interval(mdate -11 high) keep if mdate==high // <-- just to help reduce to 1 summary observation per mdate-stock combination keep stock* mdate skewness obs // <-- keep summary variables drop if mdate<ym(2002,6) drop if mdate>ym(2003,5) replace skewness =. if obs<200 drop obs rename skewness idioskew
0 Response to Generating idioskew
Post a Comment