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 �нтеллектуальная Кобринщина

Plot Diagnostics for Fitted Models - Wolfram Mathematica

Графические инструменты проверки корректности подбора модели по точкам

Диагностика является важной частью анализа моделей данных. Графики остатков и показателей влиятельности предоставляют ценную информацию о том, являются ли корректные и предполагаемые определения модели и нет ли опорных точек, оказывающих слишком сильное влияние на подбор модели. В Mathematica, подобного рода графики создаются путем совмещения результатов функций, таких как LinearModelFit, со встроенными графическими функциями.

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

In[1]:=

PlotDiagnosticsForFittedModelsRU_1.gif

Линейная модель является моделью, которая линейна по параметрам, подлежащим оценке. Модель в форме PlotDiagnosticsForFittedModelsRU_2.gif является квадратичной по x, то является линейной по параметрам PlotDiagnosticsForFittedModelsRU_3.gif, PlotDiagnosticsForFittedModelsRU_4.gif и PlotDiagnosticsForFittedModelsRU_5.gif.

Воспользуемся функцией LinearModelFit для подбора модели:

In[2]:=

PlotDiagnosticsForFittedModelsRU_6.gif

Out[2]=

PlotDiagnosticsForFittedModelsRU_7.gif

Можно получить численное выражение объекта FittedModel в значениях x. Таким образом, подобранная кривая может быть отображена графически при помощи функции Plot, аргументом которой является функция lm[x].

Построим график подобранной функции:

In[3]:=

PlotDiagnosticsForFittedModelsRU_8.gif

Out[3]=

PlotDiagnosticsForFittedModelsRU_9.gif

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

In[4]:=

PlotDiagnosticsForFittedModelsRU_10.gif

Out[4]=

PlotDiagnosticsForFittedModelsRU_11.gif

Помимо этого, доступен еще целый ряд данных и результатов диагностики объекта FittedModel.

Для линейной модели, остатки должны выглядеть как "белый шум" - произвольные, нормально распределенные значения со средним 0 и постоянной дисперсией. Любые тренды в остатках могут указывать на необходимость внесения изменений в модель.

Воспользуемся свойством FitResiduals объекта FittedModel (в данном случае lm) для получения остатков и отобразим все найденные точки на графике:

In[5]:=

PlotDiagnosticsForFittedModelsRU_12.gif

Out[5]=

PlotDiagnosticsForFittedModelsRU_13.gif

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

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

In[6]:=

PlotDiagnosticsForFittedModelsRU_14.gif

Out[6]=

PlotDiagnosticsForFittedModelsRU_15.gif

Нормированные остатки могут быть полезными, так как они эффективно уменьшают абсолютный диапазон остатков. В случае линейной и нелинейной регрессии, нормированные остатки должны выглядеть как "белый шум" с дисперсией равной 1.

Создадим график нормированных остатков для подобранной линейной модели:

In[7]:=

PlotDiagnosticsForFittedModelsRU_16.gif

Out[7]=

PlotDiagnosticsForFittedModelsRU_17.gif

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

График остатков в зависимости от предикторной переменной строится путем создания пар из значений данных и соответствующих им остатков. Предикторные значения являются первыми элементами каждой точки данных в data:

In[8]:=

PlotDiagnosticsForFittedModelsRU_18.gif

Out[8]=

PlotDiagnosticsForFittedModelsRU_19.gif

Составим пары из значений x и остатков при помощи функции Transpose, а затем отобразим эти пары на графике, используя функцию ListPlot:

In[9]:=

PlotDiagnosticsForFittedModelsRU_20.gif

Out[9]=

PlotDiagnosticsForFittedModelsRU_21.gif

Добавим к графику рамку, соединительные линии и надписи:

In[10]:=

PlotDiagnosticsForFittedModelsRU_22.gif

Out[10]=

Graphics:Residual vs. Predictor

Аналогичным образом, величина влияния или балансировка опорных точек набора данных может быть отображена графически, для определения наличия опорных точек, оказывающ их слишком сильное влияние на подбор модели.

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

In[11]:=

PlotDiagnosticsForFittedModelsRU_24.gif

Out[11]=

PlotDiagnosticsForFittedModelsRU_25.gif

Другие средства поточечной диагностики включают в себя свойства FitDifferences и BetaDifferences, часто именуемые как DFFITS и DFBETAS соответственно. Эти значения могут быть визуализированы для оценки иных видов влияния.

График свойства FitDifferences показывает величину влияния каждой точки на прогнозируемые значения:

In[12]:=

PlotDiagnosticsForFittedModelsRU_26.gif

Out[12]=

PlotDiagnosticsForFittedModelsRU_27.gif

    

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

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

In[13]:=

PlotDiagnosticsForFittedModelsRU_28.gif

К примеру, используем функцию Exp вместе с NonlinearModelFit для подбора экспоненциальной модели по данным:

In[14]:=

PlotDiagnosticsForFittedModelsRU_29.gif

Out[14]=

PlotDiagnosticsForFittedModelsRU_30.gif

Воспользуемся вновь функциями ListPlot и Plot для визуализации выполненного подбора модели:

In[15]:=

PlotDiagnosticsForFittedModelsRU_31.gif

Out[15]=

PlotDiagnosticsForFittedModelsRU_32.gif

Как и в случае с линейной моделью, используя функцию ListPlot, можно строить графики поточечной диагностики; например, график остатков:

In[16]:=

PlotDiagnosticsForFittedModelsRU_33.gif

Out[16]=

PlotDiagnosticsForFittedModelsRU_34.gif

В следующем примере выполняется подбор модели вида PlotDiagnosticsForFittedModelsRU_35.gif, но предполагается, что отклики (значения y в наборе данных) следуют обратно&# 1084;у распределению Гаусса. Это определяется установкой свойства InverseGaussian в опции ExponentialFamily для функции GeneralizedLinearModelFit:

In[17]:=

PlotDiagnosticsForFittedModelsRU_36.gif

Out[17]=

PlotDiagnosticsForFittedModelsRU_37.gif

В отличие от моделей линейной и нелинейной регрессии, ожидается, что дисперсия погрешности не будет константой. Для обратной гауссовой модели, ожидается, что погрешности увеличиваются с увеличением величин отклика.

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

In[18]:=

PlotDiagnosticsForFittedModelsRU_38.gif

Так же, как в линейной и нелинейной регрессии, остатки FitResiduals являются разницей между откликом и расчетной величиной.  AnscombeResiduals преобразует остатки подбора так, чтобы они стали ближе к нормальному шуму для предполагаемого распределения. PearsonResiduals выполняет перерасчет остатков на основе оценки дисперсии в каждой точке, а StandardizedPearsonResiduals выполняет перерасчет остатков на основе общей дисперсии.

Далее, определим надписи для каждого графика остатков, который предполагается создать:

In[19]:=

PlotDiagnosticsForFittedModelsRU_39.gif

Создадим графики для разных видов остатков и добавим надпись к каждому. Вывод результата здесь подавляется использованием точки с запятой (;). Графики будут выведены в табличной форме в следующем шаге:

In[20]:=

PlotDiagnosticsForFittedModelsRU_40.gif

Используем функцию Partition для создания массива 2?2, а затем выведем на экран графики в виде таблицы, используя функцию GraphicsGrid:

In[21]:=

PlotDiagnosticsForFittedModelsRU_41.gif

Out[21]=

Graphics:Types of Residuals