8.1. Обработка выборочных данных (Статистика)

8.1.1 Гистограмма

Программа 117. Участок числовой оси разбит на равные отрезки.

Разбиение задается тройкой чисел (m, x0, s) и формулой xl=x0+ls. Значение x принадлежит классу l, если xlx<xl+1. Алгоритм подсчитывает число попаданий nj элементов выборки {xi}, i=1...n, в соответствующие классы l=0...m, а по прерывании ввода вычисляет частоты pl=nl/n.

10 VAC:INPUT "n",A,"x0",B,"s",C
20 INPUT D:D=(D-B)/C:IF D<0;D=0
30 E=E+1:IF D>A;D=A
40 F(D)=F(D)+1:GOTO 20
50 FOR D=0 TO A:PRINT D;F(D)/E:NEXT D:GOTO 20

Размер: 109, F(n)

Пример: n=2; x0=1; s=2.

Выборка: 3; 4; 3,2; 2,5; 1,5.

Завершение ввода: [AC] RUN 50[EXE].

Ответ: p0=0,4; p1=0,6; p2=0.

8.1.2 Моменты

Программа 118. При исследовании выборки {xi} сперва вычисляют начальные моменты

ak=1/n е(i)xik;

где k - порядок момента, n - объем выборки; затем из начальных моментов выражают необходимые статистические характеристики, например:

выборочное среднее m=a1;
смещенное СКО ss=Ц(a2-a12);
несмещенное СКО s= ssЦ(n/(n-1));
асимметрию As=(a3-3a1a2+2a13)/ss3;
эксцесс Ex=(a4-4a3a1+6a2a12-3a14)/ ss4-3.

10 VAC
20 INPUT A:C=1:FOR B=0 TO 4:D(B)=D(B)+C:C=C*A:NEXT B:GOTO 20
30 A=E/D:B=SQR (F/D-A*A):PRINT "m";A,"s";B/SQR (1-1/D)
40 PRINT "As";(G-3*F*A+2*A*A*E)/D/B-3
50 PRINT "Ex";(H-4*G*A+6*F*A*A-3*A-3*E)/D/B-4-3:GOTO 20

Размер: 166, H

Пример: 1; 2; 3; 4; 5; [AC] RUN 30[EXE].

Ответ: m=3; s=1,58...; As=0; Ex=-1,3.

8.1.3 Корреляция

Программа 119. Коэффициент корреляции

r=(еxy-еxеy/n)/Ц{(еx2-(еx)2/n)(еy2-(еy)2/n)}

служит для оценивания по выборке {xi, yi} степени зависимости случайных величин X и Y.

10 VAC
20 INPUT "x",A,"y",B:C=C+1:D=D+A:E=E+B:F=F+A*A:G=G+B*B:H=H+A*B
30 GOTO 20
40 PRINT (H-D*E/C)/SQR ((F-D*D/C)*(G-E*E/C)):GOTO 20

Размер: 107, H

Пример:

x

1

1

3

3

5

5

y

2

4

1

5

2

4

Завершение ввода данных: [AC] RUN 40[EXE].

Ответ: r=0.

8.1.4 Тесты

Тест позволяет принять или отвергнуть гипотезу о принадлежности выборки к эталонной популяции.

Программа 120. Критерий согласия c2. Гипотеза: выборка {xi} принадлежит к генеральной совокупности с заданным распределением F(x).

Процедура оценивания базируется на вычислении интеграла c2-распределения. Расчетная формула при числе степеней свободы m≦30:

Fm(t)=(t/2)m/2/G(m/2+1)/et/2(1+е(k)tk/Х(l)(m+2l)), k=0...г, l=1...k.

При m>30 ряд не сходится (существует другая формула). Гипотеза о принадлежности выборки к заданному распределению отвергается, если

1-Fm(t)<a;

где a - заданный уровень значимости;
t - рассогласование.

Для вычисления t необходимо так разбить выборку на классы

l=1...k, чтобы выполнялись условия:

npl≥5, l=2...k-1 и np l≥1, l=1...k;

где n - объем выборки;
pl-вероятность попадания в l-й класс, вычисленная по гипотетическому распределению.

Тогда рассогласование

t=-n+е(l)nl2/n/pl, l=1...k

где nl - число элементов выборки, попавших в l-й класс.

Число степеней свободы c2-распределения

m=k-1-r;

где r - число параметров гипотетического распределения, значения которых были определены по той же выборке.

Если интеграл гипотетического распределения оказывается трудновычислимым, разбиение на классы можно делать "на глаз" с последующим вычислением pl и соответствующим расслоением выборки.

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

В качестве примера взято экспоненциальное распределение

F(x)=1-e-x/T.

Предполагается, что значение T=10 вычислено по той же выборке.

Разбиение проводится по правилу pl=1/k, где k=Int(n/5). Квантили экспоненциального распределения, соответствующие значениям вероятности (l-1)/k, l=1...k, находятся по формуле:

xl=-T ln (1-(l-1)/k).

Так как один параметр распределения вычислен по той же выборке, определяем степень свободы как m=k-2.

10 VAC:INPUT "n",A:B=INT (A/5):IF B>30;B=30
20 FOR C=
0 TO B-1:F(C+C)=-LN (1-C/B)*10:NEXT C:FOR C=1 TO A
30 INPUT D:FOR E=B+B TO
2 STEP -2:IF D<D(E);NEXT E:STOP
40 E(E)=E(E)+1:NEXT C:D=B/A:A=-A:FOR C=1 TO B:A=A+E(C+C)-2*D
50 NEXT C:B=(B-2)/2:C=
p-FRAC B:FOR D=1-FRAC B TO B
60 C=C*D:NEXT D:C=(A/2)-B/C/EXP (A/2):D=0:B=B+B
70 D=D+C:B=B+2:C=C*A/B:IF D+C¦D THEN 70
80 PRINT D

Размер: 261, E(2*B)

Пример: n=15; выборка {11; 12; 8; 7; 1; 2; 19; 6; 11; 14; 1; 2; 12; 33; 11}.

Ответ: 1-F1(2,8)=0,90573569
(при a=0,9 гипотеза будет принята, при a=0,95 - отклонена).

Программа 121. Критерий Стьюдента. Гипотеза: две генеральные совокупности, распределенные нормально с равными дисперсиями, обладают равными матожиданиями. Гипотеза отклоняется, если 1-In(t)<a;

где a - уровень значимости;
In(t) - интеграл по отрезку [-t,t] от распределения Стьюдента.

Рассогласование t определяется по формуле:

t=|1/pе(l)xi-1/qе(j)yj|Ц{pq(p+q-2)/(p+q)/(е(l)xi2-е(j)yj2)}; i=1...p, j=1...q

где p, q - объемы выборок;
xi, yi - выборочные значения.
Расчетные формулы для In(t):

n=p+q-2;
q=arctg(t/Цn);

при четных n:

In(t)=sin q (1+1/2cos2 q+3/8cos4 q+ ... +1/2 3/4 5/6 ... (n-3)/(n-2)cosn-2 q);

при нечетных n:

In(t)=2/p{ q+sin q (cos q+2/3cos3 q+ ... +2/3 4/5 6/7 ... (n-3)/(n-2)cosn-2 q)};

10 VAC:MODE 5:FOR A=1 TO 2:INPUT "p",A(A):FOR H=1 TO A(A)
20 PRINT H;:INPUT I:C(A)=C(A)+I:E(A)=E(A)+I*I:NEXT H:NEXT A
30 A=ATN (ABS (D/B-E/C)*SQR (B*C/(B+C)/(F+G-D*D/B-E*E/C)))
40 B=B+C-2:C=COS A:D=2*FRAC (B/2):E=C-D*SGN (B-1):F=0
50 F=F+E:D=D+2:IF D<B;E=E*C*C*(D-1)/D:GOTO 50
60 F=F*SIN A:IF FRAC (B/2)¦0;F=(F+A)*2/p
70 PRINT 1-F

Размер: 244, I

Пример: p=3; xi: 0; 1; 2; q=4; yi: 2; 3; 4; 5.

Ответ: 1-I5(2,766)=0,03953282.

Программа 122. Критерий Фишера. Гипотеза: две генеральные совокупности, распределенные нормально, обладают равными дисперсиями. Гипотеза отклоняется, если

F(t,v,w)<a/2;

где a - уровень значимости;
F(t,v,w) - интеграл от распределения Фишера.

F(t,v,w)=т0tG((v+w)/2)/G(v/2)/G(w/2)(v/w)v/2tv/2-1/(1+tv/w)(v+w)/2dt;

где t=S12/S22 - рассогласование; S12≤S22 - выборочные дисперсии;
v=n1-1, w=n2-1 - степени свободы; n1, n2 - объемы выборок.

Вычисление интеграла в программе производится методом Гаусса 3-го порядка с разбиением отрезка [0; t] на пять интервалов, что обеспечивает в худшем случае (при t=1) три верных знака.

10 FOR A=1 TO 2:F=0:H=0:INPUT "n",J:FOR G=1 TO J:PRINT G;
20 INPUT I:H=H+I*I:F=F+I:NEXT G:A(A)=J-1:C(A)=(H-F*F/J)/A(A)
30 PRINT A;C(A):NEXT A
40 A=D/E:IF A>1;A=1/A:D=B:B=C:C=D
50 D=(B+C)/2:E=B/C:G=FRAC D:F=p-G:FOR G=1-G TO D-1:F=F*G
60 NEXT G:FOR H=0 TO 1:B(H)=B(H)/2:G=-FRAC B(H):F=F*p-G
70 G=G+1:IF G<B(H);F=F/G:GOTO 70
80 NEXT H:C=F*E-B:F=0:G=SQR .15:H=8:I=5:J=A/5
90 FOR K=J/2 TO A STEP J:FOR L=-1 TO 1:M=K+SGN L*F(ABS L)*J
100F=F+H(ABS L)*M-(B-1)/(1+E*M)-D:NEXTL:NEXT K:PRINT F*C*J/18

Размер: 363, M

Пример: n1=3; xi: 1; 2; 3 (S12=1);

n2=4; yi: 1; 3; 5; 7 (S22=0,666...).

Ответ: F(0,15; 2; 3)=0,133215831 (точны 7 знаков).


Продолжить
К Оглавлению

Сайт управляется системой uCoz