example4.mws

Example 4: Minimum-Length Confidence Intervals for Variances

by Zavan Karian

> restart: with(plots, display): libname:="C:/mylib/statistics",libname: with(stat):

> n := 7: alpha := 0.05:

> UsualL := S^2*(n-1)*( 1/ChisquareP(n-1,alpha/2) - 1/ChisquareP(n-1,1-alpha/2) );

UsualL := 4.433852300*S^2

> f:=ChisquarePDF(n-1,x);

f := 1/16*x^2*exp(-1/2*x)

> eq1 := int(f, x=a..b)=1-alpha;

eq1 := -1/8*b^2*exp(-1/2*b)-1/2*b*exp(-1/2*b)-exp(-...

> eq2:=a^2*subs(x=a,f)=b^2*subs(x=b,f);

eq2 := 1/16*a^4*exp(-1/2*a) = 1/16*b^4*exp(-1/2*b)

> solution := fsolve({eq1,eq2},{a,b},{a=0..n-1, b=n-1..infinity});

solution := {b = 22.74097663, a = 1.623295402}

> assign(%);

> MinimumL := S^2*(n-1)*(1/a-1/b);

MinimumL := 3.432344018*S^2

> 100*(UsualL-MinimumL)/UsualL;

22.58776825

> n := 7:

> UsualL:=(n-1)*(1/ChisquareP(n-1,alpha/2)-1/ChisquareP(n-1,1-alpha/2));

UsualL := 4.433852300

Warning, incomplete string;  use " to end the string

> plot(UsualL, 0.01..0.2, 4.4..4.6);

[Maple Plot]

> f:=ChisquarePDF(n-1,x):

> eq1 := int(f, x=a..b)=1-alpha:

> eq2:=a^2*subs(x=a,f)=b^2*subs(x=b,f):

> MinLenArray := array(1..39):

> for i from 2 to 40 do

> eqns := subs(alpha=0.005*i, {eq1, eq2});
Sol := fsolve(eqns, {a,b}, {a=0..n-1, b=n-1..infinity});

> assign(Sol);

> MinLenArray[i-1] := [0.005*i, (n-1)*(1/a-1/b)];

> a:='a'; b:='b';

> od:

> MinLenList := convert(MinLenArray, list);

MinLenList := [[.10e-1, 3.432344018], [.15e-1, 6*1/...
MinLenList := [[.10e-1, 3.432344018], [.15e-1, 6*1/...
MinLenList := [[.10e-1, 3.432344018], [.15e-1, 6*1/...
MinLenList := [[.10e-1, 3.432344018], [.15e-1, 6*1/...
MinLenList := [[.10e-1, 3.432344018], [.15e-1, 6*1/...

> A := plot(UsualL, 0.01..0.2):

> B:=plot(MinLenList, color=blue):

> # interface(plotdevice=postscript, plotoutput=Fig4);

> display({A,B});

[Maple Plot]

> Improv := [seq([0.005+0.005*i,(value(subs(alpha=0.005+0.005*i,UsualL)-MinLenList[i][2]))], i=1..39)];

Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...
Improv := [[.10e-1, 1.001508282], [.15e-1, 4.433852...

> PercImprov := [seq([0.005+0.005*i, 100*(value(subs(alpha=0.005+0.005*i,UsualL))-MinLenList[i][2])/value(subs(alpha=0.005+0.005*i,UsualL))], i=1..39)];

PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...
PercImprov := [[.10e-1, 22.58776825], [.15e-1, 99.9...

> StandLen := S^2*(n-1)*( 1/ChisquareP(n-1,alpha/2) - 1/ChisquareP(n-1,1-alpha/2) );

StandLen := 4.433852300*S^2

> LFact := subs({alpha=0.05, S=1}, StandLen);

LFact := 4.433852300

> PlotList1 := [seq( [i, value(subs(n=i,LFact))], i=3..15)];

PlotList1 := [[3, 4.433852300], [4, 4.433852300], [...
PlotList1 := [[3, 4.433852300], [4, 4.433852300], [...

> A := plot(PlotList1, color=red): A;

[Maple Plot]

> f := ChisquarePDF(n-1, x);

f := 1/16*x^2*exp(-1/2*x)

> eq1 := int(f, x=a..b)=1-alpha;

eq1 := -1/8*b^2*exp(-1/2*b)-1/2*b*exp(-1/2*b)-exp(-...

> eq2 := a^2*subs(x=a,f) = b^2*subs(x=b,f);

eq2 := 1/16*a^4*exp(-1/2*a) = 1/16*b^4*exp(-1/2*b)

> alpha := 0.05;

alpha := .5e-1

> PlotArray := array(1..13);

PlotArray := array(1 .. 13,[])

> for i from 3 to 15 do

> eqns := subs(n=i, {eq1, eq2});
Sol := fsolve(eqns, {a,b}, {a=0..i-1, b=i-1..infinity});

> assign(Sol);

> PlotArray[i-2] := [i, (i-1)*(1/a-1/b)];

> a:='a'; b:='b';

> od:

> PlotList2 := convert(PlotArray, list);

PlotList2 := [[3, 1.144114673], [4, 1.716172009], [...
PlotList2 := [[3, 1.144114673], [4, 1.716172009], [...

> B:=plot(PlotList2, color=blue):

> display({A,B});

[Maple Plot]

> [seq( [PlotList1[i][1], 100*(PlotList1[i][2] - PlotList2[i][2])/PlotList1[i][2]], i=1..13)];

[[3, 74.19592274], [4, 61.29388412], [5, 48.3918455...
[[3, 74.19592274], [4, 61.29388412], [5, 48.3918455...