1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
	*~~~~~~~~~~~~~~~~~~~~~.
		*~~~~~~~~~~~~~~~~~~~~~.
		*~~~~~~~~~~~~~~~~~~~~~.
		*   Статвывод для долей.
		*~~~~~~~~~~~~~~~~~~~~~.
		*         20 марта 2001         .
		*~~~~~~~~~~~~~~~~~~~~~.
		*~~~~~~~~~~~~~~~~~~~~~.

*для справок см. Moore and McCabe (2001), Intro to the Practice of Statistics, глава 8.


*-------------------------------------------------------------------------------.
*-------------------------------------------------------------------------------.
* Проверка гипотезы о доле в генеральной совокупности по большой выборке.
* (см. Moore and McCabe (2001), Intro to the Practice of Statistics, стр. 588-591).
*-------------------------------------------------------------------------------.

MATRIX.
COMPUTE n = {4040}. /* Введите сюда объём выборки (т.е. измените число в фигурных скобках)*/
COMPUTE x = {1992}. /* Введите число "успешных" исходов (определяет долю) (измените число в фигурных скобках)*/
COMPUTE p0 = {0.5}. /* Введите проверяемое значение доли в генеральной совокупности (измените число в фигурных скобках)/*
*Далее синтаксис вычисляет статистку z и её значимость для значений 
	n, x и p0, которые вы задали выше.
*NB С этой строки вам больше ничего не следует изменять.
COMPUTE p = x/n.
COMPUTE SE_p0 = SQRT((p0*(1-p0))/n).
COMPUTE z = (p - p0) /SE_p0.
COMPUTE SIGz_2TL = 2 * (1 - CDFNORM(ABS(Z))).
COMPUTE SIGz_LTL = CDFNORM(Z).
COMPUTE SIGz_UTL = 1 - CDFNORM(Z).
COMPUTE ANSWER = {n, p, SE_p0, z, SIGz_2TL, SIGz_LTL, SIGz_UTL}.
PRINT ANSWER / FORMAT "F10.3" / CLABELS = n, p, SE, z, SIGz_2TL, SIGz_LTL, SIGz_UTL.
END MATRIX.

*В выводе выше: n - объём выборки, p - выборочная доля, SE - стандартная ошибка доли,
        z - статистика критерия, SIGz_2TL - двусторонняя значимость статистики, SIGz_LTL - левосторонняя
        значимость, SIGz_UTL - правосторонняя значимость - А.Б.
*NB Если требуется получить значения статистик с большим/меньшим числом десятичных знаков,  
	измените формат в предпоследней строке.
*например, если требуется только 2 знака, укажите формат "F10.2".
*-------------------------------------------------------------------------------.



*-------------------------------------------------------------------------------.
*-------------------------------------------------------------------------------.
* Доверительный интервал для доли в генеральной совокупности по большой выборке.
* (см. Moore and McCabe (2001), Intro to the Practice of Statistics, стр. 586-588).
*-------------------------------------------------------------------------------.
*Для вычисления обратного нормального распределения я использую аппроксимацию, представленную на 
	http://www.hpmuseum.org/software/67pacs/67ndist.htm, которая была адаптирована по книге Abramowitz and 
	Stegun, Handbook of Mathematical Functions, National Bureau of Standards 1970. 

MATRIX.
COMPUTE n = {4040}.       /* Введите сюда объём выборки (т.е. измените число в фигурных скобках)*/
COMPUTE x = {2048}.       /* Введите число "успешных" исходов (определяет долю) (измените число в фигурных скобках)*/
COMPUTE CONFID = {0.99}.  /* Введите желаемый доверительный уровень */
*Далее синтаксис строит доверительный интервал с параметрами, заданными выше.
*NB С этой строки вам больше ничего не следует изменять.
COMPUTE Q = 0.5 * (1-CONFID).
COMPUTE A = ln(1/(Q**2)).
COMPUTE T_ = SQRT(A).
COMPUTE zstar = T_ - ((2.515517 + (0.802853*T_)  + (0.010328*T_**2))/
(1 + (1.432788*T_) + (0.189269*T_**2) + (0.001308*T_**3))).
COMPUTE phat = x/n.
COMPUTE SE_phat = SQRT((phat*(1-phat))/n).
COMPUTE m = zstar * SE_phat.
COMPUTE LOWER = phat - m.
COMPUTE UPPER = phat + m.
COMPUTE ANSWER = {n, phat, zstar, SE_phat, Lower, Upper}.
PRINT ANSWER / FORMAT "F10.5" 
	/Title = "ДИ для доли в генеральной совокупности" 
	/ CLABELS = n, phat, zstar, SE, Lower, Upper.
END MATRIX.

*В выводе выше: n - объём выборки, phat - выборочная доля (точечная оценка генеральной доли),
	SE - стандартная ошибка доли, zstar - z-значение, соответствующее заданному доверительному уровню,
	Lower - нижняя граница ДИ, Upper - верхняя граница ДИ - А.Б.
*NB Если требуется получить значения статистик с большим/меньшим числом десятичных знаков,  
	измените формат в предпоследней команде.
*например, если требуется только 2 знака, укажите формат "F10.2".
*------------------------------------------------------------------------------.
*------------------------------------------------------------------------------.


*##############################################################################.


*------------------------------------------------------------------------------.
*------------------------------------------------------------------------------.

* Проверка равенства долей в генеральных совокупностях (по двум большим выборкам).

MATRIX.
COMPUTE n1 = {7180}.  /* Введите объём первой выборки (в фигурные скобки)*/
COMPUTE n2 = {9916}.  /* Введите объём второй выборки (в фигурные скобки)*/
COMPUTE x1 = {1630}.  /* Введите число "успешных" исходов (определяющих долю) в первой выборке (в фигурные скобки)*/
COMPUTE x2 = {1684}.  /* Введите число "успешных" исходов (определяющих долю) во второй выборке (в фигурные скобки)*/
*Далее синтаксис вычисляет статистику критерия z и уровень значимости для введённых величин.
*NB С этой строки вам больше ничего не следует изменять.
COMPUTE p1 = x1/n1.
COMPUTE p2 = x2/n2.
COMPUTE phat = (x1 + x2) / (n1 + n2).
COMPUTE SE_phat = SQRT(phat * (1 - phat) * ((1/n1) + (1/n2))).
COMPUTE z = (p1 - p2) /SE_phat.
COMPUTE SIGz_2TL = 2 * (1 - CDFNORM(ABS(z))).
COMPUTE SIGz_LTL = CDFNORM(Z).
COMPUTE SIGz_UTL = 1 - CDFNORM(Z).
COMPUTE ANSWER = {p1, p2, SE_phat, z, SIGz_2TL, SIGz_LTL, SIGz_UTL}.
PRINT ANSWER / FORMAT "F10.5" / CLABELS = p1, p2, SE, z, SIGz_2TL, SIGz_LTL, SIGz_UTL.
END MATRIX.
* В выдаче выше: p1 - доля в первой выборке, p2 - доля во второй выборке, SE - стандартная ошибка разницы, 
	z - статистика критерия, SIGz_2TL - двусторонняя значимость статистики, SIGz_LTL - левосторонняя
        значимость, SIGz_UTL - правосторонняя значимость - А.Б.
*-------------------------------------------------------------------------------.



*-------------------------------------------------------------------------------.
*-------------------------------------------------------------------------------.
* Доверительный интервал для разности двух долей в ген. совокупностях (по двум большим выборкам).
* (см. Moore and McCabe (2001) Intro to the Practice of Statistics, стр. 602-604).
*-------------------------------------------------------------------------------.
*Для вычисления обратного нормального распределения я использую аппроксимацию, представленную на 
	http://www.hpmuseum.org/software/67pacs/67ndist.htm, которая была адаптирована по книге Abramowitz and 
	Stegun, Handbook of Mathematical Functions, National Bureau of Standards 1970. 

MATRIX.
COMPUTE n1 = {84}.  /* Введите объём первой выборки (в фигурные скобки)*/
COMPUTE n2 = {106}.  /* Введите объём второй выборки (в фигурные скобки)*/
COMPUTE x1 = {15}.  /* Введите число "успешных" исходов (определяющих долю) в первой выборке (в фигурные скобки)*/
COMPUTE x2 = {21}. /* Введите число "успешных" исходов (определяющих долю) во второй выборке (в фигурные скобки)*/
COMPUTE CONFID = {0.90}.  /* Введите желаемый доверительный уровень */
*Далее синтаксис вычисляет доверительный интервал для величин, введённых выше.
*NB С этой строки вам больше ничего не следует изменять.
COMPUTE Q = 0.5 * (1-CONFID).
COMPUTE A = ln(1/(Q**2)).
COMPUTE T_ = SQRT(A).
COMPUTE zstar = T_ - ((2.515517 + (0.802853*T_)  + (0.010328*T_**2))/
 (1 + (1.432788*T_) + (0.189269*T_**2) + (0.001308*T_**3))).
COMPUTE p1hat = x1/n1.
COMPUTE p2hat = x2/n2.
COMPUTE SE_phat = SQRT(((p1hat*(1-p1hat))/n1) + (p2hat*(1-p2hat))/n2)).
COMPUTE m = zstar * SE_phat.
COMPUTE LOWER = (p1hat - p2hat) - m.
COMPUTE UPPER = (p1hat - p2hat) + m.
COMPUTE diffp1p2 = p1hat - p2hat.
COMPUTE ANSWER = {n1, n2, diffp1p2, zstar, SE_phat, Lower, Upper}.
PRINT ANSWER / FORMAT "F10.5" 
	/Title = "Доверительный интервал для разности двух долей" 
	/ CLABELS = n1, n2, diffp1p2, zstar, SE, Lower, Upper.
END MATRIX.

*В выводе выше: n1 и n2 - объёмы выборок diffp1p2 - разница долей,
	SE - стандартная ошибка разности, zstar - z-значение, соответствующее заданному доверительному уровню,
	Lower - нижняя граница ДИ, Upper - верхняя граница ДИ - А.Б.
*NB Если требуется получить значения статистик с большим/меньшим числом десятичных знаков,  
	измените формат в предпоследней команде.
*например, если требуется только 2 знака, укажите формат "F10.2".


*(c) Gwilym Pryce 2002.