Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Get Results for Fitted Models - Wolfram Mathematica

Получение результатов для модели,  найденной путем подбора

При подборе модели по точкам, часто бывает важно получить дополнительные результаты, для сравнения данных с подобранной функцией. Возникает необходимость в проверке значимости (достоверности) параметров и оценке определения модели, влияния точек данных и качества подгонки модели. В Mathematica можно получить эти результаты прямо из объектов FittedModel, которые возвращаются функциями подбора модели, такими как LinearModelFit, NonlinearModelFit и GeneralizedLinearModelFit.

Для начала, зададим набор данных для последующей обработки:

In[11]:=

GetResultsForFittedModelsRU_1.gif

Выполним подбор простой модели линейной регрессии, воспользовавшись функцией LinearModelFit:

In[12]:=

GetResultsForFittedModelsRU_2.gif

Out[12]=

GetResultsForFittedModelsRU_3.gif

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

Используем команду Normal для выделения функциональной формулы подобранной модели:

In[13]:=

GetResultsForFittedModelsRU_4.gif

Out[13]=

GetResultsForFittedModelsRU_5.gif

Помимо этого, можно также найти значения модели в определенных точках.

Выразим модель в виде функции переменной z, вместо первоначальной переменной x:

In[14]:=

GetResultsForFittedModelsRU_6.gif

Out[14]=

GetResultsForFittedModelsRU_7.gif

Нахождение численного значения дает результат, предсказанный функцией при заданном численном значении переменной x:

In[24]:=

GetResultsForFittedModelsRU_8.gif

Out[24]=

GetResultsForFittedModelsRU_9.gif

Ввиду того, что объект FittedModel расценивается как функция, его график может быть построен при помощи функции Plot напрямую:

In[25]:=

GetResultsForFittedModelsRU_10.gif

Out[25]=

GetResultsForFittedModelsRU_11.gif

Отобразим, для большей наглядности, опорные точки вместе с подобранной функцией, использовав команду Show для совмещения графика ListPlot исходного набора данных (опорных точек) и предыдущего графика:

In[26]:=

GetResultsForFittedModelsRU_12.gif

Out[26]=

GetResultsForFittedModelsRU_13.gif

Объекты FittedModel содержат, также множество сведений и оценок, относящихся к типу модели, которую они представляют (в данном случае - линейная модель). Вы можете выполнить вычисление подобранной модели FittedModel задав в качестве аргумента опцию Properties, чтобы получить полный список свойств, доступных для данной модели.

Здесь, функция Length использована для отображения количества свойств, известных для этой модели:

In[27]:=

GetResultsForFittedModelsRU_14.gif

Out[27]=

GetResultsForFittedModelsRU_15.gif

Зачастую, бывает важно задаться вопросом: имеют или нет оценки параметров статистическую значимость, то есть насколько оценки параметров отличаются от 0. К примеру, в линейной модели можно посмотреть на p-значение для t-статистики, связанное с этим параметром.  Это p-значение является вероятностью того, что случайная величина, с распределением  t-статистики при нулевой гипотезе, примет значение не меньшее, чем фактическое значение  t-статистики.

Воспользуемся свойством ParameterTable для FittedModel, чтобы вывести таблицу, обобщающую оценки параметров, t-статистику и p-значения:

In[28]:=

GetResultsForFittedModelsRU_16.gif

Out[28]=

Estimate Standard Error t-Statistic P-Value
1 -8.43508 2.88435 -2.92443 0.0191609
x 5.48362 0.464367 11.8088 2.42278*10^^-6

Можно воспользоваться другими свойствами, чтобы получить t-статистику и p-значения порознь. Это особенно удобно, если требуется вычислять другие результаты на основе этих свойств. Воспользуемся свойством ParameterPValues для FittedModel для вывода только p-значений:

In[7]:=

GetResultsForFittedModelsRU_17.gif

Out[7]=

GetResultsForFittedModelsRU_18.gif

Отобразим несколько свойств сразу, задав список свойств. Выведем t-статистику и p-значения вместе:

In[10]:=

GetResultsForFittedModelsRU_19.gif

Out[10]=

GetResultsForFittedModelsRU_20.gif

Кроме того, можно также получить доверительные области для параметров:

In[11]:=

GetResultsForFittedModelsRU_21.gif

Out[11]=

GetResultsForFittedModelsRU_22.gif

По умолчанию, возвращаются 95% доверительные области. Однако, можно получить и другие области, с другими уровнями доверительности, используя опцию ConfidenceLevel.

Выведем 99% доверительные области для параметров:

In[12]:=

GetResultsForFittedModelsRU_23.gif

Out[12]=

GetResultsForFittedModelsRU_24.gif

Кроме указанного выше, Mathematica дополнительно предлагает поточечную диагностическую статистику, как например остатки.

В данном примере, вычислены и сохранены под именем resids остатки для подобранной модели:

In[13]:=

GetResultsForFittedModelsRU_25.gif

Out[13]=

GetResultsForFittedModelsRU_26.gif

Отобразим остатки при помощи функции ListPlot:

In[14]:=

GetResultsForFittedModelsRU_27.gif

Out[14]=

GetResultsForFittedModelsRU_28.gif

    

Несмотря на то, что их доступные свойства несколько разнятся, результаты и диагностика для нелинейной и обобщенной линейной модели могут быть получены одним и тем же способом.  Можно проводить подбор моделей этих видов при помощи функций  NonlinearModelFit, GeneralizedLinearModelFit, LogitModelFit или ProbitModelFit.

Зададим другой набор данных для последующей обработки:

In[15]:=

GetResultsForFittedModelsRU_29.gif

Используем функцию NonlinearModelFit для подбора экспоненциальной модели по точкам набора данных:

In[16]:=

GetResultsForFittedModelsRU_30.gif

Out[16]=

GetResultsForFittedModelsRU_31.gif

Так же, как и в случае с линейной моделью, применим функцию Show для совмещения графиков точек набора данных и полученной модели:

In[17]:=

GetResultsForFittedModelsRU_32.gif

Out[17]=

GetResultsForFittedModelsRU_33.gif

Кроме того, можно просмотреть в табличной форме результаты оценок для каждой конкретной точки. Воспользуемся свойством SinglePredictionConfidenceIntervalTable для FittedModel, чтобы вывести таблицу вычисленных значений с оценками погрешности и доверительными интервалами:

In[18]:=

GetResultsForFittedModelsRU_34.gif

Out[18]=

Observed Predicted Standard Error Confidence Interval
75.3 61.3782 8.16672 {42.5457,80.2106}
6.8 4.95419 7.09971 {-11.4178,21.3262}
37.9 40.3497 7.59679 {22.8315,57.8679}
48.8 61.3782 8.16672 {42.5457,80.2106}
9.7 10.3223 7.43956 {-6.83337,27.478}
6.1 5.50194 7.13945 {-10.9617,21.9655}
3.4 2.93262 6.9499 {-13.0939,18.9591}
2.2 1.92789 6.87865 {-13.9343,17.7901}
11.4 9.29464 7.38431 {-7.7336,26.3229}
8.1 9.29464 7.38431 {-7.7336,26.3229}

Дополнительно, можно отобразить соответствующие прогнозные области.

В первую очередь, определим функции для 80%, 90%, 95% и 99% прогнозных областей подобранной функции:

In[19]:=

GetResultsForFittedModelsRU_35.gif

Отобразим зоны, ограниченные прогнозными областями вдоль подобранной функции, и используем команду Filling для более легкого визуального восприятия зон с разным уровнем доверительности:

In[20]:=

GetResultsForFittedModelsRU_36.gif

Out[20]=

GetResultsForFittedModelsRU_37.gif