Критерий согласия для распределения Парето

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

/p>

Для изменения уровня значимости ? щелкаем на нужное значение один раз. Выбираем, например первое значение.

Получившиеся гистограмма относительных частот и график функции плотности распределения представлены на рисунке 10.

При данных значениях разбивки делаем вывод, что данная выборка согласуется с распределением Парето, т.е. выполнены условия критерия согласия Пирсона. Вывод указан на рисунке 11.

Для того, чтобы сохранить полученные данные обработки выборки, в программе находится кнопка Сохранить. При ее нажатии, все полученные данные сохранятся в формате *.xml. Сохраненный файл представлен на рисунке 12.

 

Рисунок 10 - График

 

Рисунок 11 - Вывод

Рисунок 12 - Экспорт в Excel

 

2.2 Пример 2

 

Дана выборка в виде статистического ряда. Нужно произвести произвольное разбиение выборки и посмотреть, при какой значении k выборка подчиняется распределению Парето.

В программе переходим на вкладку Статистический ряд и нажимаем кнопку Импорт. Появляется диалоговое окно, с помощью которого открываем файл с готовой выборкой. Нажимаем кнопку Open.

 

Рисунок 13 - Статистический ряд

После этого переходим к разбиению выборки:

) Пусть k=10. Тогда получим данные, приведенные на рисунке 14. По гистограмме относительных частот видно, что выборка не подчиняется распределению Парето. Имеем ?2крит. > ?2теор., следовательно, не выполнено условие Пирсона;

 

Рисунок 14 - Итоги обработки

 

) Пусть k=6. Имеем ?2крит. < ?2теор., следовательно, условие Пирсона выполнено; а значит, выборка при таком разбиении подчиняется закону распределения Парето.

 

 

Заключение

 

Критерий согласия Пирсона является очень удобным инструментом для определения, относится ли случайная выборка к тому или иному распределению.

Одна и та же выборка может принимать то или иное распределение. Это зависит от числа интервалов, на которое делится выборка, а также от выбранного уровня значимости ?.

 

 

Приложение А

Xls_To_StringGrid (AGrid: TStringGrid; AXLSFile: string): Boolean;= $0000000B;, Sheet: OLEVariant;: Variant;: OleVariant;, y, k, r: Integer;:integer;:= False;

// Create Excel-OLE Object:= CreateOleObject ('Excel. Application');

// Hide Excel. Visible:= False;

// Open the Workbook. Workbooks. Open(AXLSFile);

// Sheet:= XLApp. Workbooks[1].WorkSheets[1];:= XLApp. Workbooks [ExtractFileName(AXLSFile)].WorkSheets[1];

// In order to know the dimension of the WorkSheet, i.e the number of rows

// and the number of columns, we activate the last non-empty cell of it. Cells. SpecialCells (xlCellTypeLastCell, EmptyParam).Activate;

// Get the value of the last row:= XLApp. ActiveCell. Row;

// Get the value of the last column:= XLApp. ActiveCell. Column;

// Set Stringgrid's row &col dimensions.. RowCount:= x;

// Assign the Variant associated with the WorkSheet to the Delphi Variant:= XLApp. Range ['A1', XLApp. Cells. Item [X, Y]].Value;

//XLApp. Quit;

// Define the loop for filling in the TStringGrid

{K:= 1;R:= 1 to Y do. Cells[(R), (K)]:= RangeMatrix [K+1, R];. RowCount:= K + 1;(K, 1);>= (X-1);}:=1;K<X do beginR:= 1 to Y do //begin. Cells[(R), (K)]:= RangeMatrix [K+1, R];. RowCount:= K + 1;(K, 1);

//end;;i:=1 to AGrid. RowCount-1 do. Cells [0, i]:=IntToStr(i);

// Unassign the Delphi Variant Matrix:= Unassigned;

// Quit Excelnot VarIsEmpty(XLApp) then. DisplayAlerts:= False;. Quit;:= UnAssigned;:= UnAssigned;:= True;;;;InsertFileInMemo (RzMemo1: TRzMemo; FileName: string;: Boolean);: TMemoryStream;: Char;:= TMemoryStream. Create;. LoadFromFile(FileName);. Seek (0, 2);:= #0;. Write (NullTerminator, 1);not ReplaceSel then. SelLength:= 0;(RzMemo1. Handle, EM_ReplaceSel, 0,(Stream. Memory));. Free;;;Sort;i:integer;: boolean;:real;:= FALSE;i:= 0 to n-2 doV[i] > V [i+1] then begin:= V[i];[i]:=V [i+1];[i+1]:= buf;:= TRUE;;changed;;Vkladka3;i:integer;:=Form1. RzMemo1. Lines. Count;(V, n);i:=0 to n-1 do begin[i]:=StrToFloat (Form1. RzMemo1. Lines. Strings[i]);;;;Vkladka1;i:integer;:=Form1.SG. RowCount-1;(V, n);i:=0 to n-1 do begin[i]:=StrToFloat (Form1.SG. Cells [1, i+1]);;;;Vkladka2;i, j, m:integer;, k, r, w:integer;:integer;:array of real;:array of integer;:=0;:=Form1.SG1. RowCount-1;i:=0 to m-1 do:=SummaEl+StrToInt (Form1.SG1. Cells [2, i+1]);:=SummaEl;(MXi, m);(MNi, m);i:=0 to m-1 do begin[i]:=StrToFloat (Form1.SG1. Cells [1, i+1]);[i]:=StrToInt (Form1.SG1. Cells [2, i+1]);;(V, n);:=0;:=0;:=0;w<=n-1 do begini:=0 to m-1 do begin:=MNi[i];j:=0 to r-1 do begin[w]:=MXi[i];:=w+1;;;;;;OcenkaParam;i:integer;, alp2:real;:=0;:=0;i:=0 to k-1 do begin:=X+(Xk[i]*OtnCh[i]);;. RzLabel27. Caption:=FloatToStrF (X, ffFixed, 10,4);i:=0 to k-1 do begin:=SKv+(sqr (Xk[i] - X));;:=SKv/(n-1);:=sqrt(SKv);. RzLabel25. Caption:=FloatToStrF (SKv, ffFixed, 10,4);

// Находим параметр альфа

alp1:=1+sqrt (1+(sqr(X)/SKv));

alp2:=1-sqrt (1+(sqr(X)/SKv));(alp1>0) then alp:=alp1begin(alp2>0) then alp:=alp2ShowMessage ('Параметр альфа - отрицательный');;:=X*(alp-1)/alp;. RzLabel16. Caption:=FloatToStrF (x0, ffFixed, 10,4);. RzLabel17. Caption:=FloatToStrF (alp, ffFixed, 10,4);(alp>1) then begin:=alp*x0/(alp-1);. RzLabel18. Caption:=FloatToStrF (Mx, ffFixed, 10,4);Form1. RzLabel18. Caption:='Мат.ожидания нет';(alp>2) then begin:=alp*sqr(x0)/sqr (alp-1)*(alp-2);. RzLabel19. Caption:=FloatToStrF (Dx, ffFixed, 10,4);Form1. RzLabel19. Caption:='Дисперсии нет';. RzLabel15. Caption:=IntToStr(n);;F (x:real):real;:=(1 - (Power((x0/x), alp)));;Pareto;i:integer;((alp>0) and (x0>0)) then begini:=0 to k-1 do begin(Xk[i]>x0) then begin[i]:=(alp/x0) * (Power((x0/Xk[i]), alp+1));[i]:=F (Xk[i]);begin[i]:=0;[i]:=0;;;Form1. RzMemo2. Lines. Text:='Параметры распределения отрицательные';

// Делаем нормировку

Rx [k-1]:=Infinity;

Lx[0]:=x0;((alp>0) and (x0>0)) then begini:=0 to k-1 do begin(Lx[i]>x0) then begin[i]:=F (Lx[i]);FLx[i]:=0;(Rx[i]>x0) then begin[i]:=F (Rx[i]);FRgx[i]:=0;[i]:=FRgx[i] - FLx[i];;;:=0;i:=0 to k-1 do begin:=Sp+Px[i];[i]:=n*Px[i];;. RzLabel49. Caption:=FloatToStrF (Sp, ffFixed, 10,3);i:=1 to k do begin. RzStringGrid2. Cells [7, i]:=FloatToStrF (Px[i-1], ffFixed, 10,4);. RzStringGrid2. Cells [8, i]:=FloatToStrF (fx[i-1], ffFixed, 10,4);. RzStringGrid2. Cells [9, i]:=FloatToStrF (Frx[i-1], ffFixed, 10,4);. RzStringGrid2. Cells [11, i]:=FloatToStrF (EmpCh[i-1], ffFixed, 10,4);;;Gipotiza;i:integer;. RzMemo2. Lines. Text:='';;:=0;i:=0 to k-1 do begin(Px[i]<>0) then:=HiNabl+(Power((Nk[i] - n*Px[i]), 2))/(n*Px[i]);;. RzLabel22. Caption:=FloatToStrF (HiNabl, ffFixed, 10,3);. RzLabel23. Caption:=FloatToStrF (HiKrit, ffFixed, 10,3);:= 'Гипотиза отброшена. Данная выборка не подчиняется распределению Парето';

b:= 'Гипотиза принята. Данная выборка подчиняется распределению Парето';

If (HiNabl>=HiKrit) then begin

Form1. RzMemo2. Text:=a;. RzLabel40. Caption:='>';begin. RzMemo2. Text:=b;. RzLabel40. Caption:='<';;;NewIntervals;i, m, l:integer;:real;Form1. RzPageControl1. ActivePage=Form1. TabSheet1 then Vkladka1beginForm1. RzPageControl1. ActivePage=Form1. TabSheet2 then Vkladka2beginForm1. RzPageControl1. ActivePage=Form1. TabSheet3 then Vkladka3;;:=V[0];:=V [n-1];:=(Xmax-Xmin)/k;(Rx, k);(Lx, k);(Xk, k);(Nk, k);(OtnCh, k);(Hk, k);(Px, k);(fx, k);(Frx, k);(FLx, k);(FRgx, k);(Fremp, k);(EmpCh, k);i:=0 to k-1 do begin[i]:=Xmin+i*h;[i]:=Xmin+(i+1)*h;[i]:=(Lx[i]+Rx[i])/2;;

// подсчитываем число элементов, вошедших в интервал

m:=0;:=0;:=0;(m<=k-1) do begini:=l to n-1 do begin(V[i]<=Rx[m]) then begin:=Summa+1;:=l+1;begin[m]:=Summa;;[m]:=Summa;;:=0;:=m+1;;i:=0 to k-1 do begin[i]:=Nk[i]/n;[i]:=OtnCh[i]/h;;:=0;:=0;:=0;i:=0 to k-1 do begin:=Sotch+OtnCh[i];:=Shk+h*Hk[i];:=Sach