Реферат: Теорія імовірностей та математична статистика

Название: Теорія імовірностей та математична статистика
Раздел: Рефераты по финансам
Тип: реферат

Індивідуальна робота на тему:

"Теорія імовірностей та математична статистика"

Виконав: студенти групи ПМП-32

Теоретичні відомості :

Набір експерементальних даних будем позначатиx, …,x. Однорідний набір спостережень називається вибіркою з генеральної сукупності. Генеральна сукупність - універсальна множина значень(проявів) цього явища. Кількість елементів вибірки називають об'ємом вибірки. Вибіркові значення називають ще й статистичним розподілом, якщо їх спеціальним чином перетворити. З однієї генеральної сукупності можна отримати різні вибірки, тому вибірку називають статистичною змінною, які в свою чергу бувають: дискретними або наперервними.

Весь аналітичний процес можна поділити на побудову варіаційного ряду та табличне, графічне, аналітичне представлення цієї вибірки.

Варіаційним рядом вибірки x, …,x (1) називається сукупність всіх елементів вибірки розміщених у порядку неспадання величин їх значень.

Нехай x , … , x (2) - варіаційний ряд вибірки (1), тоді можна побудувати частотну таблицю (3):

X y y
V n n

де y - найменше значення варіаційного ряду (2),

n- кількість його повторень, і т.д.

Якщо випадкові змінні неперервні, то діапазон зміни

вибіркових значень x - x розбивається на r груп ,

де

z- середина першого інтервала.

z- середина r-того інтервала.

rвибирається з умови: 2

Нехай nпопадає на z , … , n попадає на z .

Тоді частотна таблиця набуде вигляду:

Z z z
V n n

Де n+ … + n=n

Найчастіше для графічного зображення вибірки використовують:

1) Графік (діаграма частот).

2) Полігон частот.

3) Гістрограма.

Нехай маєм частотну таблицю (3). Діаграмою частот називається сукупність вертикальних відрізків поставлених в точках y , … , y , з довжиноюn , … , n .

Полігон частот, це ламана лінія, що зєднує точки з кординатами (x,n).

Гістрограма - сукупність прямокутників, центри основ яких лежать в точках z(якщо маєм вибірку з неперервної генеральної сукупності) і x(якщо маєм вибірку з дескретної генеральної сукупності).

Аналітично статистичні дані представляються як правило емпіричною функцією розподілу або певними статистиками. Нехай маєм частотну таблицю (3), то емпіричною функцією називається:

F= (6)

де к - кількість елементів вибірки, що неперевищують x.

Числові характеристики статистичного матеріалу поділяються на:

1) Статистики локації(центральної тенденції).

2) Розсіювання.

3) Числові характеристики форми.

Числові характеристики центральної тенденції.

Медіана - той елемент вибірки(якщо елементів непарна кількість) який поділяє вибірку по об'єму на дві рівні частини.Якщо елементів є парна кількість то медіана є проміжком.

Мода - той елемент частотної таблиці, який має найбільшу частоту, тобто найчастіше зустрічається у вибірці.

Середнє, якщо випадкові змінні дискретні і (3) - її частотна таблиця обчислюється за формулою: = або =.

Числові характеристики розсіюв а ння.

Варіанса: S .

Середньоквадратичне відхилення: S=.

Варіація(мінливість): V= .

Розмахом: =x-x .

Приклад роботи програми:


Дискрентна вибірка 1,0,-1,2,3,2,3,-1,0,5,4. Результат:

Графіки:


Текст програми ( Object Pascal Delphi 4 з застосуванням технології ActiveX ):


unit main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, DBGrids, StdCtrls;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

ComboBox3: TComboBox;

Label1: TLabel;

Edit1: TEdit;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;n:integer; typ:boolean;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

begin

i:=30;n:=30;

while (StringGrid1.Cells[i,0]='') do begin

n:=n-1;

i:=i-1;

end;

typ:=true;

if Combobox3.ItemIndex=1 then typ:=false;

Form1.Visible:=false;

Form2.Showmodal;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Grids;

type

TForm2 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit5: TEdit;

Label1: TLabel;

Button3: TButton;

Label2: TLabel;

Edit4: TEdit;

Label3: TLabel;

Edit6: TEdit;

Memo1: TMemo;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit8: TEdit;

Label8: TLabel;

Edit9: TEdit;

Label9: TLabel;

Edit10: TEdit;

Label10: TLabel;

Edit11: TEdit;

Label4: TLabel;

Edit7: TEdit;

Label11: TLabel;

Edit12: TEdit;

Label12: TLabel;

Edit13: TEdit;

Label13: TLabel;

Edit14: TEdit;

Label14: TLabel;

Edit15: TEdit;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2; xi,ni,wi:variant;m,r:integer;sx,s,ser:double;

implementation

uses main, Unit3;

{$R *.DFM}

procedure TForm2.Button2Click(Sender: TObject);

begin

halt;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

Form2.Close;

Form1.Visible:=true;

end;

procedure TForm2.FormActivate(Sender: TObject);

var sn,i,j,k:integer;p,w,v,t:variant;dx,tx:double;

s1,s2,s3:string;

begin

v := VarArrayCreate([0,n], varDouble);

p := VarArrayCreate([0,n], varDouble);

m:=0;

for i:=1 to n do begin

v[i]:=Form1.StringGrid1.Cells[i,0];

p[i]:=Form1.StringGrid1.Cells[i,0];

end;

{sorting}

k:=n;

while k<>0 do begin

for i:=n-1 downto 1 do

if v[i]>v[i+1] then begin

t:=v[i]; v[i]:=v[i+1]; v[i+1]:=t;

end;

k:=k-1;

end;

{об'єм вибірки}

xi:=n;

edit5.Text:=xi;

if typ=true then begin

w := VarArrayCreate([0,n], varDouble);

for i:=1 to n do

w[i]:=Form1.StringGrid1.Cells[i,0];

{об'єм ряду вибірки}

for i:=1 to n do

if w[i]<>-666 then begin

m:=m+1;

if i<>n then

for j:=i+1 to n do

if w[i]=w[j] then

w[j]:=-666;

end;

xi := VarArrayCreate([0,m], varDouble);

ni := VarArrayCreate([0,m], varInteger);

wi := VarArrayCreate([0,m], varDouble);

sn:=0;

sx:=0;

k:=0;

for i:=1 to n do

if v[i]<>-666 then begin

k:=k+1;

xi[k]:=v[i];

ni[k]:=1;

if i<>n then

for j:=i+1 to n do

if xi[k]=v[j] then begin

ni[k]:=ni[k]+1;

v[j]:=-666;

end;

end;

sn:=0;sx:=0;

for i:=1 to m do begin

sn:=sn+ni[i];

sx:=sx+xi[i];

end;

s:=sx/m;

for i:=1 to m do

wi[i]:=ni[i]/sn;

{moda}

t:=ni[1];

for i:=1 to m do

if t<=ni[i] then begin

t:=ni[i];

k:=i;

end;

Edit4.text:='{';

for i:=1 to m do

if t=ni[i] then begin

w:=xi[i];s1:=w;

Edit4.text:=Edit4.Text + s1;

if k<>i then Edit4.Text:=Edit4.Text + ','

else Edit4.Text:=Edit4.Text + '}';

end;

{mediana}

if m mod 2<>0 then begin

t:=(m+1)/2; t:=xi[t];

Edit6.Text:=t;

end

else begin

t:=m/2;k:=t;

t:=xi[k];

s1:=t;

t:=xi[k+1];

s2:=t;

Edit6.Text:='[' + s1 + ',' + s2 + ']';

end;

{Середнє}

ser:=0;

for i:=1 to n do

ser:=ser+p[i];

ser:=ser/n;

t:=ser; Edit15.Text:=t;

{Deviacia}

tx:=0;

for i:=1 to n do

tx:=tx+(p[i]-ser)*(p[i]-ser);

t:=tx;

Edit8.Text:=t;

{Variansa}

if n<>1 then sx:=tx/(n-1);t:=sx;

Edit9.Text:=t;

sx:=0;

{momenty}

for i:=1 to n do {1}

sx:=sx+p[i]-ser;

sx:=sx/n;

t:=sx;

Edit7.Text:=t;

tx:=tx/n;t:=tx; {2}

Edit12.Text:=t;

sx:=0;

for i:=1 to n do {3}

sx:=sx+(p[i]-ser)*(p[i]-ser)*(p[i]-ser);

sx:=sx/n;

t:=sx;

Edit13.Text:=t;

{Assymetrija}

if tx<>0 then sx:=sx/(sqrt(tx)*sqrt(tx)*sqrt(tx));

t:=sx;

Edit10.Text:=t;

sx:=0;

for i:=1 to n do {4}

sx:=sx+(p[i]-ser)*(p[i]-ser)*(p[i]-ser)*(p[i]-ser);

sx:=sx/n;

t:=sx;

Edit14.Text:=t;

{Eksces}

if tx<>0 then sx:=sx/(tx*tx)-3;

t:=tx;

Edit11.Text:=t;

{rozpodil function}

s2:=xi[1]; sx:=0;

Memo1.lines[0]:='0, x<' + s2;

for i:=1 to m-1 do begin

sx:=sx+wi[i];

t:=sx;

s1:=t;

s2:=xi[i];

s3:=xi[i+1];

Memo1.lines[i]:=s1 + ', ' + s2 + '=<x<' + s3;

end;

s2:=xi[m];

Memo1.lines[m]:='1, x>=' + s2;

for i:=1 to m do begin

Form2.StringGrid1.Cells[i,0]:=xi[i];

Form2.StringGrid1.Cells[i,1]:=ni[i];

Form2.StringGrid1.Cells[i,2]:=wi[i];

end;

end

else begin

sx:=v[n]-v[1];

i:=1;

r:=1;

while i<n do begin

i:=2*i;

r:=r+1;

end;

sx:=sx/(r-1)-0.2;

xi := VarArrayCreate([0,r-1], varDouble);

ni := VarArrayCreate([0,r-1], varInteger);

wi := VarArrayCreate([0,r-1], varDouble);

w := VarArrayCreate([0,r-1], varVariant);

xi[1]:=v[1]-0.2; s1:=xi[1];s2:=v[1]+sx;

Form2.StringGrid1.Cells[1,0]:='[' + s1 + ';' + s2 + ')';

xi[r-1]:=v[n]-sx; s1:=xi[r-1];

s2:=v[n]+0.2;

Form2.StringGrid1.Cells[r-1,0]:='[' + s1 + ';' + s2 + ']';

for i:=2 to r-2 do begin

xi[i]:=xi[i-1]+sx; s1:=xi[i]; s2:=xi[i]+sx;

Form2.StringGrid1.Cells[i,0]:='[' + s1 + ';' + s2 + ']';

end;

i:=1;j:=1;

while i<n do begin

if v[i]<xi[j]+sx then begin

ni[j]:=ni[j]+1;

i:=i+1;

end

else if j<=r-1 then j:=j+1;

end;

ni[r-1]:=ni[r-1]+1;

sn:=0;

for i:=1 to r-1 do begin

sn:=sn+ni[i];

Form2.StringGrid1.Cells[i,1]:= ni[i];

end;

for i:=1 to r-1 do begin

w[i]:=Form2.StringGrid1.Cells[i,0];

wi[i]:=ni[i]/sn;

Form2.StringGrid1.Cells[i,2]:= wi[i];

end;

{moda}

t:=ni[1];

for i:=1 to r-1 do

if t<=ni[i] then begin

t:=ni[i];

k:=i;

end;

Edit4.text:='{';

for i:=1 to r-1 do

if t=ni[i] then begin

s1:=xi[i]+sx/2;

Edit4.text:=Edit4.Text + s1;

if k<>i then Edit4.Text:=Edit4.Text + ','

else Edit4.Text:=Edit4.Text + '}';

end;

{mediana}

if r-1 mod 2<>0 then begin

t:=r/2; s1:=w[t];

Edit6.Text:=s1;

end

else begin

t:=(r-1)/2;

s1:=xi[t+1]+sx-sx/2;

s2:=xi[t+1]+sx+sx/2;

Edit6.Text:='[' + s1 + ';' + s2 + ']';

end;

{rozpodil function}

s2:=xi[1]; w[1]:=0;

Memo1.lines[0]:='0, x<' + s2;

for i:=1 to r-1 do begin

w[1]:=w[1]+wi[i];

t:=w[1];

s1:=t;

s2:=xi[i];

s3:=xi[i]+sx;

Memo1.lines[i]:=s1 + ', ' + s2 + '=<x<' + s3;

end;

s2:=xi[r-1];

Memo1.lines[r]:='1, x>=' + s2;

{serednie}

tx:=0;

for i:=1 to n do

tx:=tx+p[i];

ser:=tx/n;t:=ser;

Edit15.text:=t;

{Deviacia}

tx:=0;

for i:=1 to n do

tx:=tx+(p[i]-ser)*(p[i]-ser);

t:=tx;

Edit8.Text:=t;

{Variansa}

if n<>1 then dx:=tx/(n-1);t:=dx;

Edit9.Text:=t;

{momenty}

for i:=1 to n do {1}

dx:=dx+p[i]-ser;

dx:=dx/n;

t:=dx;

Edit7.Text:=t;

tx:=tx/n;t:=tx; {2}

Edit12.Text:=t;

dx:=0;

for i:=1 to n do {3}

dx:=dx+(p[i]-ser)*(p[i]-ser)*(p[i]-ser);

dx:=dx/n;

t:=dx;

Edit13.Text:=t;

{Assymetrija}

if tx<>0 then dx:=dx/(sqrt(tx)*sqrt(tx)*sqrt(tx));

t:=dx;

Edit10.Text:=t;

dx:=0;

for i:=1 to n do {4}

dx:=dx+(p[i]-ser)*(p[i]-ser)*(p[i]-ser)*(p[i]-ser);

dx:=dx/n;

t:=dx;

Edit14.Text:=t;

{Eksces}

dx:=dx/(tx*tx)-3;

t:=tx;

Edit11.Text:=t;

s:=ser;

end;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

Form3.ShowModal;

end;

end.

unit Unit3;

interface

uses main, unit2,

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OleCtrls, graphsv3;

type

TForm3 = class(TForm)

Graph1: TGraph;

Graph2: TGraph;

Graph3: TGraph;

Graph4: TGraph;

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.DFM}

procedure TForm3.FormActivate(Sender: TObject);

var i,j:integer;dx:double;nxi,fi:variant;

begin

dx:=sx;

sx:=0;

if typ=true then begin

Graph1.RandomData:=0;

Graph1.GraphTitle:='Гістограма';

Graph1.GraphType:=3;

Graph1.NumPoints:=m;

for i:=1 to m do begin

Graph1.Data[i]:=ni[i];

Graph1.XPosData:=xi[i];

end;

Graph2.RandomData:=0;

Graph2.GraphTitle:='Полігон';

Graph2.GraphType:=6;

Graph2.NumPoints:=m;

for i:=1 to m do begin

Graph2.Data[i]:=ni[i];

Graph2.XPosData:=xi[i];

end;

Graph3.RandomData:=0;

Graph3.GraphTitle:='Діаграма';

Graph3.GraphType:=6;

Graph3.GraphStyle:=2;

Graph3.NumPoints:=m;

for i:=1 to m do begin

Graph3.XPosData:=xi[i];

Graph3.Data[i]:=ni[i];

end;

Graph4.RandomData:=0;

Graph4.GraphTitle:='Функція розподілу';

Graph4.GraphType:=6;

Graph4.NumPoints:=2*m+2;

fi := VarArrayCreate([0,2*m+2], varDouble);

nxi := VarArrayCreate([0,2*m+2], varDouble);

for i:=1 to m do begin

sx:=wi[i]+sx;

fi[2*i]:=sx-wi[i];

fi[2*i+1]:=sx;

nxi[2*i]:=xi[i];

nxi[2*i+1]:=xi[i];

end;

fi[2*m+2]:=1;

nxi[1]:=xi[1]-s;

nxi[2*m+2]:=xi[m]+s;

j:=0;

for i:=1 to 2*m+2 do begin

Graph4.Data[i]:=fi[i];

Graph4.XPosData:=nxi[i];

end;

end

else begin

Graph1.RandomData:=0;

Graph1.GraphTitle:='Гістограма';

Graph1.GraphType:=3;

Graph1.NumPoints:=r-1;

for i:=1 to r-1 do begin

Graph1.Data[i]:=ni[i];

Graph1.XPosData:=xi[i];

end;

Graph2.RandomData:=0;

Graph2.GraphTitle:='Полігон';

Graph2.GraphType:=6;

Graph2.NumPoints:=r-1;

for i:=1 to r-1 do begin

Graph2.Data[i]:=ni[i];

Graph2.XPosData:=xi[i]+dx/2;

end;

Graph3.RandomData:=0;

Graph3.GraphTitle:='Діаграма';

Graph3.GraphType:=6;

Graph3.GraphStyle:=2;

Graph3.NumPoints:=r-1;

for i:=1 to r-1 do begin

Graph3.XPosData:=xi[i]+dx/2;

Graph3.Data[i]:=ni[i];

end;

Graph4.RandomData:=0;

Graph4.GraphTitle:='Функція розподілу';

Graph4.GraphType:=6;

Graph4.NumPoints:=2*(r-1)+2;

fi := VarArrayCreate([0,2*(r-1)+2], varDouble);

nxi := VarArrayCreate([0,2*(r-1)+2], varDouble);

sx:=0;

for i:=1 to r-1 do begin

sx:=wi[i]+sx;

fi[2*i]:=sx-wi[i];

fi[2*i+1]:=sx;

nxi[2*i]:=xi[i];

nxi[2*i+1]:=xi[i];

end;

fi[2*(r-1)+2]:=1;

nxi[1]:=xi[1]-3;

nxi[2*(r-1)+2]:=xi[r-1]+3;

j:=0;

for i:=1 to 2*(r-1)+2 do begin

Graph4.Data[i]:=fi[i];

Graph4.XPosData:=nxi[i];

end;

end;

end;

end.

Список л і тератури

1. Крамер Гарольд. Математические методы статистики. М.: Мир, 1976.

2. Бух Арлей. Введение в теорию вероятностей и математическую статистику. М., 1951.