* Load the Theil textile data set with the DEMO command. ?DEMO * COMPUTING THE POWER OF A TEST * For an OLS regression, calculate a power function for testing the * null hypothesis that the coefficient on log income is one against * a 2-sided alternative. sample 1 17 * Convert data to base 10 logs as implemented by Theil. genr lconsume=log(consume)/2.3026 genr lincome=log(income)/2.3026 genr lprice=log(price)/2.3026 * Run OLS and save the coefficients. Assume these are the true coefficients. ols lconsume lincome lprice / coef=beta * Assume the OLS sigma**2 is the true value. gen1 sig2=\$sig2 sample 1 1 * Set a 5% significance level. genr alpha=.05 * Find the critical value for the rejection of the null hypothesis. distrib alpha / type=f df1=1 df2=14 inverse genr cr=\$crit * Dimension room for 11 values of the power function. dim p 11 b 11 * Turn off the DO-loop echoing of commands. set nodoecho nooutput do #=1,11 * Let the "true" income coefficient (beta:1) vary between .5 and 1.5. * The other coefficients are unchanged. genr beta:1=.4+.1*# * Store the hypothesised values of the income coefficient in the vector b. genr b:#=beta:1 sample 1 17 * Calculate OLS regression results using the "true" beta and sig2. * These results are then used as input for the TEST command that follows. ols lconsume lincome lprice / incoef=beta insig2=sig2 test lincome=1 * Temporary variables available from the TEST command are the * degrees of freedom saved in \$df1 and \$df2 and the chi-square * test statistic saved in \$chi. The latter is used as the * non-centrality parameter. sample 1 1 distrib cr / type=f df1=\$df1 df2=\$df2 c=\$chi cdf=cdf * p is the power (the probability of rejecting the false null hypothesis). genr p:#=1-cdf endo * List the power function sample 1 11 print b p graph p b / lineonly stop