6278


Sprawozdanie: Estymatory wariancji Łukasz Przybyłek

Przemysław Stankiewicz

Napisać program (w języku Pascal , C lub C++), który ma obliczać wartości estymatorów wariancji dla poniższych danych.(program powinien wczytywać dane z pliku dane.txt, a wyniki swojego działania zapisywać do pliku wyniki.txt

Teoria:

Estymator średniej arytmetycznej:

0x08 graphic

w programie oznaczone jako „wartość srednia”

(procedure ObliczanieXSr;)

Estymator obciążony: Jeśli różnica pomiędzy wartością oczekiwaną rozkładu estymatora a wartością szacowanego parametru jest zależna funkcyjnie od estymatora:

0x08 graphic

to estymator nazywamy obciążonym, zaś samą różnicę nazywamy obciążeniem estymatora.

0x08 graphic

W programie oznaczone jako „s2” (procedure ObliczanieS2;)

Estymator nieobciążony: estymator jest nieobciążony, jeśli wartość oczekiwana rozkładu estymatora jest równa wartości szacowanego parametru:

0x08 graphic

0x08 graphic

W programie oznaczone jako "s2*" (procedure ObliczanieS2Gw;)

Kod Programu: Plik: Dane.txt

0x08 graphic
PROGRAM LiczEstymator;

USES crt;

VAR

a : array [1..13,1..8] of real;

i,n : integer;

w,k : integer;

f,g : text;

suma : real;

x_sr : real;

s2 : real;

s2_ : real;

PROCEDURE Menu1;

BEGIN

writeln('[ Program do obliczania Estymatorow: ]');

writeln;

END;{Menu1}

PROCEDURE ObliczanieXSr;

BEGIN

suma:=0;

for w:=1 to 13 do

BEGIN

suma:=suma+a[w,k];

END;

x_sr:=suma/13;

END;{ObliczanieXSr}

PROCEDURE ObliczanieS2;

VAR

an : real;

BEGIN

Assign(g,'c:\WYNIKI.txt');

Rewrite(g);

clrscr;

Menu1;

writeln(g,'Kol. 1 : plec');

writeln(g,'Kol. 2 : wiek');

writeln(g,'Kol. 3 : cis_skur');

writeln(g,'Kol. 4 : cis_rozkur');

writeln(g,'Kol. 5 : th');

writeln(g,'Kol. 6 : hb');

writeln(g,'Kol. 7 : e');

writeln(g,'Kol. 8 : l');

FOR k:=1 to 8 do

BEGIN

ObliczanieXSr;

suma:=0;

FOR w:=1 to 13 do

BEGIN

an:=(a[w,k] - x_sr) * (a[w,k] - x_sr);

suma:=suma+an;

END;

s2:=suma/13;

writeln(g,'s2 dla Kol. ',k,' wynosi: ',s2:7:2);

END;

Writeln;

Writeln('Wypisalem do pliku... nacisnij klawisz...');

readln;

END;{ObliczanieS2}

PROCEDURE ObliczanieS2Gw;

VAR

an : real;

BEGIN

Assign(g,'c:\Wyniki.txt');

Rewrite(g);

clrscr;

Menu1;

writeln(g,'Kol. 1 - plec');

writeln(g,'Kol. 2 - wiek');

writeln(g,'Kol. 3 - cis_skur');

writeln(g,'Kol. 4 - cis_rozkur');

writeln(g,'Kol. 5 - th');

writeln(g,'Kol. 6 - hb');

writeln(g,'Kol. 7 - e');

writeln(g,'Kol. 8 - l');

FOR k:=1 to 8 do

BEGIN

ObliczanieXSr;

suma:=0;

FOR w:=1 to 13 do

BEGIN

an:=(a[w,k] - x_sr) * (a[w,k] - x_sr);

suma:=suma+an;

END;

s2_:=suma/12;

writeln(g,'s2* dla Kol. ',k,' wynosi: ',s2_:7:2);

END;

Writeln;

Writeln('Wypisalem do pliku... nacisnij klawisz...');

readln;

END;{ObliczanieS2Gw}

PROCEDURE czytaj_plik;

BEGIN

assign(f,'c:\dane.txt');

reset(f);

read(f,w,k);

FOR w:=1 to 13 do

FOR k:=1 to 8 do read(f,a[w,k]);

END;{czytaj_plik}

PROCEDURE menu;

VAR

wybor : integer;

BEGIN

repeat

clrscr;

textcolor(15);

Menu1;

writeln('[1] : Wypisanie do "Wyniki.txt" wartosci sredniej');

writeln('[2] : Wypisanie do "Wyniki.txt" wartosci s2');

writeln('[3] : Wypisanie do "Wyniki.txt" wartosci s2*');

writeln('[0] : Wyjscie z programu');

writeln;

write('Wybor: '); readln(wybor);

case wybor of

1 : BEGIN

clrscr;

assign(g,'c:\Wyniki.txt');

Rewrite(g);

Menu1;

writeln(g,'Kol. 1 - plec');

writeln(g,'Kol. 2 - wiek');

writeln(g,'Kol. 3 - cis_skur');

writeln(g,'Kol. 4 - cis_rozkur');

writeln(g,'Kol. 5 - th');

writeln(g,'Kol. 6 - hb');

writeln(g,'Kol. 7 - e');

writeln(g,'Kol. 8 - l');

FOR k:=1 to 8 do

BEGIN

ObliczanieXSr;

writeln(g,'Srednia dla Kol. ',k,' wynosi: ',x_sr:6:2,' ');

END;

Writeln;

Writeln('Wypisalem do pliku... nacisnij klawisz...');

readln;

END;

2 : ObliczanieS2;

3 : ObliczanieS2Gw;

END;

until wybor=0;

END;{menu}

BEGIN

czytaj_plik;

clrscr;

menu;

END.{Main}

Otrzymane wartości Estymatorów (Wyciąg z pliku wyniki.txt):

Kol. 1 - plec

Kol. 2 - wiek

Kol. 3 - cis_skur

Kol. 4 - cis_rozkur

Kol. 5 - th

Kol. 6 - hb

Kol. 7 - e

Kol. 8 - l

Srednia dla Kol. 1 wynosi: 1.38

Srednia dla Kol. 2 wynosi: 30.46

Srednia dla Kol. 3 wynosi: 141.46

Srednia dla Kol. 4 wynosi: 91.69

Srednia dla Kol. 5 wynosi: 44.55

Srednia dla Kol. 6 wynosi: 14.28

Srednia dla Kol. 7 wynosi: 4.73

Srednia dla Kol. 8 wynosi: 11.27

s2 dla Kol. 1 wynosi: 0.24

s2 dla Kol. 2 wynosi: 163.02

s2 dla Kol. 3 wynosi: 163.94

s2 dla Kol. 4 wynosi: 134.83

s2 dla Kol. 5 wynosi: 14.12

s2 dla Kol. 6 wynosi: 7.76

s2 dla Kol. 7 wynosi: 0.38

s2 dla Kol. 8 wynosi: 17.05

s2* dla Kol. 1 wynosi: 0.26

s2* dla Kol. 2 wynosi: 176.60

s2* dla Kol. 3 wynosi: 177.60

s2* dla Kol. 4 wynosi: 146.06

s2* dla Kol. 5 wynosi: 15.29

s2* dla Kol. 6 wynosi: 8.41

s2* dla Kol. 7 wynosi: 0.41

s2* dla Kol. 8 wynosi: 18.47

Wnioski

Estymator średniej arytmetycznej dla płci Wynosi 1.38 , obciążony wynosi 0.24, Nieobciążony 0.26. Estymator średniej arytmetycznej dla wieku. Wynosi 30.46, obciążony wynosi 163.02, Nieobciążony 176.60. Estymator średniej arytmetycznej dla ciśnienia skurczowego Wynosi 141.46, obciążony wynosi 163.94, Nieobciążony 177.60. Estymator średniej arytmetycznej dla ciśnienia rozkurczowego Wynosi 1.38, obciążony wynosi 91.69, Nieobciążony 146.06. Estymator średniej arytmetycznej dla th Wynosi 44.55, obciążony wynosi 14.12, Nieobciążony 15.29. Estymator średniej arytmetycznej dla hb Wynosi 14.28, obciążony wynosi 7.76, Nieobciążony 8.41. Estymator średniej arytmetycznej dla e Wynosi 4.73 , obciążony wynosi 0.38, Nieobciążony 0.41. Estymator średniej arytmetycznej dla l Wynosi 11.27, obciążony wynosi 17.05, Nieobciążony 18.47.

Estymator obciążony zawsze różni się od estymatora nieobciążonego ponieważ zawiera w sobie błąd próbki, co nie znaczy że musi być większy od estymatora nieobciążonego. W naszym przypadku estymator nieobciążony jest większy ponieważ mnożyliśmy przez0x01 graphic
, a w przypadku estymatora obciążonego mnożyliśmy przez0x01 graphic
.

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
6278
6278
6278
6278

więcej podobnych podstron