{va,ve} = eighv(w); "eigenvalues of W matrix" ; format /RD 6,2; va'; "eigenvector corresp. to largest eigenvalue" ; format /RD 6,2; ve[.,rows(ve)]'; graphset; title("Eigenvalues of W matrix"); _Plctrl = 1; xy(seqa(1,1,rows(va)),rev(va)); graphset; _plctrl = 1; title("Portfolio weights: largest eigenvector of weighting matrix"); let lab = "E(m)"; j = 1; do while j <= rows(whichdec); lab = lab| ("D" $+ ftos(whichdec[j],"%*.*lf",1,0)); j = j+1; endo; lab = lab|"NR"|"R" ; j = 1; do while j <= rows(whichdec); lab = lab| ("D" $+ ftos(whichdec[j],"%*.*lf",1,0) $+ "xT"); j = j+1; endo; lab = lab|"NRxT"|"RxT"; j = 1; do while j <= rows(whichdec); lab = lab| ("D" $+ ftos(whichdec[j],"%*.*lf",1,0) $+ "xDP"); j = j+1; endo; lab = lab|"NRxDP"|"RxDP"; xlabel("Moment"); ylabel("Weight"); lab3 = " " .*. ones(rows(lab),1); asclabel(lab3,0); lab2 = "-E(m)"; i = 2; do while i <= rows(lab); lab2 = lab2 $+ "\000-" $+ lab[i]; i = i+1; endo; _pmsgstr = lab2; _pmsgctl = seqa(1.3,1,rows(ve))~(ones(rows(lab),1)*(-8~0.1~90~1~10~0)); xtics(0,rows(ve)+1,1,0); wts = ve[.,rows(ve)]; _pticout = 1; _pbartyp = 0~10; bar(seqa(1,1,rows(ve)),wts/sumc(wts)); @ xy(seqa(1,1,rows(ve)),wts/sumc(wts)); @ title("Portfolio weights: second largest eigenvector of weighting matrix"); wts = ve[.,rows(ve)-1]; _pmsgctl = seqa(1.3,1,rows(ve))~(ones(rows(lab),1)*(-2~0.1~90~1~10~0)); ytics(-2,2,1,0); bar(seqa(1,1,rows(ve)),wts/sumc(wts)); title("Portfolio weights: third largest eigenvector of weighting matrix"); wts = ve[.,rows(ve)-2]; _pmsgctl = seqa(1.3,1,rows(ve))~(ones(rows(lab),1)*(-4~0.1~90~1~10~0)); ytics(-4,4,1,0); bar(seqa(1,1,rows(ve)),wts/sumc(wts));