program define crd version 4.0 local r1=50 global D_n1 "n1" global n1=10 wdctl static D_n1 5 `r1' 10 8 wdctl edit n1 20 `r1' 18 8 global D_xbar1 "xbar1" global xbar1=10 wdctl static D_xbar1 40 `r1' 18 8 wdctl edit xbar1 60 `r1' 24 8 global D_s12 "s1 or s1^2" global s12=10 wdctl static D_s12 85 `r1' 34 8 wdctl edit s12 120 `r1' 24 8 local r1=`r1'+10 global D_n2 "n2" global n2=20 wdctl static D_n2 5 `r1' 10 8 wdctl edit n2 20 `r1' 18 8 global D_xbar2 "xbar2" global xbar2=20 wdctl static D_xbar2 40 `r1' 18 8 wdctl edit xbar2 60 `r1' 24 8 global D_s22 "s2 or s2^2" global s22=20 wdctl static D_s22 85 `r1' 34 8 wdctl edit s22 120 `r1' 24 8 local r1=`r1'+10 global D_n3 "n3" global n3=0 wdctl static D_n3 5 `r1' 10 8 wdctl edit n3 20 `r1' 18 8 global D_xbar3 "xbar3" global xbar3=0 wdctl static D_xbar3 40 `r1' 18 8 wdctl edit xbar3 60 `r1' 24 8 global D_s32 "s3 or s3^2" global s32=0 wdctl static D_s32 85 `r1' 34 8 wdctl edit s32 120 `r1' 24 8 local r1=`r1'+10 global D_n4 "n4" global n4=0 wdctl static D_n4 5 `r1' 10 8 wdctl edit n4 20 `r1' 18 8 global D_xbar4 "xbar4" global xbar4=0 wdctl static D_xbar4 40 `r1' 18 8 wdctl edit xbar4 60 `r1' 24 8 global D_s42 "s4 or s4^2" global s42=0 wdctl static D_s42 85 `r1' 34 8 wdctl edit s42 120 `r1' 24 8 local r1=`r1'+10 global D_n5 "n5" global n5=0 wdctl static D_n5 5 `r1' 10 8 wdctl edit n5 20 `r1' 18 8 global D_xbar5 "xbar5" global xbar5=0 wdctl static D_xbar5 40 `r1' 18 8 wdctl edit xbar5 60 `r1' 24 8 global D_s52 "s5 or s5^2" global s52=0 wdctl static D_s52 85 `r1' 34 8 wdctl edit s52 120 `r1' 24 8 local r1=`r1'+10 global D_n6 "n6" global n6=0 wdctl static D_n6 5 `r1' 10 8 wdctl edit n6 20 `r1' 18 8 global D_xbar6 "xbar6" global xbar6=0 wdctl static D_xbar6 40 `r1' 18 8 wdctl edit xbar6 60 `r1' 24 8 global D_s62 "s6 or s6^2" global s62=0 wdctl static D_s62 85 `r1' 34 8 wdctl edit s62 120 `r1' 24 8 global C_1 "#Treats" global C_3 "2 3 4 5 6" wdctl static C_1 150 50 28 10 global C_2 "2" wdctl ssimple C_2 C_3 180 50 20 60 global C_6 "s s^2" global C_5 "s" wdctl ssimple C_5 C_6 160 120 20 30 wdctl button "Run" 5 160 30 14 D_b1 wdctl button "Close" 40 160 30 14 D_b2 wdctl button "Help" 75 160 30 14 D_b3 global D_b1 "crddr" global D_b2 "exit 1234" global D_b3 "whelp crd" cap noi wdlg "One Way ANOVA" 5 5 220 200 end program define crddr version 4.0 local I=$C_2 local case=1 if "$C_5"=="s^2" { local case=2} local dfb=0 local dfw=0 local ssb=0 local ssw=0 local n=0 local xbar=0 local i=1 while `i' <= `I' { local ni = ${n`i'} if `ni' < 2 { sstopbox stop "ni must be greater than 2" exit } local xbari = ${xbar`i'} local si2 = ${s`i'2} if `si2' < 0 { sstopbox stop "si2 must be positive" exit } local n=`n'+ `ni' local xbar=`xbar'+`ni'*`xbari' local i=`i'+1 } local xbar=`xbar'/`n' local i=1 while `i' <= `I' { local ni = ${n`i'} local xbari = ${xbar`i'} local si2 = ${s`i'2} if `case'==1 {local si2=`si2'^2} local ssb = `ssb' + `ni'*(`xbari'-`xbar')^2 local ssw = `ssw' + (`ni'-1)*`si2' local i=`i'+1 } di " " di " Input Data" di " Sample n_i Mean Std Dev Variance " di "-------------------------------------------------------------- " local i=1 local smin=1000000 local smax=0 while `i' <= `I' { local ni = ${n`i'} local xbari = ${xbar`i'} local si2 = ${s`i'2} if `case'==1 { local si=`si2' local si2=`si'^2} if `case'==2 { local si=sqrt(`si2')} if `si' > `smax' { local smax=`si'} if `si' < `smin' { local smin=`si'} di %5.0f `i' " " %8.0f `ni' " " %14.6f `xbari' " " %14.6f `si' " " %14.6f `si2' local i=`i'+1 } di "--------------------------------------------------------------" di "Overall Mean = " `xbar' ", s_max/s_min = " `smax'/`smin' ", s_P = " sqrt(`ssw'/(`n'-`I')) local dfb = `I'-1 local dfw = `n'-`I' local dft = `n'-1 local sst = `ssb'+`ssw' local msb = `ssb'/`dfb' local msw = `ssw'/`dfw' local mst = `sst'/`dft' local F = `msb'/`msw' local pval = fprob(`dfb',`dfw',`F') di " " di " " di " Analysis of Variance" di " Source df SS MS F Prob > F" di "-------------------------------------------------------------------------" di " Between " %5.0f `dfb' " " %14.6f `ssb' " " %14.6f `msb' " " %10.6f `F' " " %10.4f `pval' di " Within " %5.0f `dfw' " " %14.6f `ssw' " " %14.6f `msw' di "-------------------------------------------------------------------------" di " Total " %5.0f `dft' " " %14.6f `sst' " " %14.6f `mst' end exit