Demonstration of confidence intervals

For posting your own programs to share with others

Moderators: EViews Gareth, EViews Moderator

trubador
Did you use forum search?
Posts: 1520
Joined: Thu Nov 20, 2008 12:04 pm

Demonstration of confidence intervals

Postby trubador » Tue Oct 20, 2015 1:26 pm

Code: Select all

!npop = 1000 'size of the population wfcreate u !npop 'create an unstructured workfile !mu = 5 'population mean !sig = 0.5 'population standard deviation series ypop = !mu + !sig*@rnorm 'hypothetical population !nrep = 100 'number of draws !nsamp = 50 'sample size !alpha = 0.05 'significance level %insmpl = @pagesmpl 'population range %outsmpl = "1 "+@str(!nsamp) 'sample range 'Series objects are bound by the frequency of the workfile if !nrep>!npop then @uiprompt("Number of draws should be less than the population size!") !nrep = 100 endif smpl 1 !nrep 'adjust the page sample series meanval 'create a series to hold the mean of each sample series lbound 'create a series to hold the lower bounds of the confidence intervals series ubound 'create a series to hold the upper bounds of the confidence intervals group confidence 'create a group to store the confidence intervals confidence.add ubound lbound meanval 'add series to the group object %false="" 'create a blank string 'Loop for drawing samples for !i=1 to !nrep ypop.resample(outsmpl=%outsmpl,insmpl=%insmpl,permute,suffix=ysamp) 'sampling meanval(!i) = @mean(ysamp) 'mean values lbound(!i) = @mean(ysamp) - @qnorm(1-!alpha/2)*@stdev(ysamp)/@sqrt(!nsamp) 'lower bound ubound(!i) = @mean(ysamp) + @qnorm(1-!alpha/2)*@stdev(ysamp)/@sqrt(!nsamp) 'upper bound if !mu>ubound(!i) or !mu<lbound(!i,2) then %false=%false+" "+@str(!i) 'false positives (type I errors) endif statusline !i of !nrep 'monitor the progress next %confchart = @getnextname("confchart") 'name the chart !rotate=0 '=1 to rotate the chart if !rotate=1 then freeze({%confchart}) confidence.errbar(rotate) 'generate the chart {%confchart}.draw(line,bottom,color(red),width(1)) 5 'draw the population mean for !j=1 to @wcount(%false) !s = @val(@word(%false,!j)) {%confchart}.draw(shade,left,rgb(230,184,183)) !s 'highlight false positives next else freeze({%confchart}) confidence.errbar {%confchart}.draw(line,left,color(red),width(1)) 5 for !j=1 to @wcount(%false) !s = @val(@word(%false,!j)) {%confchart}.draw(shade,bottom,rgb(230,184,183)) !s next endif %header = "# samples = "+@str(!nrep)+" | # rejects = "+@str(@wcount(%false))+" | sample size = "+@str(!nsamp)+" | moments of sampling distribution = ("+@str(@mean(meanval),"f.2")+","+@str(@stdevp(meanval),"f.3")+")" {%confchart}.addtext(t) {%header} {%confchart}.setupdate(m) 'enables the slider bar show {%confchart} 'display the chart

Return to “Program Repository”

Who is online

Users browsing this forum: No registered users and 1 guest