DurbinWatsonStats(N: Integer; K: Integer; Alpha: Double; Var dL: Double; Var dU: Double);
DurbinWatsonStats(N: integer; K: integer; Alpha: double; var dL: double; var dU: double);
N. Количество наблюдений;
K. Количество переменных в модели, включая константу;
Alpha. Уровень значимости. Может принимать значения 1, 2.5 и 5;
dL. Нижняя граница интервала статистики Дарбина-Уотсона.
dU. Верхняя граница интервала статистики Дарбина-Уотсона.
Метод DurbinWatsonStats возвращает приближенные значения границ интервала статистики Дарбина-Уотсона, взятые из таблиц.
После выполнения метода параметры dL и dU примут значения нижней и верхней границ интервала статистики Дарбина-Уотсона.
Интерпретация результатов:
Если DW ≤ 2, выполняется проверка о положительной автокорреляции:
Если du < DW - нулевая гипотеза не отвергается, можно говорить об отсутствии автокорреляции;
Если dl < DW и DW < du - имеет место неопределённость;
Если 0 < DW и DW < dl - нулевая гипотеза отвергается, можно говорить о наличии положительной автокорреляции остатков.
Если DW > 2, выполняется проверка об отрицательной автокорреляции, следует пересчитать статистику DW = 4 - DW и осуществить проверку аналогично первому случаю.
Добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
Stat: Statistics;
N, K: Integer;
Alpha, dU, dL, DW: Double;
Begin
Stat := New Statistics.Create;
// Зададим количество наблюдений
N := 20;
// Зададим количество переменных в модели
K := 5;
// Зададим уровень значимости
Alpha := 5;
// Произведем расчет границ интервала статистики Дарбина-Уотсона
Stat.DurbinWatsonStats(N, K, Alpha, dL, dU);
// Выведем нижнюю и верхнюю границы интервала
Debug.WriteLine("Нижняя граница интервала: " + dL.ToString);
Debug.WriteLine("Верхняя граница интервала: " + dU.ToString);
//Проверка гипотезы
DW := 1.98;
Debug.WriteLine("Проверка гипотезы:");
If (DW <= 2) Then
If (dU < DW) Then
Debug.WriteLine("Нулевая гипотеза принимается, " +
"коэф.автокорреляции р = 0, автокорреляции остатков нет" );
End If;
If ((dL < DW) And (DW < dU)) Then
Debug.WriteLine("Неопределённость");
End If;
If ((0 < DW) And (DW < dL)) Then
Debug.WriteLine("Нулевая гипотеза отвергается, " +
"коэф.автокорреляции p <> 0, есть автокорреляция остатков" );
End If;
Else
DW := 4 - DW;
If (dU < DW) Then
Debug.WriteLine("Нулевая гипотеза принимается, " +
"коэф.автокорреляции р = 0, автокорреляции остатков нет" );
End If;
If ((dL < DW) And (DW < dU)) Then
Debug.WriteLine("Неопределённость");
End If;
If ((0 < DW) And (DW < dL)) Then
Debug.WriteLine("Нулевая гипотеза отвергается," +
"коэф.автокорреляции p <> 0, есть отрицательная aвтокорреляция остатков" );
End If;
End If;
End Sub UserProc;
В результате выполнения примера в окно консоли будут выведены нижняя и верхняя границы интервала статистики Дарбина-Уотсона, будет совершена проверка гипотезы о наличии автокорреляции остатков.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
Stat: Statistics;
N, K: Integer;
Alpha, dU, dL, DW: Double;
Begin
Stat := New Statistics.Create();
// Зададим количество наблюдений
N := 20;
// Зададим количество переменных в модели
K := 5;
// Зададим уровень значимости
Alpha := 5;
// Произведем расчет границ интервала статистики Дарбина-Уотсона
Stat.DurbinWatsonStats(N, K, Alpha, Var dL, Var dU);
// Выведем нижнюю и верхнюю границы интервала
System.Diagnostics.Debug.WriteLine("Нижняя граница интервала: " + dL);
System.Diagnostics.Debug.WriteLine("Верхняя граница интервала: " + dU);
//Проверка гипотезы
DW := 1.98;
System.Diagnostics.Debug.WriteLine("Проверка гипотезы:");
If (DW <= 2) Then
If (dU < DW) Then
System.Diagnostics.Debug.WriteLine("Нулевая гипотеза принимается, " +
"коэф.автокорреляции р = 0, автокорреляции остатков нет" );
End If;
If ((dL < DW) And (DW < dU)) Then
System.Diagnostics.Debug.WriteLine("Неопределённость");
End If;
If ((0 < DW) And (DW < dL)) Then
System.Diagnostics.Debug.WriteLine("Нулевая гипотеза отвергается, " +
"коэф.автокорреляции p <> 0, есть автокорреляция остатков" );
End If;
Else
DW := 4 - DW;
If (dU < DW) Then
System.Diagnostics.Debug.WriteLine("Нулевая гипотеза принимается, " +
"коэф.автокорреляции р = 0, автокорреляции остатков нет" );
End If;
If ((dL < DW) And (DW < dU)) Then
System.Diagnostics.Debug.WriteLine("Неопределённость");
End If;
If ((0 < DW) And (DW < dL)) Then
System.Diagnostics.Debug.WriteLine("Нулевая гипотеза отвергается, " +
"коэф.автокорреляции p <> 0, есть отрицательная aвтокорреляция остатков" );
End If;
End If;
End Sub;
См. также: