Критерії відношення правдоподібності мають широке практичне застосування з огляду на такі їхні властивості( які мають місце у широкому класі задач), як:
1. Критерії відношення правдоподібності є найбільш потужними серед усіх інших можливих критеріїв( лема Неймана - Пірсона).
2. Щільність розподілу критичної статистики можна легко отримати із функції правдоподібності спостережуваної випадкової величини( у випадку застосування цих критеріїв до перевірки гіпотез для великих вибірок, користуються асимптотичною щільністю хі -квадрат розподілу).
Однак, варто відзначити, що ці критерії мають ряд недоліків, які дещо звужують коло застосувань цих методів. Одним із головних недоліків є вимога регулярності функцій правдоподібності, що не завжди має місце на практиці. Інші два недоліки мають місце при застосуванні будь-яких статистичних критеріїв. Це так звані ефекти "надто малого об’єму вибірки" та ефекти "надто великого об’єму вибірки".
Ефект " надто малого об’єму вибірки" полягає у тому, що при заданому рівні значущості критерію
і малій кількості спостережень( ), на основі яких отримують потужність критерію, тобто ймовірність відхилити нульову гіпотезу у випадку, коли вона насправді хибна, є дуже малою. У такому випадку застосовують два підходи: або дещо збільшують значення рівня значущості критерію ( що, у свою чергу, призводить до зменшення похибки другого роду, але одночасного збільшення похибки першого роду), або збільшують об’єм вибірки .Ефект "надто великого об’єму вибірки" полягає у тому, що при великих значеннях
надзвичайно сильно зростає чутливість критерію до емпіричних результатів, і в таких випадках висунута гіпотеза практично завжди відхиляється критерієм. Для того, щоб уникнути ефекту великої вибірки, апріорне визначення характеристик критерію( рівня значущості і похибки другого роду ) потрібно пов’язувати з об’ємом вхідних даних . Виграш у чутливості критерію, який отримується при зростанні , доцільно використати для зменшення як , так і . Зокрема, якщо при збільшенні зменшувати , то дуже малі відхилення від вже не приведуть до обов’язкової неузгодженості з емпіричними даними: ймовірність цього факту буде залежати від того, з якою швидкістю зменшується при зростанні .Список використаної літератури
1. Айвазян С.А., Енюков И.С., Мешалкин Л.Д. Прикладная статистика. Основы моделирования и первичная обработка данных. Справочное пособие. – М.: Финансы и статистика, 1983. – 471 с.
2. Ефимов А.В. Сборник задач по математике для втузов. Специальные курсы. Т.3. – М.: Наука, 1984. – 608с.
3. Ивченко Г.И., Медведев Ю.И. Математическая статистика. – М.: Высш. шк., 1984. – 248с.
4. Ружевич Н.А. Математична статистика. – Львів: Львівська політехніка, 2001. – 168 с.
Додаток А. Використані статистичні таблиці
Таблиця значень
квантилей для хі – квадрат розподілу з ступенями вільності0,1 | 0,3 | 0,5 | 0,7 | 0,9 | 0,95 | 0,999 | 0,9999 |
0,016 | 0,148 | 0,455 | 1,07 | 2,71 | 3,84 | 6,63 | 10,8 |
0,211 | 0,713 | 1,39 | 2,41 | 4,61 | 5,99 | 9,21 | 13,8 |
0,584 | 1,42 | 2,37 | 3,67 | 6,25 | 7,82 | 11,3 | 16,3 |
1,06 | 2,20 | 3,36 | 4,88 | 7,78 | 9,49 | 13,3 | 18,5 |
1,61 | 3,00 | 4,35 | 6,06 | 9,24 | 11,1 | 15,1 | 20,5 |
2,20 | 3,83 | 5,35 | 7,23 | 10,6 | 12,6 | 16,8 | 22,5 |
2,83 | 4,67 | 6,35 | 8,38 | 12,0 | 14,1 | 18,5 | 24,3 |
3,49 | 5,53 | 7,34 | 9,52 | 13,4 | 15,5 | 20,1 | 26,1 |
4,17 | 6,39 | 8,34 | 10,7 | 14,7 | 16,9 | 21,7 | 27,9 |
4,87 | 7,27 | 9,34 | 11,8 | 16,0 | 18,3 | 23,2 | 29,6 |
5,58 | 8,15 | 10,3 | 12,9 | 17,3 | 19,7 | 24,7 | 31,3 |
6,30 | 9,03 | 11,3 | 14,0 | 18,5 | 21,0 | 26,2 | 32,9 |
7,04 | 9,93 | 12,3 | 15,1 | 19,8 | 22,4 | 27,7 | 34,5 |
7,79 | 10,08 | 13,3 | 16,2 | 21,1 | 23,7 | 29,1 | 36,1 |
8,55 | 11,7 | 14,3 | 17,3 | 22,3 | 25,0 | 30,6 | 37,7 |
9,31 | 12,6 | 15,3 | 18,4 | 23,5 | 26,3 | 32,0 | 39,3 |
10,09 | 13,5 | 16,3 | 19,5 | 24,8 | 27,6 | 33,4 | 40,8 |
10,9 | 14,4 | 17,3 | 20,6 | 26,0 | 28,9 | 34,8 | 42,3 |
11,7 | 15,4 | 18,3 | 21,7 | 27,2 | 30,1 | 36,2 | 43,8 |
12,4 | 16,3 | 19,3 | 22,8 | 28,4 | 31,4 | 37,6 | 45,3 |
13,2 | 17,2 | 20,3 | 23,9 | 29,6 | 32,7 | 38,9 | 46,8 |
14,0 | 18,1 | 21,3 | 24,9 | 30,8 | 33,9 | 40,3 | 48,3 |
14,8 | 19,0 | 22,3 | 26,0 | 32,0 | 35,2 | 41,6 | 49,7 |
15,7 | 19,9 | 23,3 | 27,1 | 33,2 | 36,4 | 43,0 | 51,2 |
16,5 | 20,9 | 24,3 | 28,2 | 34,3 | 37,7 | 44,3 | 52,6 |
17,3 | 21,8 | 25,3 | 29,2 | 35,6 | 38,9 | 45,6 | 54,1 |
18,1 | 22,7 | 26,3 | 30,3 | 36,7 | 40,1 | 47,0 | 55,5 |
18,9 | 23,6 | 27,3 | 31,4 | 37,9 | 41,3 | 48,3 | 56,9 |
19,8 | 24,6 | 28,3 | 32,5 | 39,1 | 42,6 | 49,6 | 58,3 |
20,6 | 25,5 | 29,3 | 33,5 | 40,3 | 43,8 | 50,9 | 59,7 |
Додаток B. Текст програми, що реалізує застосування критерію відношення правдоподібності для великих вибірок
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls, Math;
type
TFrm = class(TForm)
GrpBox_HandEnter: TGroupBox;
RdoGrp_CaseEnter: TRadioGroup;
RdBtn_FileRead: TRadioButton;
RdBtn_HandEnter: TRadioButton;
StrGrd: TStringGrid;
Lbl_LevelMean: TLabel;
Cmb_LevelMean: TComboBox;
Lbl_CountValue: TLabel;
Cmb_CountValue: TComboBox;
GrpB_Result: TGroupBox;
Memo_WriteResult: TMemo;
Button1: TButton;
OpnDg: TOpenDialog;
RdB_CompGenerate: TRadioButton;
Edt_Average: TEdit;
Edt_Dispersion: TEdit;
Lbl_Average: TLabel;
Lbl_Dispersion: TLabel;
procedure Button1Click(Sender: TObject);
procedure RdBtn_HandEnterClick(Sender: TObject);
procedure Cmb_CountValueChange(Sender: TObject);
procedure RdBtn_FileReadClick(Sender: TObject);
procedure RdB_CompGenerateClick(Sender: TObject);
procedure Edt_AverageChange(Sender: TObject);
procedure Edt_DispersionChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm: TFrm;
List:TStringList;
implementation
{$R *.dfm}
Function Factorial(N:Integer):Integer;
var s:Integer;
begin
s:=1;
if(N>0) then
while (N>0) do
begin
s:=N*s;
N:=N-1;
end;
Result:=s;
end;
function FactorialHalf(N:Integer):Double;
var s:Double;
begin
s:=1;
if(N>=0) then
begin
while (N>=0) do
begin
s:=(1./2+N)*s;
N:=N-1;
end;
end;
Result:=s;
end;
Function Abs(s:Double):Double;
begin
if(s>0) then
Abs:=s
else
Abs:=-s;
end;
function FindCriticalPoint(N: Integer): Double;
var Gamma,Integral,c, h,level_mean: Double;
i: Integer; NumPointsIntegrate:LongInt;
begin
c:=0.1; i:=0; Integral:=0;h:=c/2;
level_mean:= StrToFloat(Frm.Cmb_LevelMean.Text);
NumPointsIntegrate:=1000;
if(((N-1) mod 2)=1) then
Gamma:=Power(ArcCos(-1),1./2)*FactorialHalf(((N-1)div 2)-1)
else
Gamma:=Factorial(((N-1) div 2)-1);
while(Abs(((1-level_mean) -Integral/(Gamma*Power(2,0.5*(N-1)))))>0.00001) do
begin
Integral:=0;
for i:=1 to NumPointsIntegrate do
Integral:=Integral+ (c/(NumPointsIntegrate))*Power(i*c/(NumPointsIntegrate),(0.5*N-1.5))*exp(-i*c/(2*NumPointsIntegrate));
if ((((1-level_mean) )-Integral/(Gamma*Power(2,0.5*(N-1)))))>0 then
begin
c:=c+h ;
NumPointsIntegrate:=NumPointsIntegrate+100;
end
else
begin
c:=c-h;
h:=h/10;
c:=c+h;
end;
end;
FindCriticalPoint:=c;
end;
function EvaluteStatistic(aOfValues:Array of Double; aOfProbabil:Array of Double; CountVal:Integer; f:Boolean):Double;
var i,n:Integer;
s,sum,s_2,disp,aver:Double;
begin
s:=0; n:=0;
sum:=0;
if(not f) then
begin
for i:=0 to CountVal-1 do
sum:=sum+aOfValues[i];
for i:=0 to CountVal-1 do
s:=s+2*aOfValues[i]*LnXP1(aOfValues[i]/(sum*aOfProbabil[i])-1);
Result:=s;
end
else
begin
for i:=1 to Frm.StrGrd.ColCount-1 do
if(Frm.StrGrd.Cells[i,2]<>'') then
begin
s:=s+Power(StrToFloat(Frm.StrGrd.Cells[i,1]),2);
sum:=sum+StrToFloat(Frm.StrGrd.Cells[i,1]);
n:=n+StrToInt(Frm.StrGrd.Cells[i,2]);
end;
s_2:=(s/n)-Power(sum/n,2);
disp:= StrToFloat(Frm.Edt_Dispersion.Text);
aver:= StrToFloat(Frm.Edt_Average.Text);
Result:=n*LnXP1((disp/s_2)-1)-n+s/disp-2*sum*aver/disp+n*Power(aver,2)/disp;//n*LnXP1((disp/s_2)-1);
end;
end;
procedure TFrm.Button1Click(Sender: TObject);
var ValArr:array of Double; ProbArray:array of Double;
i:Integer; s:TStringList; st,critical_point:Double;
begin
if(RdBtn_HandEnter.Checked ) then
begin
SetLength(ValArr,StrGrd.ColCount-1);
SetLength(ProbArray,StrGrd.ColCount-1);
For i:=0 to StrGrd.ColCount-2 do
begin
try
ValArr[i]:=StrToFloat(StrGrd.Cells[i+1,1]);
ProbArray[i]:= StrToFloat(StrGrd.Cells[i+1,2]);
finally end;
end;
end
else
if (RdBtn_FileRead.Checked ) then
begin
s:= TStringList.Create;
s.Text:=StringReplace(List[0],' ',#13#10,[rfReplaceAll]);
SetLength(ValArr,s.Count);
Cmb_CountValue.Text := IntToStr(s.Count );
RdBtn_HandEnter.Checked :=false;
for i:=0 to s.Count-1 do
ValArr[i]:=StrToFloat(s[i]);
s.Text:=StringReplace(List[1],' ',#13#10,[rfReplaceAll]);
SetLength(ProbArray,s.Count);
for i:=0 to s.Count -1 do
ProbArray[i]:=StrToFloat(s[i]);
end;
Memo_WriteResult.Lines.Clear();
Memo_WriteResult.Lines.Add('Значення статистики критерію:');