*! livreg2 1.2.01 28july2015 *! authors cfb & mes *! compiled in Stata 11.2 * Mata library for ivreg2 and ranktest. * Introduced with ivreg2 v 3.1.01 and ranktest v 1.3.01. * Version comments: * 1.1.01 First version of library. * Contains struct ms_vcvorthog, m_omega, m_calckw, s_vkernel. * Compiled in Stata 9.2 for compatibility with ranktest 1.3.01 (a 9.2 program). * 1.1.02 Add routine cdsy. Standardized spelling/caps/etc. of QS as "Quadratic Spectral" * 1.1.03 Corrected spelling of "Danielle" kernel in m_omega() * 1.1.04 Fixed weighting bugs in robust and cluster code of m_omega where K>1 * 1.1.05 Added whichlivreg2(.) to aid in version control * 1.1.06 Fixed remaining weighting bug (see 1.1.04) in 2-way clustering when interection * of clustering levels is groups * 1.1.07 Fixed HAC bug that crashed m_omega(.) when there were no obs for a particular lag * 1.2.01 Promotion to compilation in Stata 11.2. Added support for -center- option. * Locals used in whichlivreg2; set when compiled local stata_version `c(stata_version)' local born_date `c(born_date)' version 11.2 mata: mata clear void whichlivreg2() { "" "livreg2 01.2.01 28july2015" "compiled under Stata " + "`stata_version'" + " born " + "`born_date'" "Mata library for ivreg2 and related programs" "authors CFB/MS" st_sclear() st_global("s(stata_born_date)","`born_date'") st_global("s(stata_version)","`stata_version'") st_global("s(compiled_date)","28july2015") st_global("s(ver)", "01.2.01") } // ********* struct ms_vcvorthog - shared by ivreg2 and ranktest ******************* // struct ms_vcvorthog { string scalar ename, Znames, touse, weight, wvarname string scalar robust, clustvarname, clustvarname2, clustvarname3, kernel string scalar sw, psd, ivarname, tvarname, tindexname real scalar wf, N, bw, tdelta, dofminus real scalar center real matrix ZZ pointer matrix e pointer matrix Z pointer matrix wvar } // ********* s_vkernel - shared by ivreg2 and ranktest ******************* // // Program checks whether kernel and bw choices are valid. // s_vkernel is called from Stata. // Arguments are the kernel name (req), bandwidth (req) and ivar name (opt). // All 3 are strings. // Returns results in r() macros. // r(kernel) - name of kernel (string) // r(bw) - bandwidth (scalar) void s_vkernel( string scalar kernel, string scalar bwstring, string scalar ivar ) { // Check bandwidth if (bwstring=="auto") { bw=-1 } else { bw=strtoreal(bwstring) if (bw==.) { printf("{err}bandwidth option bw() required for HAC-robust estimation\n") exit(102) } if (bw<=0) { printf("{err}invalid bandwidth in option bw() - must be real > 0\n") exit(198) } } // Check ivar if (bwstring=="auto" & ivar~="") { printf("{err}Automatic bandwidth selection not available for panel data\n") exit(198) } // Check kernel // Valid kernel list is abbrev, full name, whether special case if bw=1 // First in list is default kernel = Barlett vklist = ( ("", "bartlett", "0") \ ("bar", "bartlett", "0") \ ("bartlett", "bartlett", "0") \ ("par", "parzen", "0") \ ("parzen", "parzen", "0") \ ("tru", "truncated", "1") \ ("truncated", "truncated", "1") \ ("thann", "tukey-hanning", "0") \ ("tukey-hanning", "tukey-hanning", "0") \ ("thamm", "tukey-hamming", "0") \ ("tukey-hamming", "tukey-hamming", "0") \ ("qua", "quadratic spectral", "1") \ ("qs", "quadratic spectral", "1") \ ("quadratic-spectral", "quadratic spectral", "1") \ ("quadratic spectral", "quadratic spectral", "1") \ ("dan", "danielle", "1") \ ("danielle", "danielle", "1") \ ("ten", "tent", "1") \ ("tent", "tent", "1") ) kname=strltrim(strlower(kernel)) pos = (vklist[.,1] :== kname) // Exit with error if not in list if (sum(pos)==0) { printf("{err}invalid kernel\n") exit(198) } vkname=strproper(select(vklist[.,2],pos)) st_global("r(kernel)", vkname) st_numscalar("r(bw)",bw) // Warn if kernel is type where bw=1 means no lags are used if (bw==1 & select(vklist[.,3],pos)=="0") { printf("{result}Note: kernel=%s", vkname) printf("{result} and bw=1 implies zero lags used. Standard errors and\n") printf("{result} test statistics are not autocorrelation-consistent.\n") } } // end of program s_vkernel // ********* m_omega - shared by ivreg2 and ranktest ********************* // // NB: ivreg2 always calls m_omega with e as column vector, i.e., K=1 // // ranktest can call m_omega with e as matrix, i.e., K>=1 // real matrix m_omega(struct ms_vcvorthog scalar vcvo) { if (vcvo.clustvarname~="") { st_view(clustvar, ., vcvo.clustvarname, vcvo.touse) info = panelsetup(clustvar, 1) N_clust=rows(info) if (vcvo.clustvarname2~="") { st_view(clustvar2, ., vcvo.clustvarname2, vcvo.touse) if (vcvo.kernel=="") { st_view(clustvar3, ., vcvo.clustvarname3, vcvo.touse) // needed only if not panel tsset } } } if (vcvo.kernel~="") { st_view(t, ., st_tsrevar(vcvo.tvarname), vcvo.touse) T=max(t)-min(t)+1 } if ((vcvo.kernel=="Bartlett") | (vcvo.kernel=="Parzen") | (vcvo.kernel=="Truncated") /// | (vcvo.kernel=="Tukey-Hanning")| (vcvo.kernel=="Tukey-Hamming")) { window="lag" } else if ((vcvo.kernel=="Quadratic Spectral") | (vcvo.kernel=="Danielle") | (vcvo.kernel=="Tent")) { window="spectral" } else if (vcvo.kernel~="") { // Should never reach this point printf("\n{error:Error: invalid kernel}\n") exit(error(3351)) } L=cols(*vcvo.Z) K=cols(*vcvo.e) // ivreg2 always calls with K=1; ranktest may call with K>=1. // If centered moments specified, need rowvector of mean organized as (e1'Z e2'Z ...). // Needed only if non-homoskedastic if ((vcvo.center==1) & ((vcvo.robust~="") | (vcvo.clustvarname==""))) { if ((vcvo.weight=="fweight") | (vcvo.weight=="iweight")) { wv = *vcvo.wvar } else { wv = (*vcvo.wvar * vcvo.wf):^2 // wf needed for aweights and pweights } eZmean=quadcross(*vcvo.e, wv, *vcvo.Z) / vcvo.N eZmean=vec(eZmean')' } // Covariance matrices // shat * 1/N is same as estimated S matrix of orthog conditions // Block for homoskedastic and AC. dof correction if any incorporated into sigma estimates. if ((vcvo.robust=="") & (vcvo.clustvarname=="")) { // ZZ is already calculated as an external ee = quadcross(*vcvo.e, vcvo.wf*(*vcvo.wvar), *vcvo.e) sigma2=ee/(vcvo.N-vcvo.dofminus) shat=sigma2#vcvo.ZZ if (vcvo.kernel~="") { if (window=="spectral") { TAU=T/vcvo.tdelta-1 } else { TAU=vcvo.bw } tnow=st_data(., vcvo.tindexname) for (tau=1; tau<=TAU; tau++) { kw = m_calckw(tau, vcvo.bw, vcvo.kernel) if (kw~=0) { // zero weight possible with some kernels // save an unnecessary loop if kw=0 // remember, kw<0 possible with some kernels! lstau = "L"+strofreal(tau) tlag=st_data(., lstau+"."+vcvo.tindexname) tmatrix = tnow, tlag svar=(tnow:<.):*(tlag:<.) // multiply column vectors of 1s and 0s tmatrix=select(tmatrix,svar) // to get intersection, and replace tmatrix // if no lags exist, tmatrix has zero rows. if (rows(tmatrix)>0) { // col 1 of tmatrix has row numbers of all rows of data with this time period that have a corresponding lag // col 2 of tmatrix has row numbers of all rows of data with lag tau that have a corresponding ob this time period. // Should never happen that fweights or iweights make it here, // but if they did the next line would be sqrt(wvari)*sqrt(wvari1) [with no wf since not needed for fw or iw] wv = (*vcvo.wvar)[tmatrix[.,1]] /// :* (*vcvo.wvar)[tmatrix[.,2]]*(vcvo.wf^2) // inner weighting matrix for quadcross sigmahat = quadcross((*vcvo.e)[tmatrix[.,1],.], wv ,(*vcvo.e)[tmatrix[.,2],.]) /// / (vcvo.N-vcvo.dofminus) // large dof correction ZZhat = quadcross((*vcvo.Z)[tmatrix[.,1],.], wv, (*vcvo.Z)[tmatrix[.,2],.]) ghat = sigmahat#ZZhat shat=shat+kw*(ghat+ghat') } } // end non-zero kernel weight block } // end tau loop } // end kernel code // Note large dof correction (if there is one) has already been incorporated shat=shat/vcvo.N } // end homoskedastic, AC code // Block for robust HC and HAC but not Stock-Watson and single clustering. // Need to enter for double-clustering if one cluster is time. if ( (vcvo.robust~="") & (vcvo.sw=="") & ((vcvo.clustvarname=="") /// | ((vcvo.clustvarname2~="") & (vcvo.kernel~=""))) ) { if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering if ((vcvo.weight=="fweight") | (vcvo.weight=="iweight")) { wv = (*vcvo.e:^2) :* *vcvo.wvar } else { wv = (*vcvo.e :* *vcvo.wvar * vcvo.wf):^2 // wf needed for aweights and pweights } shat=quadcross(*vcvo.Z, wv, *vcvo.Z) // basic Eicker-Huber-White-sandwich-robust vce } else { // e is a matrix so must loop shat=J(L*K,L*K,0) for (i=1; i<=rows(*vcvo.e); i++) { eZi=((*vcvo.e)[i,.])#((*vcvo.Z)[i,.]) if (vcvo.center==1) { eZi=eZi-eZmean } if ((vcvo.weight=="fweight") | (vcvo.weight=="iweight")) { // wvar is a column vector. wf not needed for fw and iw (=1 by dfn so redundant). shat=shat+quadcross(eZi,eZi)*((*vcvo.wvar)[i]) } else { shat=shat+quadcross(eZi,eZi)*((*vcvo.wvar)[i] * vcvo.wf)^2 } } } if (vcvo.kernel~="") { // Spectral windows require looping through all T-1 autocovariances if (window=="spectral") { TAU=T/vcvo.tdelta-1 } else { TAU=vcvo.bw } tnow=st_data(., vcvo.tindexname) for (tau=1; tau<=TAU; tau++) { kw = m_calckw(tau, vcvo.bw, vcvo.kernel) if (kw~=0) { // zero weight possible with some kernels // save an unnecessary loop if kw=0 // remember, kw<0 possible with some kernels! lstau = "L"+strofreal(tau) tlag=st_data(., lstau+"."+vcvo.tindexname) tmatrix = tnow, tlag svar=(tnow:<.):*(tlag:<.) // multiply column vectors of 1s and 0s tmatrix=select(tmatrix,svar) // to get intersection, and replace tmatrix // col 1 of tmatrix has row numbers of all rows of data with this time period that have a corresponding lag // col 2 of tmatrix has row numbers of all rows of data with lag tau that have a corresponding ob this time period. // if no lags exist, tmatrix has zero rows if (rows(tmatrix)>0) { if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering // wv is inner weighting matrix for quadcross wv = (*vcvo.e)[tmatrix[.,1]] :* (*vcvo.e)[tmatrix[.,2]] /// :* (*vcvo.wvar)[tmatrix[.,1]] :* (*vcvo.wvar)[tmatrix[.,2]] * (vcvo.wf^2) ghat = quadcross((*vcvo.Z)[tmatrix[.,1],.], wv, (*vcvo.Z)[tmatrix[.,2],.]) } else { // e is a matrix so must loop ghat=J(L*K,L*K,0) for (i=1; i<=rows(tmatrix); i++) { wvari =(*vcvo.wvar)[tmatrix[i,1]] wvari1=(*vcvo.wvar)[tmatrix[i,2]] ei =(*vcvo.e)[tmatrix[i,1],.] ei1 =(*vcvo.e)[tmatrix[i,2],.] Zi =(*vcvo.Z)[tmatrix[i,1],.] Zi1 =(*vcvo.Z)[tmatrix[i,2],.] eZi =ei#Zi eZi1=ei1#Zi1 if (vcvo.center==1) { eZi=eZi-eZmean eZi1=eZi1-eZmean } // Should never happen that fweights or iweights make it here, but if they did // the next line would be ghat=ghat+eZi'*eZi1*sqrt(wvari)*sqrt(wvari1) // [without *vcvo.wf since wf=1 for fw and iw] ghat=ghat+quadcross(eZi,eZi1)*wvari*wvari1 * (vcvo.wf^2) } } shat=shat+kw*(ghat+ghat') } // end non-zero-obs accumulation block } // end non-zero kernel weight block } // end tau loop } // end kernel code // Incorporate large dof correction if there is one shat=shat/(vcvo.N-vcvo.dofminus) } // end HC/HAC code if (vcvo.clustvarname~="") { // Block for cluster-robust // 2-level clustering: S = S(level 1) + S(level 2) - S(level 3 = intersection of levels 1 & 2) // Prepare shat3 if 2-level clustering if (vcvo.clustvarname2~="") { if (vcvo.kernel~="") { // second cluster variable is time // shat3 was already calculated above as shat shat3=shat*(vcvo.N-vcvo.dofminus) } else { // calculate shat3 // data were sorted on clustvar3-clustvar1 so // clustvar3 is nested in clustvar1 and Mata panel functions // work for both. info3 = panelsetup(clustvar3, 1) if (rows(info3)==rows(*vcvo.e)) { // intersection of levels 1 & 2 are all single obs // so no need to loop through row by row if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering wv = (*vcvo.e :* *vcvo.wvar * vcvo.wf):^2 shat3=quadcross(*vcvo.Z, wv, *vcvo.Z) // basic Eicker-Huber-White-sandwich-robust vce } else { // e is a matrix so must loop shat3=J(L*K,L*K,0) for (i=1; i<=rows(*vcvo.e); i++) { eZi=((*vcvo.e)[i,.])#((*vcvo.Z)[i,.]) if (vcvo.center==1) { eZi=eZi-eZmean } shat3=shat3+quadcross(eZi,eZi)*((*vcvo.wvar)[i] * vcvo.wf)^2 } } } else { // intersection of levels 1 & 2 includes some groups of obs N_clust3=rows(info3) shat3=J(L*K,L*K,0) for (i=1; i<=N_clust3; i++) { esub=panelsubmatrix(*vcvo.e,i,info3) Zsub=panelsubmatrix(*vcvo.Z,i,info3) wsub=panelsubmatrix(*vcvo.wvar,i,info3) wv = esub :* wsub * vcvo.wf if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering eZ = quadcross(1, wv, Zsub) // equivalent to colsum(wv :* Zsub) } else { eZ = J(1,L*K,0) for (j=1; j<=rows(esub); j++) { eZ=eZ+(esub[j,.]#Zsub[j,.])*wsub[j,.] * vcvo.wf } if (vcvo.center==1) { eZ=eZ-eZmean } } shat3=shat3+quadcross(eZ,eZ) } } } } // 1st level of clustering, no kernel-robust // Entered unless 1-level clustering and kernel-robust if (!((vcvo.kernel~="") & (vcvo.clustvarname2==""))) { shat=J(L*K,L*K,0) for (i=1; i<=N_clust; i++) { // loop through clusters, adding Z'ee'Z // for indiv cluster in each loop esub=panelsubmatrix(*vcvo.e,i,info) Zsub=panelsubmatrix(*vcvo.Z,i,info) wsub=panelsubmatrix(*vcvo.wvar,i,info) if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering wv = esub :* wsub * vcvo.wf eZ = quadcross(1, wv, Zsub) // equivalent to colsum(wv :* Zsub) } else { eZ=J(1,L*K,0) for (j=1; j<=rows(esub); j++) { eZj=(esub[j,.]#Zsub[j,.])*wsub[j,.]*vcvo.wf if (vcvo.center==1) { eZj=eZj-eZmean } eZ=eZ+eZj } } shat=shat+quadcross(eZ,eZ) } // end loop through clusters } // 2-level clustering, no kernel-robust if ((vcvo.clustvarname2~="") & (vcvo.kernel=="")) { imax=max(clustvar2) // clustvar2 is numbered 1..N_clust2 shat2=J(L*K,L*K,0) for (i=1; i<=imax; i++) { // loop through clusters, adding Z'ee'Z // for indiv cluster in each loop svar=(clustvar2:==i) // mimics panelsubmatrix but doesn't require sorted data esub=select(*vcvo.e,svar) // it is, however, noticably slower. Zsub=select(*vcvo.Z,svar) wsub=select(*vcvo.wvar,svar) if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering wv = esub :* wsub * vcvo.wf eZ = quadcross(1, wv, Zsub) // equivalent to colsum(wv :* Zsub) } else { eZ=J(1,L*K,0) for (j=1; j<=rows(esub); j++) { eZ=eZ+(esub[j,.]#Zsub[j,.])*wsub[j,.]*vcvo.wf } } if (vcvo.center==1) { eZ=eZ-eZmean } shat2=shat2+quadcross(eZ,eZ) } } // 1st level of cluster, kernel-robust OR // 2-level clustering, kernel-robust and time is 2nd cluster variable if (vcvo.kernel~="") { shat2=J(L*K,L*K,0) // First, standard cluster-robust, i.e., no lags. i=min(t) while (i<=max(t)) { // loop through all T clusters, adding Z'ee'Z // for indiv cluster in each loop eZ=J(1,L*K,0) svar=(t:==i) // select obs with t=i if (colsum(svar)>0) { // there are obs with t=i esub=select(*vcvo.e,svar) Zsub=select(*vcvo.Z,svar) wsub=select(*vcvo.wvar,svar) if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering wv = esub :* wsub * vcvo.wf eZ = quadcross(1, wv, Zsub) // equivalent to colsum(wv :* Zsub) } else { eZ=J(1,L*K,0) for (j=1; j<=rows(esub); j++) { eZ=eZ+(esub[j,.]#Zsub[j,.])*wsub[j,.]*vcvo.wf } } if (vcvo.center==1) { eZ=eZ-eZmean } shat2=shat2+quadcross(eZ,eZ) } i=i+vcvo.tdelta } // end i loop through all T clusters // Spectral windows require looping through all T-1 autocovariances if (window=="spectral") { TAU=T/vcvo.tdelta-1 } else { TAU=vcvo.bw } for (tau=1; tau<=TAU; tau++) { kw = m_calckw(tau, vcvo.bw, vcvo.kernel) // zero weight possible with some kernels // save an unnecessary loop if kw=0 // remember, kw<0 possible with some kernels! if (kw~=0) { i=min(t)+tau*vcvo.tdelta // Loop through all possible ts (time clusters) while (i<=max(t)) { // Start at earliest possible t svar=t[.,]:==i // svar is current, svar1 is tau-th lag svar1=t[.,]:==(i-tau*vcvo.tdelta) // tau*vcvo.tdelta is usually just tau if ((colsum(svar)>0) // there are current & lagged obs & (colsum(svar1)>0)) { wv = select((*vcvo.e),svar) :* select((*vcvo.wvar),svar) * vcvo.wf wv1 = select((*vcvo.e),svar1) :* select((*vcvo.wvar),svar1) * vcvo.wf Zsub =select((*vcvo.Z),svar) Zsub1=select((*vcvo.Z),svar1) if ((K==1) & (vcvo.center~=1)) { // simple/fast where e is a column vector // and no centering eZsub = quadcross(1, wv, Zsub) // equivalent to colsum(wv :* Zsub) eZsub1= quadcross(1, wv1, Zsub1) // equivalent to colsum(wv :* Zsub) } else { eZsub=J(1,L*K,0) for (j=1; j<=rows(Zsub); j++) { wvj =wv[j,.] Zj =Zsub[j,.] eZsub=eZsub+(wvj#Zj) } eZsub1=J(1,L*K,0) for (j=1; j<=rows(Zsub1); j++) { wv1j =wv1[j,.] Z1j =Zsub1[j,.] eZsub1=eZsub1+(wv1j#Z1j) } } if (vcvo.center==1) { eZsub=eZsub-eZmean eZsub1=eZsub1-eZmean } ghat=quadcross(eZsub,eZsub1) shat2=shat2+kw*(ghat+ghat') } i=i+vcvo.tdelta } } // end non-zero kernel weight block } // end tau loop // If 1-level clustering, shat2 just calculated above is actually the desired shat if (vcvo.clustvarname2=="") { shat=shat2 } } // 2-level clustering, completion // Cameron-Gelbach-Miller/Thompson method: // Add 2 cluster variance matrices and subtract 3rd if (vcvo.clustvarname2~="") { shat = shat+shat2-shat3 } // Note no dof correction required for cluster-robust shat=shat/vcvo.N } // end cluster-robust code if (vcvo.sw~="") { // Stock-Watson adjustment. Calculate Bhat in their equation (6). Also need T=panel length. // They define for balanced panels. Since T is not constant for unbalanced panels, need // to incorporate panel-varying 1/T, 1/(T-1) and 1/(T-2) as weights in summation. st_view(ivar, ., st_tsrevar(vcvo.ivarname), vcvo.touse) info_ivar = panelsetup(ivar, 1) shat=J(L*K,L*K,0) bhat=J(L*K,L*K,0) N_panels=0 for (i=1; i<=rows(info_ivar); i++) { esub=panelsubmatrix(*vcvo.e,i,info_ivar) Zsub=panelsubmatrix(*vcvo.Z,i,info_ivar) wsub=panelsubmatrix(*vcvo.wvar,i,info_ivar) Tsub=rows(esub) if (Tsub>2) { // SW cov estimator defined only for T>2 N_panels=N_panels+1 sigmahatsub=J(K,K,0) ZZsub=J(L*K,L*K,0) shatsub=J(L*K,L*K,0) for (j=1; j<=rows(esub); j++) { eZi=esub[j,1]#Zsub[j,.] if (vcvo.center==1) { eZi=eZi-eZmean } if ((vcvo.weight=="fweight") | (vcvo.weight=="iweight")) { shatsub=shatsub+quadcross(eZi,eZi)*wsub[j]*vcvo.wf sigmahatsub=sigmahatsub + quadcross(esub[j,1],esub[j,1])*wsub[j]*vcvo.wf ZZsub=ZZsub+quadcross(Zsub[j,.],Zsub[j,.])*wsub[j]*vcvo.wf } else { shatsub=shatsub+quadcross(eZi,eZi)*((wsub[j]*vcvo.wf)^2) sigmahatsub=sigmahatsub + quadcross(esub[j,1],esub[j,1])*((wsub[j]*vcvo.wf)^2) ZZsub=ZZsub+quadcross(Zsub[j,.],Zsub[j,.])*((wsub[j]*vcvo.wf)^2) } } // end loop through j obs of panel i shat=shat + shatsub*(Tsub-1)/(Tsub-2) bhat=bhat + ZZsub/Tsub#sigmahatsub/(Tsub-1)/(Tsub-2) } } // end loop through i panels // Note that Stock-Watson incorporate an N-n-k degrees of freedom correction in their eqn 4 // for what we call shat. We use only an N-n degrees of freedom correction, i.e., we ignore // the k regressors. This is because this is an estimate of S, the VCV of orthogonality conditions, // independently of its use to obtain an estimate of the variance of beta. Makes no diff aysmptotically. // Ignore dofminus correction since this is explicitly handled here. // Use number of valid panels in denominator (SW cov estimator defined only for panels with T>2). shat=shat/(vcvo.N-N_panels) bhat=bhat/N_panels shat=shat-bhat } // end Stock-Watson block _makesymmetric(shat) // shat may not be positive-definite. Use spectral decomposition to obtain an invertable version. // Extract Eigenvector and Eigenvalues, replace EVs, and reassemble shat. // psda option: Stock-Watson 2008 Econometrica, Remark 8, say replace neg EVs with abs(EVs). // psd0 option: Politis (2007) says replace neg EVs with zeros. if (vcvo.psd~="") { symeigensystem(shat,Evec,Eval) if (vcvo.psd=="psda") { Eval = abs(Eval) } else { Eval = Eval + (abs(Eval) - Eval)/2 } shat = Evec*diag(Eval)*Evec' _makesymmetric(shat) } return(shat) } // end of program m_omega // *********************************************************************** // // ********* m_calckw - shared by ivreg2 and ranktest ********************* // // *********************************************************************** // real scalar m_calckw( real scalar tau, real scalar bw, string scalar kernel) { karg = tau / bw if (kernel=="Truncated") { kw=1 } if (kernel=="Bartlett") { kw=(1-karg) } if (kernel=="Parzen") { if (karg <= 0.5) { kw = 1-6*karg^2+6*karg^3 } else { kw = 2*(1-karg)^3 } } if (kernel=="Tukey-Hanning") { kw=0.5+0.5*cos(pi()*karg) } if (kernel=="Tukey-Hamming") { kw=0.54+0.46*cos(pi()*karg) } if (kernel=="Tent") { kw=2*(1-cos(tau*karg)) / (karg^2) } if (kernel=="Danielle") { kw=sin(pi()*karg) / (pi()*karg) } if (kernel=="Quadratic Spectral") { kw=25/(12*pi()^2*karg^2) /* */ * ( sin(6*pi()*karg/5)/(6*pi()*karg/5) /* */ - cos(6*pi()*karg/5) ) } return(kw) } // end kw // *********************************************************************** // // ********* END CODE SHARED BY ivreg2 AND ranktest ******************** // // *********************************************************************** // // cdsy: used by ivreg2 void s_cdsy( string scalar temp, scalar choice) { string scalar s_ivbias5, s_ivbias10, s_ivbias20, s_ivbias30 string scalar s_ivsize10, s_ivsize15, s_ivsize20, s_ivsize25 string scalar s_fullrel5, s_fullrel10, s_fullrel20, s_fullrel30 string scalar s_fullmax5, s_fullmax10, s_fullmax20, s_fullmax30 string scalar s_limlsize10, s_limlsize15, s_limlsize20, s_limlsize25 s_ivbias5 = ". , . , . \ . , . , . \ 13.91 , . , . \ 16.85 , 11.04 , . \ 18.37 , 13.97 , 9.53 \ 19.28 , 15.72 , 12.20 \ 19.86 , 16.88 , 13.95 \ 20.25 , 17.70 , 15.18 \ 20.53 , 18.30 , 16.10 \ 20.74 , 18.76 , 16.80 \ 20.90 , 19.12 , 17.35 \ 21.01 , 19.40 , 17.80 \ 21.10 , 19.64 , 18.17 \ 21.18 , 19.83 , 18.47 \ 21.23 , 19.98 , 18.73 \ 21.28 , 20.12 , 18.94 \ 21.31 , 20.23 , 19.13 \ 21.34 , 20.33 , 19.29 \ 21.36 , 20.41 , 19.44 \ 21.38 , 20.48 , 19.56 \ 21.39 , 20.54 , 19.67 \ 21.40 , 20.60 , 19.77 \ 21.41 , 20.65 , 19.86 \ 21.41 , 20.69 , 19.94 \ 21.42 , 20.73 , 20.01 \ 21.42 , 20.76 , 20.07 \ 21.42 , 20.79 , 20.13 \ 21.42 , 20.82 , 20.18 \ 21.42 , 20.84 , 20.23 \ 21.42 , 20.86 , 20.27 \ 21.41 , 20.88 , 20.31 \ 21.41 , 20.90 , 20.35 \ 21.41 , 20.91 , 20.38 \ 21.40 , 20.93 , 20.41 \ 21.40 , 20.94 , 20.44 \ 21.39 , 20.95 , 20.47 \ 21.39 , 20.96 , 20.49 \ 21.38 , 20.97 , 20.51 \ 21.38 , 20.98 , 20.54 \ 21.37 , 20.99 , 20.56 \ 21.37 , 20.99 , 20.57 \ 21.36 , 21.00 , 20.59 \ 21.35 , 21.00 , 20.61 \ 21.35 , 21.01 , 20.62 \ 21.34 , 21.01 , 20.64 \ 21.34 , 21.02 , 20.65 \ 21.33 , 21.02 , 20.66 \ 21.32 , 21.02 , 20.67 \ 21.32 , 21.03 , 20.68 \ 21.31 , 21.03 , 20.69 \ 21.31 , 21.03 , 20.70 \ 21.30 , 21.03 , 20.71 \ 21.30 , 21.03 , 20.72 \ 21.29 , 21.03 , 20.73 \ 21.28 , 21.03 , 20.73 \ 21.28 , 21.04 , 20.74 \ 21.27 , 21.04 , 20.75 \ 21.27 , 21.04 , 20.75 \ 21.26 , 21.04 , 20.76 \ 21.26 , 21.04 , 20.76 \ 21.25 , 21.04 , 20.77 \ 21.24 , 21.04 , 20.77 \ 21.24 , 21.04 , 20.78 \ 21.23 , 21.04 , 20.78 \ 21.23 , 21.03 , 20.79 \ 21.22 , 21.03 , 20.79 \ 21.22 , 21.03 , 20.79 \ 21.21 , 21.03 , 20.80 \ 21.21 , 21.03 , 20.80 \ 21.20 , 21.03 , 20.80 \ 21.20 , 21.03 , 20.80 \ 21.19 , 21.03 , 20.81 \ 21.19 , 21.03 , 20.81 \ 21.18 , 21.03 , 20.81 \ 21.18 , 21.02 , 20.81 \ 21.17 , 21.02 , 20.82 \ 21.17 , 21.02 , 20.82 \ 21.16 , 21.02 , 20.82 \ 21.16 , 21.02 , 20.82 \ 21.15 , 21.02 , 20.82 \ 21.15 , 21.02 , 20.82 \ 21.15 , 21.02 , 20.83 \ 21.14 , 21.01 , 20.83 \ 21.14 , 21.01 , 20.83 \ 21.13 , 21.01 , 20.83 \ 21.13 , 21.01 , 20.83 \ 21.12 , 21.01 , 20.84 \ 21.12 , 21.01 , 20.84 \ 21.11 , 21.01 , 20.84 \ 21.11 , 21.01 , 20.84 \ 21.10 , 21.00 , 20.84 \ 21.10 , 21.00 , 20.84 \ 21.09 , 21.00 , 20.85 \ 21.09 , 21.00 , 20.85 \ 21.08 , 21.00 , 20.85 \ 21.08 , 21.00 , 20.85 \ 21.07 , 21.00 , 20.85 \ 21.07 , 20.99 , 20.86 \ 21.06 , 20.99 , 20.86 \ 21.06 , 20.99 , 20.86 \" ivbias5 = strtoreal(colshape(colshape(tokens(s_ivbias5), 2)[.,1], 3)) s_ivbias10 = ". , . , . \ . , . , . \ 9.08 , . , . \ 10.27 , 7.56 , . \ 10.83 , 8.78 , 6.61 \ 11.12 , 9.48 , 7.77 \ 11.29 , 9.92 , 8.5 \ 11.39 , 10.22 , 9.01 \ 11.46 , 10.43 , 9.37 \ 11.49 , 10.58 , 9.64 \ 11.51 , 10.69 , 9.85 \ 11.52 , 10.78 , 10.01 \ 11.52 , 10.84 , 10.14 \ 11.52 , 10.89 , 10.25 \ 11.51 , 10.93 , 10.33 \ 11.5 , 10.96 , 10.41 \ 11.49 , 10.99 , 10.47 \ 11.48 , 11 , 10.52 \ 11.46 , 11.02 , 10.56 \ 11.45 , 11.03 , 10.6 \ 11.44 , 11.04 , 10.63 \ 11.42 , 11.05 , 10.65 \ 11.41 , 11.05 , 10.68 \ 11.4 , 11.05 , 10.7 \ 11.38 , 11.06 , 10.71 \ 11.37 , 11.06 , 10.73 \ 11.36 , 11.06 , 10.74 \ 11.34 , 11.05 , 10.75 \ 11.33 , 11.05 , 10.76 \ 11.32 , 11.05 , 10.77 \ 11.3 , 11.05 , 10.78 \ 11.29 , 11.05 , 10.79 \ 11.28 , 11.04 , 10.79 \ 11.27 , 11.04 , 10.8 \ 11.26 , 11.04 , 10.8 \ 11.25 , 11.03 , 10.8 \ 11.24 , 11.03 , 10.81 \ 11.23 , 11.02 , 10.81 \ 11.22 , 11.02 , 10.81 \ 11.21 , 11.02 , 10.81 \ 11.2 , 11.01 , 10.81 \ 11.19 , 11.01 , 10.81 \ 11.18 , 11 , 10.81 \ 11.17 , 11 , 10.81 \ 11.16 , 10.99 , 10.81 \ 11.15 , 10.99 , 10.81 \ 11.14 , 10.98 , 10.81 \ 11.13 , 10.98 , 10.81 \ 11.13 , 10.98 , 10.81 \ 11.12 , 10.97 , 10.81 \ 11.11 , 10.97 , 10.81 \ 11.1 , 10.96 , 10.81 \ 11.1 , 10.96 , 10.81 \ 11.09 , 10.95 , 10.81 \ 11.08 , 10.95 , 10.81 \ 11.07 , 10.94 , 10.8 \ 11.07 , 10.94 , 10.8 \ 11.06 , 10.94 , 10.8 \ 11.05 , 10.93 , 10.8 \ 11.05 , 10.93 , 10.8 \ 11.04 , 10.92 , 10.8 \ 11.03 , 10.92 , 10.79 \ 11.03 , 10.92 , 10.79 \ 11.02 , 10.91 , 10.79 \ 11.02 , 10.91 , 10.79 \ 11.01 , 10.9 , 10.79 \ 11 , 10.9 , 10.79 \ 11 , 10.9 , 10.78 \ 10.99 , 10.89 , 10.78 \ 10.99 , 10.89 , 10.78 \ 10.98 , 10.89 , 10.78 \ 10.98 , 10.88 , 10.78 \ 10.97 , 10.88 , 10.77 \ 10.97 , 10.88 , 10.77 \ 10.96 , 10.87 , 10.77 \ 10.96 , 10.87 , 10.77 \ 10.95 , 10.86 , 10.77 \ 10.95 , 10.86 , 10.76 \ 10.94 , 10.86 , 10.76 \ 10.94 , 10.85 , 10.76 \ 10.93 , 10.85 , 10.76 \ 10.93 , 10.85 , 10.76 \ 10.92 , 10.84 , 10.75 \ 10.92 , 10.84 , 10.75 \ 10.91 , 10.84 , 10.75 \ 10.91 , 10.84 , 10.75 \ 10.91 , 10.83 , 10.75 \ 10.9 , 10.83 , 10.74 \ 10.9 , 10.83 , 10.74 \ 10.89 , 10.82 , 10.74 \ 10.89 , 10.82 , 10.74 \ 10.89 , 10.82 , 10.74 \ 10.88 , 10.81 , 10.74 \ 10.88 , 10.81 , 10.73 \ 10.87 , 10.81 , 10.73 \ 10.87 , 10.81 , 10.73 \ 10.87 , 10.8 , 10.73 \ 10.86 , 10.8 , 10.73 \ 10.86 , 10.8 , 10.72 \ 10.86 , 10.8 , 10.72 \" ivbias10 = strtoreal(colshape(colshape(tokens(s_ivbias10), 2)[.,1], 3)) s_ivbias20 = " . , . , . \ . , . , . \ 6.46 , . , . \ 6.71 , 5.57 , . \ 6.77 , 5.91 , 4.99 \ 6.76 , 6.08 , 5.35 \ 6.73 , 6.16 , 5.56 \ 6.69 , 6.20 , 5.69 \ 6.65 , 6.22 , 5.78 \ 6.61 , 6.23 , 5.83 \ 6.56 , 6.23 , 5.87 \ 6.53 , 6.22 , 5.90 \ 6.49 , 6.21 , 5.92 \ 6.45 , 6.20 , 5.93 \ 6.42 , 6.19 , 5.94 \ 6.39 , 6.17 , 5.94 \ 6.36 , 6.16 , 5.94 \ 6.33 , 6.14 , 5.94 \ 6.31 , 6.13 , 5.94 \ 6.28 , 6.11 , 5.93 \ 6.26 , 6.10 , 5.93 \ 6.24 , 6.08 , 5.92 \ 6.22 , 6.07 , 5.92 \ 6.20 , 6.06 , 5.91 \ 6.18 , 6.05 , 5.90 \ 6.16 , 6.03 , 5.90 \ 6.14 , 6.02 , 5.89 \ 6.13 , 6.01 , 5.88 \ 6.11 , 6.00 , 5.88 \ 6.09 , 5.99 , 5.87 \ 6.08 , 5.98 , 5.87 \ 6.07 , 5.97 , 5.86 \ 6.05 , 5.96 , 5.85 \ 6.04 , 5.95 , 5.85 \ 6.03 , 5.94 , 5.84 \ 6.01 , 5.93 , 5.83 \ 6.00 , 5.92 , 5.83 \ 5.99 , 5.91 , 5.82 \ 5.98 , 5.90 , 5.82 \ 5.97 , 5.89 , 5.81 \ 5.96 , 5.89 , 5.80 \ 5.95 , 5.88 , 5.80 \ 5.94 , 5.87 , 5.79 \ 5.93 , 5.86 , 5.79 \ 5.92 , 5.86 , 5.78 \ 5.91 , 5.85 , 5.78 \ 5.91 , 5.84 , 5.77 \ 5.90 , 5.83 , 5.77 \ 5.89 , 5.83 , 5.76 \ 5.88 , 5.82 , 5.76 \ 5.87 , 5.82 , 5.75 \ 5.87 , 5.81 , 5.75 \ 5.86 , 5.80 , 5.74 \ 5.85 , 5.80 , 5.74 \ 5.85 , 5.79 , 5.73 \ 5.84 , 5.79 , 5.73 \ 5.83 , 5.78 , 5.72 \ 5.83 , 5.78 , 5.72 \ 5.82 , 5.77 , 5.72 \ 5.81 , 5.77 , 5.71 \ 5.81 , 5.76 , 5.71 \ 5.80 , 5.76 , 5.70 \ 5.80 , 5.75 , 5.70 \ 5.79 , 5.75 , 5.70 \ 5.78 , 5.74 , 5.69 \ 5.78 , 5.74 , 5.69 \ 5.77 , 5.73 , 5.68 \ 5.77 , 5.73 , 5.68 \ 5.76 , 5.72 , 5.68 \ 5.76 , 5.72 , 5.67 \ 5.75 , 5.72 , 5.67 \ 5.75 , 5.71 , 5.67 \ 5.75 , 5.71 , 5.66 \ 5.74 , 5.70 , 5.66 \ 5.74 , 5.70 , 5.66 \ 5.73 , 5.70 , 5.65 \ 5.73 , 5.69 , 5.65 \ 5.72 , 5.69 , 5.65 \ 5.72 , 5.68 , 5.65 \ 5.71 , 5.68 , 5.64 \ 5.71 , 5.68 , 5.64 \ 5.71 , 5.67 , 5.64 \ 5.70 , 5.67 , 5.63 \ 5.70 , 5.67 , 5.63 \ 5.70 , 5.66 , 5.63 \ 5.69 , 5.66 , 5.62 \ 5.69 , 5.66 , 5.62 \ 5.68 , 5.65 , 5.62 \ 5.68 , 5.65 , 5.62 \ 5.68 , 5.65 , 5.61 \ 5.67 , 5.65 , 5.61 \ 5.67 , 5.64 , 5.61 \ 5.67 , 5.64 , 5.61 \ 5.66 , 5.64 , 5.60 \ 5.66 , 5.63 , 5.60 \ 5.66 , 5.63 , 5.60 \ 5.65 , 5.63 , 5.60 \ 5.65 , 5.63 , 5.59 \ 5.65 , 5.62 , 5.59 \ 5.65 , 5.62 , 5.59 \" ivbias20 = strtoreal(colshape(colshape(tokens(s_ivbias20), 2)[.,1], 3)) s_ivbias30 = " . , . , . \ . , . , . \ 5.39 , . , . \ 5.34 , 4.73 , . \ 5.25 , 4.79 , 4.30 \ 5.15 , 4.78 , 4.40 \ 5.07 , 4.76 , 4.44 \ 4.99 , 4.73 , 4.46 \ 4.92 , 4.69 , 4.46 \ 4.86 , 4.66 , 4.45 \ 4.80 , 4.62 , 4.44 \ 4.75 , 4.59 , 4.42 \ 4.71 , 4.56 , 4.41 \ 4.67 , 4.53 , 4.39 \ 4.63 , 4.50 , 4.37 \ 4.59 , 4.48 , 4.36 \ 4.56 , 4.45 , 4.34 \ 4.53 , 4.43 , 4.32 \ 4.51 , 4.41 , 4.31 \ 4.48 , 4.39 , 4.29 \ 4.46 , 4.37 , 4.28 \ 4.43 , 4.35 , 4.27 \ 4.41 , 4.33 , 4.25 \ 4.39 , 4.32 , 4.24 \ 4.37 , 4.30 , 4.23 \ 4.35 , 4.29 , 4.21 \ 4.34 , 4.27 , 4.20 \ 4.32 , 4.26 , 4.19 \ 4.31 , 4.24 , 4.18 \ 4.29 , 4.23 , 4.17 \ 4.28 , 4.22 , 4.16 \ 4.26 , 4.21 , 4.15 \ 4.25 , 4.20 , 4.14 \ 4.24 , 4.19 , 4.13 \ 4.23 , 4.18 , 4.13 \ 4.22 , 4.17 , 4.12 \ 4.20 , 4.16 , 4.11 \ 4.19 , 4.15 , 4.10 \ 4.18 , 4.14 , 4.09 \ 4.17 , 4.13 , 4.09 \ 4.16 , 4.12 , 4.08 \ 4.15 , 4.11 , 4.07 \ 4.15 , 4.11 , 4.07 \ 4.14 , 4.10 , 4.06 \ 4.13 , 4.09 , 4.05 \ 4.12 , 4.08 , 4.05 \ 4.11 , 4.08 , 4.04 \ 4.11 , 4.07 , 4.03 \ 4.10 , 4.06 , 4.03 \ 4.09 , 4.06 , 4.02 \ 4.08 , 4.05 , 4.02 \ 4.08 , 4.05 , 4.01 \ 4.07 , 4.04 , 4.01 \ 4.06 , 4.03 , 4.00 \ 4.06 , 4.03 , 4.00 \ 4.05 , 4.02 , 3.99 \ 4.05 , 4.02 , 3.99 \ 4.04 , 4.01 , 3.98 \ 4.04 , 4.01 , 3.98 \ 4.03 , 4.00 , 3.97 \ 4.02 , 4.00 , 3.97 \ 4.02 , 3.99 , 3.96 \ 4.01 , 3.99 , 3.96 \ 4.01 , 3.98 , 3.96 \ 4.00 , 3.98 , 3.95 \ 4.00 , 3.97 , 3.95 \ 3.99 , 3.97 , 3.94 \ 3.99 , 3.97 , 3.94 \ 3.99 , 3.96 , 3.94 \ 3.98 , 3.96 , 3.93 \ 3.98 , 3.95 , 3.93 \ 3.97 , 3.95 , 3.93 \ 3.97 , 3.95 , 3.92 \ 3.96 , 3.94 , 3.92 \ 3.96 , 3.94 , 3.92 \ 3.96 , 3.93 , 3.91 \ 3.95 , 3.93 , 3.91 \ 3.95 , 3.93 , 3.91 \ 3.95 , 3.92 , 3.90 \ 3.94 , 3.92 , 3.90 \ 3.94 , 3.92 , 3.90 \ 3.93 , 3.91 , 3.89 \ 3.93 , 3.91 , 3.89 \ 3.93 , 3.91 , 3.89 \ 3.92 , 3.91 , 3.89 \ 3.92 , 3.90 , 3.88 \ 3.92 , 3.90 , 3.88 \ 3.91 , 3.90 , 3.88 \ 3.91 , 3.89 , 3.87 \ 3.91 , 3.89 , 3.87 \ 3.91 , 3.89 , 3.87 \ 3.90 , 3.89 , 3.87 \ 3.90 , 3.88 , 3.86 \ 3.90 , 3.88 , 3.86 \ 3.89 , 3.88 , 3.86 \ 3.89 , 3.87 , 3.86 \ 3.89 , 3.87 , 3.85 \ 3.89 , 3.87 , 3.85 \ 3.88 , 3.87 , 3.85 \ 3.88 , 3.86 , 3.85 \" ivbias30 = strtoreal(colshape(colshape(tokens(s_ivbias30), 2)[.,1], 3)) s_ivsize10 = "16.38 , . \ 19.93 , 7.03 \ 22.3 , 13.43 \ 24.58 , 16.87 \ 26.87 , 19.45 \ 29.18 , 21.68 \ 31.5 , 23.72 \ 33.84 , 25.64 \ 36.19 , 27.51 \ 38.54 , 29.32 \ 40.9 , 31.11 \ 43.27 , 32.88 \ 45.64 , 34.62 \ 48.01 , 36.36 \ 50.39 , 38.08 \ 52.77 , 39.8 \ 55.15 , 41.51 \ 57.53 , 43.22 \ 59.92 , 44.92 \ 62.3 , 46.62 \ 64.69 , 48.31 \ 67.07 , 50.01 \ 69.46 , 51.7 \ 71.85 , 53.39 \ 74.24 , 55.07 \ 76.62 , 56.76 \ 79.01 , 58.45 \ 81.4 , 60.13 \ 83.79 , 61.82 \ 86.17 , 63.51 \ 88.56 , 65.19 \ 90.95 , 66.88 \ 93.33 , 68.56 \ 95.72 , 70.25 \ 98.11 , 71.94 \ 100.5 , 73.62 \ 102.88 , 75.31 \ 105.27 , 76.99 \ 107.66 , 78.68 \ 110.04 , 80.37 \ 112.43 , 82.05 \ 114.82 , 83.74 \ 117.21 , 85.42 \ 119.59 , 87.11 \ 121.98 , 88.8 \ 124.37 , 90.48 \ 126.75 , 92.17 \ 129.14 , 93.85 \ 131.53 , 95.54 \ 133.92 , 97.23 \ 136.3 , 98.91 \ 138.69 , 100.6 \ 141.08 , 102.29 \ 143.47 , 103.97 \ 145.85 , 105.66 \ 148.24 , 107.34 \ 150.63 , 109.03 \ 153.01 , 110.72 \ 155.4 , 112.4 \ 157.79 , 114.09 \ 160.18 , 115.77 \ 162.56 , 117.46 \ 164.95 , 119.15 \ 167.34 , 120.83 \ 169.72 , 122.52 \ 172.11 , 124.2 \ 174.5 , 125.89 \ 176.89 , 127.58 \ 179.27 , 129.26 \ 181.66 , 130.95 \ 184.05 , 132.63 \ 186.44 , 134.32 \ 188.82 , 136.01 \ 191.21 , 137.69 \ 193.6 , 139.38 \ 195.98 , 141.07 \ 198.37 , 142.75 \ 200.76 , 144.44 \ 203.15 , 146.12 \ 205.53 , 147.81 \ 207.92 , 149.5 \ 210.31 , 151.18 \ 212.69 , 152.87 \ 215.08 , 154.55 \ 217.47 , 156.24 \ 219.86 , 157.93 \ 222.24 , 159.61 \ 224.63 , 161.3 \ 227.02 , 162.98 \ 229.41 , 164.67 \ 231.79 , 166.36 \ 234.18 , 168.04 \ 236.57 , 169.73 \ 238.95 , 171.41 \ 241.34 , 173.1 \ 243.73 , 174.79 \ 246.12 , 176.47 \ 248.5 , 178.16 \ 250.89 , 179.84 \ 253.28 , 181.53 \" ivsize10 = strtoreal(colshape(colshape(tokens(s_ivsize10), 2)[.,1], 2)) s_ivsize15 = "8.96 , . \ 11.59 , 4.58 \ 12.83 , 8.18 \ 13.96 , 9.93 \ 15.09 , 11.22 \ 16.23 , 12.33 \ 17.38 , 13.34 \ 18.54 , 14.31 \ 19.71 , 15.24 \ 20.88 , 16.16 \ 22.06 , 17.06 \ 23.24 , 17.95 \ 24.42 , 18.84 \ 25.61 , 19.72 \ 26.80 , 20.60 \ 27.99 , 21.48 \ 29.19 , 22.35 \ 30.38 , 23.22 \ 31.58 , 24.09 \ 32.77 , 24.96 \ 33.97 , 25.82 \ 35.17 , 26.69 \ 36.37 , 27.56 \ 37.57 , 28.42 \ 38.77 , 29.29 \ 39.97 , 30.15 \ 41.17 , 31.02 \ 42.37 , 31.88 \ 43.57 , 32.74 \ 44.78 , 33.61 \ 45.98 , 34.47 \ 47.18 , 35.33 \ 48.38 , 36.19 \ 49.59 , 37.06 \ 50.79 , 37.92 \ 51.99 , 38.78 \ 53.19 , 39.64 \ 54.40 , 40.50 \ 55.60 , 41.37 \ 56.80 , 42.23 \ 58.01 , 43.09 \ 59.21 , 43.95 \ 60.41 , 44.81 \ 61.61 , 45.68 \ 62.82 , 46.54 \ 64.02 , 47.40 \ 65.22 , 48.26 \ 66.42 , 49.12 \ 67.63 , 49.99 \ 68.83 , 50.85 \ 70.03 , 51.71 \ 71.24 , 52.57 \ 72.44 , 53.43 \ 73.64 , 54.30 \ 74.84 , 55.16 \ 76.05 , 56.02 \ 77.25 , 56.88 \ 78.45 , 57.74 \ 79.66 , 58.61 \ 80.86 , 59.47 \ 82.06 , 60.33 \ 83.26 , 61.19 \ 84.47 , 62.05 \ 85.67 , 62.92 \ 86.87 , 63.78 \ 88.07 , 64.64 \ 89.28 , 65.50 \ 90.48 , 66.36 \ 91.68 , 67.22 \ 92.89 , 68.09 \ 94.09 , 68.95 \ 95.29 , 69.81 \ 96.49 , 70.67 \ 97.70 , 71.53 \ 98.90 , 72.40 \ 100.10 , 73.26 \ 101.30 , 74.12 \ 102.51 , 74.98 \ 103.71 , 75.84 \ 104.91 , 76.71 \ 106.12 , 77.57 \ 107.32 , 78.43 \ 108.52 , 79.29 \ 109.72 , 80.15 \ 110.93 , 81.02 \ 112.13 , 81.88 \ 113.33 , 82.74 \ 114.53 , 83.60 \ 115.74 , 84.46 \ 116.94 , 85.33 \ 118.14 , 86.19 \ 119.35 , 87.05 \ 120.55 , 87.91 \ 121.75 , 88.77 \ 122.95 , 89.64 \ 124.16 , 90.50 \ 125.36 , 91.36 \ 126.56 , 92.22 \ 127.76 , 93.08 \ 128.97 , 93.95 \" ivsize15 = strtoreal(colshape(colshape(tokens(s_ivsize15), 2)[.,1], 2)) s_ivsize20 = " 6.66 , . \ 8.75 , 3.95 \ 9.54 , 6.40 \ 10.26 , 7.54 \ 10.98 , 8.38 \ 11.72 , 9.10 \ 12.48 , 9.77 \ 13.24 , 10.41 \ 14.01 , 11.03 \ 14.78 , 11.65 \ 15.56 , 12.25 \ 16.35 , 12.86 \ 17.14 , 13.45 \ 17.93 , 14.05 \ 18.72 , 14.65 \ 19.51 , 15.24 \ 20.31 , 15.83 \ 21.10 , 16.42 \ 21.90 , 17.02 \ 22.70 , 17.61 \ 23.50 , 18.20 \ 24.30 , 18.79 \ 25.10 , 19.38 \ 25.90 , 19.97 \ 26.71 , 20.56 \ 27.51 , 21.15 \ 28.31 , 21.74 \ 29.12 , 22.33 \ 29.92 , 22.92 \ 30.72 , 23.51 \ 31.53 , 24.10 \ 32.33 , 24.69 \ 33.14 , 25.28 \ 33.94 , 25.87 \ 34.75 , 26.46 \ 35.55 , 27.05 \ 36.36 , 27.64 \ 37.17 , 28.23 \ 37.97 , 28.82 \ 38.78 , 29.41 \ 39.58 , 30.00 \ 40.39 , 30.59 \ 41.20 , 31.18 \ 42.00 , 31.77 \ 42.81 , 32.36 \ 43.62 , 32.95 \ 44.42 , 33.54 \ 45.23 , 34.13 \ 46.03 , 34.72 \ 46.84 , 35.31 \ 47.65 , 35.90 \ 48.45 , 36.49 \ 49.26 , 37.08 \ 50.06 , 37.67 \ 50.87 , 38.26 \ 51.68 , 38.85 \ 52.48 , 39.44 \ 53.29 , 40.02 \ 54.09 , 40.61 \ 54.90 , 41.20 \ 55.71 , 41.79 \ 56.51 , 42.38 \ 57.32 , 42.97 \ 58.13 , 43.56 \ 58.93 , 44.15 \ 59.74 , 44.74 \ 60.54 , 45.33 \ 61.35 , 45.92 \ 62.16 , 46.51 \ 62.96 , 47.10 \ 63.77 , 47.69 \ 64.57 , 48.28 \ 65.38 , 48.87 \ 66.19 , 49.46 \ 66.99 , 50.05 \ 67.80 , 50.64 \ 68.60 , 51.23 \ 69.41 , 51.82 \ 70.22 , 52.41 \ 71.02 , 53.00 \ 71.83 , 53.59 \ 72.64 , 54.18 \ 73.44 , 54.77 \ 74.25 , 55.36 \ 75.05 , 55.95 \ 75.86 , 56.54 \ 76.67 , 57.13 \ 77.47 , 57.72 \ 78.28 , 58.31 \ 79.08 , 58.90 \ 79.89 , 59.49 \ 80.70 , 60.08 \ 81.50 , 60.67 \ 82.31 , 61.26 \ 83.12 , 61.85 \ 83.92 , 62.44 \ 84.73 , 63.03 \ 85.53 , 63.62 \ 86.34 , 64.21 \ 87.15 , 64.80 \" ivsize20 = strtoreal(colshape(colshape(tokens(s_ivsize20), 2)[.,1], 2)) s_ivsize25 = " 5.53 , . \ 7.25 , 3.63 \ 7.80 , 5.45 \ 8.31 , 6.28 \ 8.84 , 6.89 \ 9.38 , 7.42 \ 9.93 , 7.91 \ 10.50 , 8.39 \ 11.07 , 8.85 \ 11.65 , 9.31 \ 12.23 , 9.77 \ 12.82 , 10.22 \ 13.41 , 10.68 \ 14.00 , 11.13 \ 14.60 , 11.58 \ 15.19 , 12.03 \ 15.79 , 12.49 \ 16.39 , 12.94 \ 16.99 , 13.39 \ 17.60 , 13.84 \ 18.20 , 14.29 \ 18.80 , 14.74 \ 19.41 , 15.19 \ 20.01 , 15.64 \ 20.61 , 16.10 \ 21.22 , 16.55 \ 21.83 , 17.00 \ 22.43 , 17.45 \ 23.04 , 17.90 \ 23.65 , 18.35 \ 24.25 , 18.81 \ 24.86 , 19.26 \ 25.47 , 19.71 \ 26.08 , 20.16 \ 26.68 , 20.61 \ 27.29 , 21.06 \ 27.90 , 21.52 \ 28.51 , 21.97 \ 29.12 , 22.42 \ 29.73 , 22.87 \ 30.33 , 23.32 \ 30.94 , 23.78 \ 31.55 , 24.23 \ 32.16 , 24.68 \ 32.77 , 25.13 \ 33.38 , 25.58 \ 33.99 , 26.04 \ 34.60 , 26.49 \ 35.21 , 26.94 \ 35.82 , 27.39 \ 36.43 , 27.85 \ 37.04 , 28.30 \ 37.65 , 28.75 \ 38.25 , 29.20 \ 38.86 , 29.66 \ 39.47 , 30.11 \ 40.08 , 30.56 \ 40.69 , 31.01 \ 41.30 , 31.47 \ 41.91 , 31.92 \ 42.52 , 32.37 \ 43.13 , 32.82 \ 43.74 , 33.27 \ 44.35 , 33.73 \ 44.96 , 34.18 \ 45.57 , 34.63 \ 46.18 , 35.08 \ 46.78 , 35.54 \ 47.39 , 35.99 \ 48.00 , 36.44 \ 48.61 , 36.89 \ 49.22 , 37.35 \ 49.83 , 37.80 \ 50.44 , 38.25 \ 51.05 , 38.70 \ 51.66 , 39.16 \ 52.27 , 39.61 \ 52.88 , 40.06 \ 53.49 , 40.51 \ 54.10 , 40.96 \ 54.71 , 41.42 \ 55.32 , 41.87 \ 55.92 , 42.32 \ 56.53 , 42.77 \ 57.14 , 43.23 \ 57.75 , 43.68 \ 58.36 , 44.13 \ 58.97 , 44.58 \ 59.58 , 45.04 \ 60.19 , 45.49 \ 60.80 , 45.94 \ 61.41 , 46.39 \ 62.02 , 46.85 \ 62.63 , 47.30 \ 63.24 , 47.75 \ 63.85 , 48.20 \ 64.45 , 48.65 \ 65.06 , 49.11 \ 65.67 , 49.56 \ 66.28 , 50.01 \" ivsize25 = strtoreal(colshape(colshape(tokens(s_ivsize25), 2)[.,1], 2)) s_fullrel5 = " 24.09 , . \ 13.46 , 15.50 \ 9.61 , 10.83 \ 7.63 , 8.53 \ 6.42 , 7.16 \ 5.61 , 6.24 \ 5.02 , 5.59 \ 4.58 , 5.10 \ 4.23 , 4.71 \ 3.96 , 4.41 \ 3.73 , 4.15 \ 3.54 , 3.94 \ 3.38 , 3.76 \ 3.24 , 3.60 \ 3.12 , 3.47 \ 3.01 , 3.35 \ 2.92 , 3.24 \ 2.84 , 3.15 \ 2.76 , 3.06 \ 2.69 , 2.98 \ 2.63 , 2.91 \ 2.58 , 2.85 \ 2.52 , 2.79 \ 2.48 , 2.73 \ 2.43 , 2.68 \ 2.39 , 2.63 \ 2.36 , 2.59 \ 2.32 , 2.55 \ 2.29 , 2.51 \ 2.26 , 2.47 \ 2.23 , 2.44 \ 2.20 , 2.41 \ 2.18 , 2.37 \ 2.16 , 2.35 \ 2.13 , 2.32 \ 2.11 , 2.29 \ 2.09 , 2.27 \ 2.07 , 2.24 \ 2.05 , 2.22 \ 2.04 , 2.20 \ 2.02 , 2.18 \ 2.00 , 2.16 \ 1.99 , 2.14 \ 1.97 , 2.12 \ 1.96 , 2.10 \ 1.94 , 2.09 \ 1.93 , 2.07 \ 1.92 , 2.05 \ 1.91 , 2.04 \ 1.89 , 2.02 \ 1.88 , 2.01 \ 1.87 , 2.00 \ 1.86 , 1.98 \ 1.85 , 1.97 \ 1.84 , 1.96 \ 1.83 , 1.95 \ 1.82 , 1.94 \ 1.81 , 1.92 \ 1.80 , 1.91 \ 1.79 , 1.90 \ 1.79 , 1.89 \ 1.78 , 1.88 \ 1.77 , 1.87 \ 1.76 , 1.87 \ 1.75 , 1.86 \ 1.75 , 1.85 \ 1.74 , 1.84 \ 1.73 , 1.83 \ 1.72 , 1.83 \ 1.72 , 1.82 \ 1.71 , 1.81 \ 1.70 , 1.80 \ 1.70 , 1.80 \ 1.69 , 1.79 \ 1.68 , 1.79 \ 1.68 , 1.78 \ 1.67 , 1.77 \ 1.67 , 1.77 \ 1.66 , 1.76 \ 1.65 , 1.76 \ 1.65 , 1.75 \ 1.64 , 1.75 \ 1.64 , 1.74 \ 1.63 , 1.74 \ 1.63 , 1.73 \ 1.62 , 1.73 \ 1.61 , 1.73 \ 1.61 , 1.72 \ 1.60 , 1.72 \ 1.60 , 1.71 \ 1.59 , 1.71 \ 1.59 , 1.71 \ 1.58 , 1.71 \ 1.58 , 1.70 \ 1.57 , 1.70 \ 1.57 , 1.70 \ 1.56 , 1.69 \ 1.56 , 1.69 \ 1.55 , 1.69 \ 1.55 , 1.69 )" fullrel5 = strtoreal(colshape(colshape(tokens(s_fullrel5), 2)[.,1], 2)) s_fullrel10 = " 19.36 , . \ 10.89 , 12.55 \ 7.90 , 8.96 \ 6.37 , 7.15 \ 5.44 , 6.07 \ 4.81 , 5.34 \ 4.35 , 4.82 \ 4.01 , 4.43 \ 3.74 , 4.12 \ 3.52 , 3.87 \ 3.34 , 3.67 \ 3.19 , 3.49 \ 3.06 , 3.35 \ 2.95 , 3.22 \ 2.85 , 3.11 \ 2.76 , 3.01 \ 2.69 , 2.92 \ 2.62 , 2.84 \ 2.56 , 2.77 \ 2.50 , 2.71 \ 2.45 , 2.65 \ 2.40 , 2.60 \ 2.36 , 2.55 \ 2.32 , 2.50 \ 2.28 , 2.46 \ 2.24 , 2.42 \ 2.21 , 2.38 \ 2.18 , 2.35 \ 2.15 , 2.31 \ 2.12 , 2.28 \ 2.10 , 2.25 \ 2.07 , 2.23 \ 2.05 , 2.20 \ 2.03 , 2.17 \ 2.01 , 2.15 \ 1.99 , 2.13 \ 1.97 , 2.11 \ 1.95 , 2.09 \ 1.93 , 2.07 \ 1.92 , 2.05 \ 1.90 , 2.03 \ 1.88 , 2.01 \ 1.87 , 2.00 \ 1.86 , 1.98 \ 1.84 , 1.96 \ 1.83 , 1.95 \ 1.82 , 1.93 \ 1.81 , 1.92 \ 1.79 , 1.91 \ 1.78 , 1.89 \ 1.77 , 1.88 \ 1.76 , 1.87 \ 1.75 , 1.86 \ 1.74 , 1.85 \ 1.73 , 1.84 \ 1.72 , 1.83 \ 1.71 , 1.82 \ 1.70 , 1.81 \ 1.70 , 1.80 \ 1.69 , 1.79 \ 1.68 , 1.78 \ 1.67 , 1.77 \ 1.67 , 1.76 \ 1.66 , 1.75 \ 1.65 , 1.75 \ 1.64 , 1.74 \ 1.64 , 1.73 \ 1.63 , 1.72 \ 1.63 , 1.72 \ 1.62 , 1.71 \ 1.61 , 1.70 \ 1.61 , 1.70 \ 1.60 , 1.69 \ 1.60 , 1.68 \ 1.59 , 1.68 \ 1.59 , 1.67 \ 1.58 , 1.67 \ 1.58 , 1.66 \ 1.57 , 1.66 \ 1.57 , 1.65 \ 1.56 , 1.65 \ 1.56 , 1.64 \ 1.56 , 1.64 \ 1.55 , 1.63 \ 1.55 , 1.63 \ 1.54 , 1.62 \ 1.54 , 1.62 \ 1.54 , 1.62 \ 1.53 , 1.61 \ 1.53 , 1.61 \ 1.53 , 1.61 \ 1.52 , 1.60 \ 1.52 , 1.60 \ 1.52 , 1.60 \ 1.52 , 1.59 \ 1.51 , 1.59 \ 1.51 , 1.59 \ 1.51 , 1.59 \ 1.51 , 1.58 \ 1.50 , 1.58 )" fullrel10 = strtoreal(colshape(colshape(tokens(s_fullrel10), 2)[.,1], 2)) s_fullrel20 = " 15.64 , . \ 9.00 , 9.72 \ 6.61 , 7.18 \ 5.38 , 5.85 \ 4.62 , 5.04 \ 4.11 , 4.48 \ 3.75 , 4.08 \ 3.47 , 3.77 \ 3.25 , 3.53 \ 3.07 , 3.33 \ 2.92 , 3.17 \ 2.80 , 3.04 \ 2.70 , 2.92 \ 2.61 , 2.82 \ 2.53 , 2.73 \ 2.46 , 2.65 \ 2.39 , 2.58 \ 2.34 , 2.52 \ 2.29 , 2.46 \ 2.24 , 2.41 \ 2.20 , 2.36 \ 2.16 , 2.32 \ 2.13 , 2.28 \ 2.10 , 2.24 \ 2.06 , 2.21 \ 2.04 , 2.18 \ 2.01 , 2.15 \ 1.99 , 2.12 \ 1.96 , 2.09 \ 1.94 , 2.07 \ 1.92 , 2.04 \ 1.90 , 2.02 \ 1.88 , 2.00 \ 1.87 , 1.98 \ 1.85 , 1.96 \ 1.83 , 1.94 \ 1.82 , 1.93 \ 1.80 , 1.91 \ 1.79 , 1.89 \ 1.78 , 1.88 \ 1.76 , 1.86 \ 1.75 , 1.85 \ 1.74 , 1.84 \ 1.73 , 1.82 \ 1.72 , 1.81 \ 1.71 , 1.80 \ 1.70 , 1.79 \ 1.69 , 1.78 \ 1.68 , 1.77 \ 1.67 , 1.76 \ 1.66 , 1.75 \ 1.65 , 1.74 \ 1.65 , 1.73 \ 1.64 , 1.72 \ 1.63 , 1.71 \ 1.62 , 1.70 \ 1.62 , 1.69 \ 1.61 , 1.68 \ 1.60 , 1.68 \ 1.60 , 1.67 \ 1.59 , 1.66 \ 1.58 , 1.65 \ 1.58 , 1.65 \ 1.57 , 1.64 \ 1.57 , 1.63 \ 1.56 , 1.63 \ 1.56 , 1.62 \ 1.55 , 1.62 \ 1.55 , 1.61 \ 1.54 , 1.60 \ 1.54 , 1.60 \ 1.53 , 1.59 \ 1.53 , 1.59 \ 1.52 , 1.58 \ 1.52 , 1.58 \ 1.51 , 1.57 \ 1.51 , 1.57 \ 1.51 , 1.56 \ 1.50 , 1.56 \ 1.50 , 1.56 \ 1.49 , 1.55 \ 1.49 , 1.55 \ 1.49 , 1.54 \ 1.48 , 1.54 \ 1.48 , 1.54 \ 1.48 , 1.53 \ 1.47 , 1.53 \ 1.47 , 1.53 \ 1.47 , 1.52 \ 1.46 , 1.52 \ 1.46 , 1.52 \ 1.46 , 1.51 \ 1.46 , 1.51 \ 1.45 , 1.51 \ 1.45 , 1.50 \ 1.45 , 1.50 \ 1.45 , 1.50 \ 1.44 , 1.50 \ 1.44 , 1.49 \ 1.44 , 1.49 )" fullrel20 = strtoreal(colshape(colshape(tokens(s_fullrel20), 2)[.,1], 2)) s_fullrel30 = " 12.71 , . \ 7.49 , 8.03 \ 5.60 , 6.15 \ 4.63 , 5.10 \ 4.03 , 4.44 \ 3.63 , 3.98 \ 3.33 , 3.65 \ 3.11 , 3.39 \ 2.93 , 3.19 \ 2.79 , 3.02 \ 2.67 , 2.88 \ 2.57 , 2.77 \ 2.48 , 2.67 \ 2.41 , 2.58 \ 2.34 , 2.51 \ 2.28 , 2.44 \ 2.23 , 2.38 \ 2.18 , 2.33 \ 2.14 , 2.28 \ 2.10 , 2.23 \ 2.07 , 2.19 \ 2.04 , 2.16 \ 2.01 , 2.12 \ 1.98 , 2.09 \ 1.95 , 2.06 \ 1.93 , 2.03 \ 1.90 , 2.01 \ 1.88 , 1.98 \ 1.86 , 1.96 \ 1.84 , 1.94 \ 1.83 , 1.92 \ 1.81 , 1.90 \ 1.79 , 1.88 \ 1.78 , 1.87 \ 1.76 , 1.85 \ 1.75 , 1.83 \ 1.74 , 1.82 \ 1.72 , 1.80 \ 1.71 , 1.79 \ 1.70 , 1.78 \ 1.69 , 1.77 \ 1.68 , 1.75 \ 1.67 , 1.74 \ 1.66 , 1.73 \ 1.65 , 1.72 \ 1.64 , 1.71 \ 1.63 , 1.70 \ 1.62 , 1.69 \ 1.61 , 1.68 \ 1.60 , 1.67 \ 1.60 , 1.66 \ 1.59 , 1.66 \ 1.58 , 1.65 \ 1.57 , 1.64 \ 1.57 , 1.63 \ 1.56 , 1.63 \ 1.55 , 1.62 \ 1.55 , 1.61 \ 1.54 , 1.61 \ 1.54 , 1.60 \ 1.53 , 1.59 \ 1.53 , 1.59 \ 1.52 , 1.58 \ 1.51 , 1.57 \ 1.51 , 1.57 \ 1.50 , 1.56 \ 1.50 , 1.56 \ 1.50 , 1.55 \ 1.49 , 1.55 \ 1.49 , 1.54 \ 1.48 , 1.54 \ 1.48 , 1.53 \ 1.47 , 1.53 \ 1.47 , 1.52 \ 1.47 , 1.52 \ 1.46 , 1.52 \ 1.46 , 1.51 \ 1.46 , 1.51 \ 1.45 , 1.50 \ 1.45 , 1.50 \ 1.45 , 1.50 \ 1.44 , 1.49 \ 1.44 , 1.49 \ 1.44 , 1.48 \ 1.43 , 1.48 \ 1.43 , 1.48 \ 1.43 , 1.47 \ 1.43 , 1.47 \ 1.42 , 1.47 \ 1.42 , 1.47 \ 1.42 , 1.46 \ 1.42 , 1.46 \ 1.41 , 1.46 \ 1.41 , 1.45 \ 1.41 , 1.45 \ 1.41 , 1.45 \ 1.41 , 1.45 \ 1.40 , 1.44 \ 1.40 , 1.44 \ 1.40 , 1.44 \" fullrel30 = strtoreal(colshape(colshape(tokens(s_fullrel30), 2)[.,1], 2)) s_fullmax5 = " 23.81 , . \ 12.38 , 14.19 \ 8.66 , 10.00 \ 6.81 , 7.88 \ 5.71 , 6.60 \ 4.98 , 5.74 \ 4.45 , 5.13 \ 4.06 , 4.66 \ 3.76 , 4.30 \ 3.51 , 4.01 \ 3.31 , 3.77 \ 3.15 , 3.57 \ 3.00 , 3.41 \ 2.88 , 3.26 \ 2.78 , 3.13 \ 2.69 , 3.02 \ 2.61 , 2.92 \ 2.53 , 2.84 \ 2.47 , 2.76 \ 2.41 , 2.69 \ 2.36 , 2.62 \ 2.31 , 2.56 \ 2.27 , 2.51 \ 2.23 , 2.46 \ 2.19 , 2.42 \ 2.15 , 2.37 \ 2.12 , 2.33 \ 2.09 , 2.30 \ 2.07 , 2.26 \ 2.04 , 2.23 \ 2.02 , 2.20 \ 1.99 , 2.17 \ 1.97 , 2.14 \ 1.95 , 2.12 \ 1.93 , 2.10 \ 1.91 , 2.07 \ 1.90 , 2.05 \ 1.88 , 2.03 \ 1.87 , 2.01 \ 1.85 , 1.99 \ 1.84 , 1.98 \ 1.82 , 1.96 \ 1.81 , 1.94 \ 1.80 , 1.93 \ 1.79 , 1.91 \ 1.78 , 1.90 \ 1.76 , 1.88 \ 1.75 , 1.87 \ 1.74 , 1.86 \ 1.73 , 1.85 \ 1.73 , 1.83 \ 1.72 , 1.82 \ 1.71 , 1.81 \ 1.70 , 1.80 \ 1.69 , 1.79 \ 1.68 , 1.78 \ 1.68 , 1.77 \ 1.67 , 1.76 \ 1.66 , 1.75 \ 1.65 , 1.74 \ 1.65 , 1.74 \ 1.64 , 1.73 \ 1.63 , 1.72 \ 1.63 , 1.71 \ 1.62 , 1.70 \ 1.62 , 1.70 \ 1.61 , 1.69 \ 1.60 , 1.68 \ 1.60 , 1.68 \ 1.59 , 1.67 \ 1.59 , 1.66 \ 1.58 , 1.66 \ 1.58 , 1.65 \ 1.57 , 1.64 \ 1.57 , 1.64 \ 1.56 , 1.63 \ 1.56 , 1.63 \ 1.55 , 1.62 \ 1.55 , 1.62 \ 1.54 , 1.61 \ 1.54 , 1.61 \ 1.53 , 1.60 \ 1.53 , 1.60 \ 1.53 , 1.59 \ 1.52 , 1.59 \ 1.52 , 1.58 \ 1.51 , 1.58 \ 1.51 , 1.57 \ 1.50 , 1.57 \ 1.50 , 1.57 \ 1.50 , 1.56 \ 1.49 , 1.56 \ 1.49 , 1.55 \ 1.49 , 1.55 \ 1.48 , 1.55 \ 1.48 , 1.54 \ 1.47 , 1.54 \ 1.47 , 1.54 \ 1.47 , 1.53 \ 1.46 , 1.53 )" fullmax5 = strtoreal(colshape(colshape(tokens(s_fullmax5), 2)[.,1], 2)) s_fullmax10 = " 19.40 , . \ 10.14 , 11.92 \ 7.18 , 8.39 \ 5.72 , 6.64 \ 4.85 , 5.60 \ 4.27 , 4.90 \ 3.86 , 4.40 \ 3.55 , 4.03 \ 3.31 , 3.73 \ 3.12 , 3.50 \ 2.96 , 3.31 \ 2.83 , 3.15 \ 2.71 , 3.01 \ 2.62 , 2.89 \ 2.53 , 2.79 \ 2.46 , 2.70 \ 2.39 , 2.62 \ 2.33 , 2.55 \ 2.28 , 2.49 \ 2.23 , 2.43 \ 2.19 , 2.38 \ 2.15 , 2.33 \ 2.11 , 2.29 \ 2.08 , 2.25 \ 2.05 , 2.21 \ 2.02 , 2.18 \ 1.99 , 2.14 \ 1.97 , 2.11 \ 1.94 , 2.08 \ 1.92 , 2.06 \ 1.90 , 2.03 \ 1.88 , 2.01 \ 1.86 , 1.99 \ 1.85 , 1.97 \ 1.83 , 1.95 \ 1.81 , 1.93 \ 1.80 , 1.91 \ 1.79 , 1.89 \ 1.77 , 1.88 \ 1.76 , 1.86 \ 1.75 , 1.85 \ 1.74 , 1.83 \ 1.72 , 1.82 \ 1.71 , 1.81 \ 1.70 , 1.80 \ 1.69 , 1.78 \ 1.68 , 1.77 \ 1.67 , 1.76 \ 1.66 , 1.75 \ 1.66 , 1.74 \ 1.65 , 1.73 \ 1.64 , 1.72 \ 1.63 , 1.71 \ 1.62 , 1.70 \ 1.62 , 1.69 \ 1.61 , 1.69 \ 1.60 , 1.68 \ 1.60 , 1.67 \ 1.59 , 1.66 \ 1.58 , 1.65 \ 1.58 , 1.65 \ 1.57 , 1.64 \ 1.57 , 1.63 \ 1.56 , 1.63 \ 1.55 , 1.62 \ 1.55 , 1.61 \ 1.54 , 1.61 \ 1.54 , 1.60 \ 1.53 , 1.60 \ 1.53 , 1.59 \ 1.52 , 1.59 \ 1.52 , 1.58 \ 1.52 , 1.58 \ 1.51 , 1.57 \ 1.51 , 1.57 \ 1.50 , 1.56 \ 1.50 , 1.56 \ 1.49 , 1.55 \ 1.49 , 1.55 \ 1.49 , 1.54 \ 1.48 , 1.54 \ 1.48 , 1.53 \ 1.48 , 1.53 \ 1.47 , 1.53 \ 1.47 , 1.52 \ 1.46 , 1.52 \ 1.46 , 1.51 \ 1.46 , 1.51 \ 1.45 , 1.51 \ 1.45 , 1.50 \ 1.45 , 1.50 \ 1.44 , 1.50 \ 1.44 , 1.49 \ 1.44 , 1.49 \ 1.44 , 1.49 \ 1.43 , 1.48 \ 1.43 , 1.48 \ 1.43 , 1.48 \ 1.42 , 1.48 \ 1.42 , 1.47 )" fullmax10 = strtoreal(colshape(colshape(tokens(s_fullmax10), 2)[.,1], 2)) s_fullmax20 = " 15.39 , . \ 8.16 , 9.41 \ 5.87 , 6.79 \ 4.75 , 5.47 \ 4.08 , 4.66 \ 3.64 , 4.13 \ 3.32 , 3.74 \ 3.08 , 3.45 \ 2.89 , 3.22 \ 2.74 , 3.03 \ 2.62 , 2.88 \ 2.51 , 2.76 \ 2.42 , 2.65 \ 2.35 , 2.56 \ 2.28 , 2.48 \ 2.22 , 2.40 \ 2.17 , 2.34 \ 2.12 , 2.28 \ 2.08 , 2.23 \ 2.04 , 2.19 \ 2.01 , 2.15 \ 1.98 , 2.11 \ 1.95 , 2.07 \ 1.92 , 2.04 \ 1.89 , 2.01 \ 1.87 , 1.98 \ 1.85 , 1.96 \ 1.83 , 1.93 \ 1.81 , 1.91 \ 1.79 , 1.89 \ 1.77 , 1.87 \ 1.76 , 1.85 \ 1.74 , 1.83 \ 1.73 , 1.82 \ 1.72 , 1.80 \ 1.70 , 1.79 \ 1.69 , 1.77 \ 1.68 , 1.76 \ 1.67 , 1.74 \ 1.66 , 1.73 \ 1.65 , 1.72 \ 1.64 , 1.71 \ 1.63 , 1.70 \ 1.62 , 1.69 \ 1.61 , 1.68 \ 1.60 , 1.67 \ 1.59 , 1.66 \ 1.58 , 1.65 \ 1.58 , 1.64 \ 1.57 , 1.63 \ 1.56 , 1.62 \ 1.56 , 1.62 \ 1.55 , 1.61 \ 1.54 , 1.60 \ 1.54 , 1.59 \ 1.53 , 1.59 \ 1.52 , 1.58 \ 1.52 , 1.57 \ 1.51 , 1.57 \ 1.51 , 1.56 \ 1.50 , 1.56 \ 1.50 , 1.55 \ 1.49 , 1.54 \ 1.49 , 1.54 \ 1.48 , 1.53 \ 1.48 , 1.53 \ 1.47 , 1.52 \ 1.47 , 1.52 \ 1.47 , 1.51 \ 1.46 , 1.51 \ 1.46 , 1.51 \ 1.45 , 1.50 \ 1.45 , 1.50 \ 1.45 , 1.49 \ 1.44 , 1.49 \ 1.44 , 1.48 \ 1.44 , 1.48 \ 1.43 , 1.48 \ 1.43 , 1.47 \ 1.43 , 1.47 \ 1.42 , 1.46 \ 1.42 , 1.46 \ 1.42 , 1.46 \ 1.41 , 1.45 \ 1.41 , 1.45 \ 1.41 , 1.45 \ 1.40 , 1.44 \ 1.40 , 1.44 \ 1.40 , 1.44 \ 1.40 , 1.44 \ 1.39 , 1.43 \ 1.39 , 1.43 \ 1.39 , 1.43 \ 1.39 , 1.42 \ 1.38 , 1.42 \ 1.38 , 1.42 \ 1.38 , 1.42 \ 1.38 , 1.41 \ 1.37 , 1.41 \ 1.37 , 1.41 )" fullmax20 = strtoreal(colshape(colshape(tokens(s_fullmax20), 2)[.,1], 2)) s_fullmax30 = " 12.76 , . \ 6.97 , 8.01 \ 5.11 , 5.88 \ 4.19 , 4.78 \ 3.64 , 4.12 \ 3.27 , 3.67 \ 3.00 , 3.35 \ 2.80 , 3.10 \ 2.64 , 2.91 \ 2.52 , 2.76 \ 2.41 , 2.63 \ 2.33 , 2.52 \ 2.25 , 2.43 \ 2.19 , 2.35 \ 2.13 , 2.29 \ 2.08 , 2.22 \ 2.04 , 2.17 \ 2.00 , 2.12 \ 1.96 , 2.08 \ 1.93 , 2.04 \ 1.90 , 2.01 \ 1.87 , 1.97 \ 1.84 , 1.94 \ 1.82 , 1.92 \ 1.80 , 1.89 \ 1.78 , 1.87 \ 1.76 , 1.84 \ 1.74 , 1.82 \ 1.73 , 1.80 \ 1.71 , 1.79 \ 1.70 , 1.77 \ 1.68 , 1.75 \ 1.67 , 1.74 \ 1.66 , 1.72 \ 1.64 , 1.71 \ 1.63 , 1.70 \ 1.62 , 1.68 \ 1.61 , 1.67 \ 1.60 , 1.66 \ 1.59 , 1.65 \ 1.58 , 1.64 \ 1.57 , 1.63 \ 1.57 , 1.62 \ 1.56 , 1.61 \ 1.55 , 1.60 \ 1.54 , 1.59 \ 1.54 , 1.59 \ 1.53 , 1.58 \ 1.52 , 1.57 \ 1.52 , 1.56 \ 1.51 , 1.56 \ 1.50 , 1.55 \ 1.50 , 1.54 \ 1.49 , 1.54 \ 1.49 , 1.53 \ 1.48 , 1.53 \ 1.48 , 1.52 \ 1.47 , 1.51 \ 1.47 , 1.51 \ 1.46 , 1.50 \ 1.46 , 1.50 \ 1.45 , 1.49 \ 1.45 , 1.49 \ 1.44 , 1.48 \ 1.44 , 1.48 \ 1.44 , 1.47 \ 1.43 , 1.47 \ 1.43 , 1.47 \ 1.42 , 1.46 \ 1.42 , 1.46 \ 1.42 , 1.45 \ 1.41 , 1.45 \ 1.41 , 1.45 \ 1.41 , 1.44 \ 1.40 , 1.44 \ 1.40 , 1.44 \ 1.40 , 1.43 \ 1.39 , 1.43 \ 1.39 , 1.43 \ 1.39 , 1.42 \ 1.39 , 1.42 \ 1.38 , 1.42 \ 1.38 , 1.41 \ 1.38 , 1.41 \ 1.37 , 1.41 \ 1.37 , 1.40 \ 1.37 , 1.40 \ 1.37 , 1.40 \ 1.36 , 1.40 \ 1.36 , 1.39 \ 1.36 , 1.39 \ 1.36 , 1.39 \ 1.36 , 1.38 \ 1.35 , 1.38 \ 1.35 , 1.38 \ 1.35 , 1.38 \ 1.35 , 1.37 \ 1.34 , 1.37 \ 1.34 , 1.37 \ 1.34 , 1.37 )" fullmax30 = strtoreal(colshape(colshape(tokens(s_fullmax30), 2)[.,1], 2)) s_limlsize10 = " 16.38 , . \ 8.68 , 7.03 \ 6.46 , 5.44 \ 5.44 , 4.72 \ 4.84 , 4.32 \ 4.45 , 4.06 \ 4.18 , 3.90 \ 3.97 , 3.78 \ 3.81 , 3.70 \ 3.68 , 3.64 \ 3.58 , 3.60 \ 3.50 , 3.58 \ 3.42 , 3.56 \ 3.36 , 3.55 \ 3.31 , 3.54 \ 3.27 , 3.55 \ 3.24 , 3.55 \ 3.20 , 3.56 \ 3.18 , 3.57 \ 3.21 , 3.58 \ 3.39 , 3.59 \ 3.57 , 3.60 \ 3.68 , 3.62 \ 3.75 , 3.64 \ 3.79 , 3.65 \ 3.82 , 3.67 \ 3.85 , 3.74 \ 3.86 , 3.87 \ 3.87 , 4.02 \ 3.88 , 4.12 \ 3.89 , 4.19 \ 3.89 , 4.24 \ 3.90 , 4.27 \ 3.90 , 4.31 \ 3.90 , 4.33 \ 3.90 , 4.36 \ 3.90 , 4.38 \ 3.90 , 4.39 \ 3.90 , 4.41 \ 3.90 , 4.43 \ 3.90 , 4.44 \ 3.90 , 4.45 \ 3.90 , 4.47 \ 3.90 , 4.48 \ 3.90 , 4.49 \ 3.90 , 4.50 \ 3.90 , 4.51 \ 3.90 , 4.52 \ 3.90 , 4.53 \ 3.90 , 4.54 \ 3.90 , 4.55 \ 3.90 , 4.56 \ 3.90 , 4.56 \ 3.90 , 4.57 \ 3.90 , 4.58 \ 3.90 , 4.59 \ 3.90 , 4.59 \ 3.90 , 4.60 \ 3.90 , 4.61 \ 3.90 , 4.61 \ 3.90 , 4.62 \ 3.90 , 4.62 \ 3.90 , 4.63 \ 3.90 , 4.63 \ 3.89 , 4.64 \ 3.89 , 4.64 \ 3.89 , 4.64 \ 3.89 , 4.65 \ 3.89 , 4.65 \ 3.89 , 4.65 \ 3.89 , 4.66 \ 3.89 , 4.66 \ 3.89 , 4.66 \ 3.89 , 4.66 \ 3.88 , 4.66 \ 3.88 , 4.66 \ 3.88 , 4.66 \ 3.88 , 4.66 \ 3.88 , 4.66 \ 3.88 , 4.66 \ 3.88 , 4.66 \ 3.87 , 4.66 \ 3.87 , 4.66 \ 3.87 , 4.66 \ 3.87 , 4.66 \ 3.87 , 4.66 \ 3.86 , 4.65 \ 3.86 , 4.65 \ 3.86 , 4.65 \ 3.86 , 4.64 \ 3.85 , 4.64 \ 3.85 , 4.64 \ 3.85 , 4.63 \ 3.85 , 4.63 \ 3.84 , 4.62 \ 3.84 , 4.62 \ 3.84 , 4.61 \ 3.84 , 4.60 \ 3.83 , 4.60 \ 3.83 , 4.59 )" limlsize10 = strtoreal(colshape(colshape(tokens(s_limlsize10), 2)[.,1], 2)) s_limlsize15 = " 8.96 , . \ 5.33 , 4.58 \ 4.36 , 3.81 \ 3.87 , 3.39 \ 3.56 , 3.13 \ 3.34 , 2.95 \ 3.18 , 2.83 \ 3.04 , 2.73 \ 2.93 , 2.66 \ 2.84 , 2.60 \ 2.76 , 2.55 \ 2.69 , 2.52 \ 2.63 , 2.48 \ 2.57 , 2.46 \ 2.52 , 2.44 \ 2.48 , 2.42 \ 2.44 , 2.41 \ 2.41 , 2.40 \ 2.37 , 2.39 \ 2.34 , 2.38 \ 2.32 , 2.38 \ 2.29 , 2.37 \ 2.27 , 2.37 \ 2.25 , 2.37 \ 2.24 , 2.37 \ 2.22 , 2.38 \ 2.21 , 2.38 \ 2.20 , 2.38 \ 2.19 , 2.39 \ 2.18 , 2.39 \ 2.19 , 2.40 \ 2.22 , 2.41 \ 2.33 , 2.42 \ 2.40 , 2.42 \ 2.45 , 2.43 \ 2.48 , 2.44 \ 2.50 , 2.45 \ 2.52 , 2.54 \ 2.53 , 2.55 \ 2.54 , 2.66 \ 2.55 , 2.73 \ 2.56 , 2.78 \ 2.57 , 2.82 \ 2.57 , 2.85 \ 2.58 , 2.87 \ 2.58 , 2.89 \ 2.58 , 2.91 \ 2.59 , 2.92 \ 2.59 , 2.93 \ 2.59 , 2.94 \ 2.59 , 2.95 \ 2.59 , 2.96 \ 2.60 , 2.97 \ 2.60 , 2.98 \ 2.60 , 2.98 \ 2.60 , 2.99 \ 2.60 , 2.99 \ 2.60 , 3.00 \ 2.60 , 3.00 \ 2.60 , 3.01 \ 2.60 , 3.01 \ 2.60 , 3.02 \ 2.61 , 3.02 \ 2.61 , 3.02 \ 2.61 , 3.03 \ 2.61 , 3.03 \ 2.61 , 3.03 \ 2.61 , 3.03 \ 2.61 , 3.04 \ 2.61 , 3.04 \ 2.61 , 3.04 \ 2.60 , 3.04 \ 2.60 , 3.04 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.60 , 3.05 \ 2.59 , 3.05 \ 2.59 , 3.05 \ 2.59 , 3.05 \ 2.59 , 3.05 \ 2.59 , 3.05 \ 2.59 , 3.04 \ 2.58 , 3.04 \ 2.58 , 3.04 \ 2.58 , 3.04 \ 2.58 , 3.04 \ 2.58 , 3.03 \ 2.57 , 3.03 \ 2.57 , 3.03 \ 2.57 , 3.03 \ 2.57 , 3.02 \ 2.56 , 3.02 \ 2.56 , 3.02 )" limlsize15 = strtoreal(colshape(colshape(tokens(s_limlsize15), 2)[.,1], 2)) s_limlsize20 = " 6.66 , . \ 4.42 , 3.95 \ 3.69 , 3.32 \ 3.30 , 2.99 \ 3.05 , 2.78 \ 2.87 , 2.63 \ 2.73 , 2.52 \ 2.63 , 2.43 \ 2.54 , 2.36 \ 2.46 , 2.30 \ 2.40 , 2.25 \ 2.34 , 2.21 \ 2.29 , 2.17 \ 2.25 , 2.14 \ 2.21 , 2.11 \ 2.18 , 2.09 \ 2.14 , 2.07 \ 2.11 , 2.05 \ 2.09 , 2.03 \ 2.06 , 2.02 \ 2.04 , 2.01 \ 2.02 , 1.99 \ 2.00 , 1.98 \ 1.98 , 1.98 \ 1.96 , 1.97 \ 1.95 , 1.96 \ 1.93 , 1.96 \ 1.92 , 1.95 \ 1.90 , 1.95 \ 1.89 , 1.95 \ 1.88 , 1.94 \ 1.87 , 1.94 \ 1.86 , 1.94 \ 1.85 , 1.94 \ 1.84 , 1.94 \ 1.83 , 1.94 \ 1.82 , 1.94 \ 1.81 , 1.95 \ 1.81 , 1.95 \ 1.80 , 1.95 \ 1.79 , 1.95 \ 1.79 , 1.96 \ 1.78 , 1.96 \ 1.78 , 1.97 \ 1.80 , 1.97 \ 1.87 , 1.98 \ 1.92 , 1.98 \ 1.95 , 1.99 \ 1.97 , 2.00 \ 1.99 , 2.00 \ 2.00 , 2.01 \ 2.01 , 2.09 \ 2.02 , 2.11 \ 2.03 , 2.18 \ 2.04 , 2.23 \ 2.04 , 2.27 \ 2.05 , 2.29 \ 2.05 , 2.31 \ 2.06 , 2.33 \ 2.06 , 2.34 \ 2.07 , 2.35 \ 2.07 , 2.36 \ 2.07 , 2.37 \ 2.08 , 2.38 \ 2.08 , 2.39 \ 2.08 , 2.39 \ 2.08 , 2.40 \ 2.09 , 2.40 \ 2.09 , 2.41 \ 2.09 , 2.41 \ 2.09 , 2.41 \ 2.09 , 2.42 \ 2.09 , 2.42 \ 2.09 , 2.42 \ 2.09 , 2.43 \ 2.10 , 2.43 \ 2.10 , 2.43 \ 2.10 , 2.43 \ 2.10 , 2.44 \ 2.10 , 2.44 \ 2.10 , 2.44 \ 2.10 , 2.44 \ 2.10 , 2.44 \ 2.09 , 2.44 \ 2.09 , 2.44 \ 2.09 , 2.45 \ 2.09 , 2.45 \ 2.09 , 2.45 \ 2.09 , 2.45 \ 2.09 , 2.45 \ 2.09 , 2.45 \ 2.09 , 2.45 \ 2.08 , 2.45 \ 2.08 , 2.45 \ 2.08 , 2.45 \ 2.08 , 2.45 \ 2.08 , 2.45 \ 2.07 , 2.44 \ 2.07 , 2.44 \ 2.07 , 2.44 )" limlsize20 = strtoreal(colshape(colshape(tokens(s_limlsize20), 2)[.,1], 2)) s_limlsize25 = " 5.53 , . \ 3.92 , 3.63 \ 3.32 , 3.09 \ 2.98 , 2.79 \ 2.77 , 2.60 \ 2.61 , 2.46 \ 2.49 , 2.35 \ 2.39 , 2.27 \ 2.32 , 2.20 \ 2.25 , 2.14 \ 2.19 , 2.09 \ 2.14 , 2.05 \ 2.10 , 2.02 \ 2.06 , 1.99 \ 2.03 , 1.96 \ 2.00 , 1.93 \ 1.97 , 1.91 \ 1.94 , 1.89 \ 1.92 , 1.87 \ 1.90 , 1.86 \ 1.88 , 1.84 \ 1.86 , 1.83 \ 1.84 , 1.81 \ 1.83 , 1.80 \ 1.81 , 1.79 \ 1.80 , 1.78 \ 1.78 , 1.77 \ 1.77 , 1.77 \ 1.76 , 1.76 \ 1.75 , 1.75 \ 1.74 , 1.75 \ 1.73 , 1.74 \ 1.72 , 1.73 \ 1.71 , 1.73 \ 1.70 , 1.73 \ 1.69 , 1.72 \ 1.68 , 1.72 \ 1.67 , 1.71 \ 1.67 , 1.71 \ 1.66 , 1.71 \ 1.65 , 1.71 \ 1.65 , 1.71 \ 1.64 , 1.70 \ 1.63 , 1.70 \ 1.63 , 1.70 \ 1.62 , 1.70 \ 1.62 , 1.70 \ 1.61 , 1.70 \ 1.61 , 1.70 \ 1.61 , 1.70 \ 1.60 , 1.70 \ 1.60 , 1.70 \ 1.59 , 1.70 \ 1.59 , 1.70 \ 1.59 , 1.70 \ 1.58 , 1.70 \ 1.58 , 1.71 \ 1.58 , 1.71 \ 1.57 , 1.71 \ 1.59 , 1.71 \ 1.60 , 1.71 \ 1.63 , 1.72 \ 1.65 , 1.72 \ 1.67 , 1.72 \ 1.69 , 1.72 \ 1.70 , 1.76 \ 1.71 , 1.81 \ 1.72 , 1.87 \ 1.73 , 1.91 \ 1.74 , 1.94 \ 1.74 , 1.96 \ 1.75 , 1.98 \ 1.75 , 1.99 \ 1.76 , 2.01 \ 1.76 , 2.02 \ 1.77 , 2.03 \ 1.77 , 2.04 \ 1.78 , 2.04 \ 1.78 , 2.05 \ 1.78 , 2.06 \ 1.79 , 2.06 \ 1.79 , 2.07 \ 1.79 , 2.07 \ 1.79 , 2.08 \ 1.80 , 2.08 \ 1.80 , 2.09 \ 1.80 , 2.09 \ 1.80 , 2.09 \ 1.80 , 2.09 \ 1.80 , 2.10 \ 1.80 , 2.10 \ 1.80 , 2.10 \ 1.80 , 2.10 \ 1.80 , 2.10 \ 1.80 , 2.11 \ 1.80 , 2.11 \ 1.80 , 2.11 \ 1.80 , 2.11 \ 1.80 , 2.11 \ 1.80 , 2.11 )" limlsize25 = strtoreal(colshape(colshape(tokens(s_limlsize25), 2)[.,1], 2)) if (choice == 1) { st_matrix(temp, ivbias5) } else if (choice == 2) { st_matrix(temp, ivbias10) } else if (choice == 3) { st_matrix(temp, ivbias20) } else if (choice == 4) { st_matrix(temp, ivbias30) } else if (choice == 5) { st_matrix(temp, ivsize10) } else if (choice == 6) { st_matrix(temp, ivsize15) } else if (choice == 7) { st_matrix(temp, ivsize20) } else if (choice == 8) { st_matrix(temp, ivsize25) } else if (choice == 9) { st_matrix(temp, fullrel5) } else if (choice == 10) { st_matrix(temp, fullrel10) } else if (choice == 11) { st_matrix(temp, fullrel20) } else if (choice == 12) { st_matrix(temp, fullrel30) } else if (choice == 13) { st_matrix(temp, fullmax5) } else if (choice == 14) { st_matrix(temp, fullmax10) } else if (choice == 15) { st_matrix(temp, fullmax20) } else if (choice == 16) { st_matrix(temp, fullmax30) } else if (choice == 17) { st_matrix(temp, limlsize10) } else if (choice == 18) { st_matrix(temp, limlsize15) } else if (choice == 19) { st_matrix(temp, limlsize20) } else if (choice == 20) { st_matrix(temp, limlsize25) } } // end of program cdsy mata mlib create livreg2, dir(PERSONAL) replace mata mlib add livreg2 *() mata mlib index mata describe using livreg2 end