local varnum=wordcount("$col_vars $row_vars") //count how many variables are in total di "`varnum'" * change variable names, this is made to use a code found in internet to compute p-values of correlations local c = 1 foreach k in $row_vars $col_vars { rename `k' var`c' local c = `c'+1 } * CREATE THE FOUR MATRICES THAT WILL CONTAIN THE RESULTS matrix C = I(`varnum') //Coef. matrix matrix N = I(`varnum') matrix T= I(`varnum') matrix P= I(`varnum') //P-value matrix forvalues i=1(1)`varnum' { forvalues j=1(1)`i'{ corr var`i' var`j' * GET THE CORRELATION AND RESULTS, IF THERE HAS NOT BEEN ERROR if _rc==0{ * RHO IS THE CORRELATION matrix C[`i',`j']=r(rho) matrix C[`j',`i']=r(rho) * N IS THE NUBMER OF OBSERVATIONS matrix N[`i',`j']=r(N) matrix N[`j',`i']=r(N) * P IS THE P-VALUES matrix P[`i',`j']=2*ttail(r(N)-2,/* */ abs(r(rho))*sqrt(r(N)-2)/sqrt(1-r(rho)^2)) matrix P[`j',`i']=P[`i',`j'] * T IS THE T-STATISTICS matrix T[`i',`j']= abs(r(rho))*sqrt(r(N)-2)/sqrt(1-r(rho)^2) matrix T[`j',`i']=T[`i',`j'] } else{ * IF -COR- HAD AN ERROR, PUT RESULTS TO MISSING matrix C[`i',`j']=. matrix C[`j',`i']=. matrix N[`i',`j']=. matrix N[`j',`i']=. matrix P[`i',`j']=. matrix P[`j',`i']=. matrix T[`i',`j']=. matrix T[`j',`i']=. } * PUT APPROPRIATE VALUES ON THE DIAGONAL matrix C[`i',`i']=1 matrix N[`i',`i']=r(N) matrix P[`i',`i']=. matrix T[`i',`i']=. } } *PRINT RESULTS display as text "sample correlations" matrix list C, format(%6.4f) noheader display as text "number of observations" matrix list N, noheader display as text "t-statistics" matrix list T, noheader display as text "p-values" matrix list P, noheader local c = 1 foreach k in $row_vars $col_vars { rename var`c' `k' local c = `c'+1 }