Проверки Breusch-Pagan & Koenker на гетероскедастичность
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 | * Макрос для проверок BREUSCH-PAGAN & KOENKER на гетероскедастичность * * См. технические подробности в Gwilym Pryce, Heteroscedasticity: Testing and correcting in SPSS. * Автор кода: Marta Garcia-Granero, 28.10.2002. * МАКРОС требует 3 аргумента: * зависимая переменная, число предикторов, список предикторов * (если последние располагаются в файле последовательно, можно использовать ключевое слово "TO") . * (1) Определение МАКРОСА (выделите и запустите ОДИН раз). DEFINE bpktest(!POSITIONAL !TOKENS(1) /!POSITIONAL !TOKENS(1) /!POSITIONAL !CMDEND). * Строим регрессию для получения остатков и их графиков. REGRESSION /STATISTICS R ANOVA /DEPENDENT !1 /METHOD=ENTER !3 /SCATTERPLOT=(*ZRESID,*ZPRED) /RESIDUALS HIST(ZRESID) NORM(ZRESID) /SAVE RESID(residual) . do if $casenum=1. print /"Исследуйте диаграмму разброса остатков. На ней" /"иногда можно увидеть проблемы с видом модели и/или гетероскедастичностью" /"" /"Проверьте также гистограмму и нормальный вероятностный график остатков" /"для проверки нормальности распределения остатков." /"Асимметрия и эксцесс, более, чем" /"в 2 раза превосходящие их стандартные ошибки - симптом ненормальности остатков". end if. * Проверка нормальности остатков. DESCRIPTIVES VARIABLES=residual /STATISTICS=KURTOSIS SKEWNESS . * Создание новой зависимой переменной (g). COMPUTE sq_res=residual**2. compute constant=1. AGGREGATE /OUTFILE='tempdata.sav' /BREAK=constant /rss = SUM(sq_res) /N=N. MATCH FILES /FILE=* /FILE='tempdata.sav'. EXECUTE. if missing(rss) rss=lag(rss,1). if missing(n) n=lag(n,1). compute g=sq_res/(rss/n). execute. * Проверки BP&K. * Regression of g on the predictors. REGRESSION /STATISTICS R ANOVA /DEPENDENT g /METHOD=ENTER !3 /SAVE RESID(resid) . *Выдача. do if $casenum=1. print /" Проверки BP&K" /" ==========". end if. * Алгоритм адаптирован по Gwilym Pryce. matrix. compute p=!2. get g /variables=g. get resid /variables=resid. compute sq_res2=resid&**2. compute n=nrow(g). compute rss=msum(sq_res2). compute ii_1=make(n,n,1). compute i=ident(n). compute m0=i-((1/n)*ii_1). compute tss=transpos(g)*m0*g. compute regss=tss-rss. print regss /format="f8.4" /title="Регрессионная сумма квадратов". print rss /format="f8.4" /title="Сумма квадратов остатков". print tss /format="f8.4" /title="Общая сумма квадратов". compute r_sq=1-(rss/tss). print r_sq /format="f8.4" /title="R-квадрат". print n /format="f4.0" /title="Размер выборки (N)". print p /format="f4.0" /title="Число предикторов (P)". compute bp_test=0.5*regss. print bp_test /format="f8.3" /title="Проверка Breusch-Pagan'а на гетероскедастичность" + " (Хи-квадрат, df=P)". compute sig=1-chicdf(bp_test,p). print sig /format="f8.4" /title="Уровень значимости статистики хи-квадрат, df=P (H0:" + "гомоскедастичность)". compute k_test=n*r_sq. print k_test /format="f8.3" /title="Проверка Koenker'а на гетероскедастичность" + " (Хи-квадрат, df=P)". compute sig=1-chicdf(k_test,p). print sig /format="f8.4" /title="Уровень значимости статистики хи-квадрат, df=P (H0:" + "гомоскедастичность)". end matrix. !ENDDEFINE. * (2) Пример данных (вообще данные должны быть вашими)*. INPUT PROGRAM. - VECTOR x(20). - LOOP #I = 1 TO 50. - LOOP #J = 1 TO 20. - COMPUTE x(#J) = NORMAL(1). - END LOOP. - END CASE. - END LOOP. - END FILE. END INPUT PROGRAM. execute. * x1 - зависимая переменная, а x2 TO x20 - предикторы. * (3) ВЫЗОВ МАКРОСА (выделите и запустите). BPKTEST x1 19 x2 TO x20. |
Related pages
...