2015-03-20 5 views
2

В целях реализации пространственного анализа, я попытался простой марковской случайное поле ровнее в примере в пакете mgcv в R, где руководство находится здесь:Путаница марковских случайных полей в пакете mgcv в R

https://stat.ethz.ch/R-manual/R-devel/library/mgcv/html/smooth.construct.mrf.smooth.spec.html

Это пример, который я попробовал:

library(mgcv) 
data(columb)   ## data frame 
data(columb.polys) ## district shapes list 
xt <- list(polys=columb.polys) ## neighbourhood structure info for MRF 
b <- gam(crime ~ s(district,bs="mrf",xt=xt),data=columb,method="REML") 

Однако, когда я смотрел на оцениваемых коэффициентах Ь $ коэффициентов, есть 48 оценки от марковского случайного поля плавного:

> b$coefficients 
(Intercept) s(district).1 s(district).2 s(district).3 s(district).4 
35.12882390 -10.96490165 20.99250496 16.04968951 10.49535483 
s(district).5 s(district).6 s(district).7 s(district).8 s(district).9 
16.56626217 14.55352540 17.90043996 -0.60239588 13.41215603 
s(district).10 s(district).11 s(district).12 s(district).13 s(district).14 
    18.61920671 -11.13853418 -2.95677338  7.89719220  3.04717540 
s(district).15 s(district).16 s(district).17 s(district).18 s(district).19 
    -11.18235328 12.57473374 19.83013619 10.56130003 12.36240748 
s(district).20 s(district).21 s(district).22 s(district).23 s(district).24 
    15.65160761 20.40965885 24.79853590  0.05312873 -14.65881026 
s(district).25 s(district).26 s(district).27 s(district).28 s(district).29 
    -13.01294201  7.16191556 -9.36311304  3.65410713 -16.37092777 
s(district).30 s(district).31 s(district).32 s(district).33 s(district).34 
    11.23500771 13.92036006 -14.67653893 -12.39341674 11.02216471 
s(district).35 s(district).36 s(district).37 s(district).38 s(district).39 
    -12.046 -15.48924425  3.42745125 -2.54916472 -1.90604972 
s(district).40 s(district).41 s(district).42 s(district).43 s(district).44 
    -16.25160966 -7.46491914 -4.48126353 -7.61064264 -2.91807488 
s(district).45 s(district).46 s(district).47 s(district).48 
    -12.12765102  6.68446503  2.55883220 -0.20920888 

Однако в списке фигур районов указано 49 областей (от 0 до 48). Когда я пробовал свои данные, такая же ситуация происходила, потому что данные с 28 областями стали более плавными 27 оценок из марковского случайного поля.

Мое понимание - случайное поле Маркова, используемое в качестве пространственной функции, можно рассматривать как структурированный случайный эффект; однако марковское случайное поле, более плавное в пакете mgcv в R, автоматически настраивает первую область как опорный уровень. Мне интересно, так ли это как фиксированный эффект, но при рассмотрении пространственной автокорреляции?

Если да, то расширенная проблема заключается в том, как объяснить такой вывод? Мне очень странно, что пространственную оценку можно объяснить как разницу между каждой областью и ссылочной областью, но эта интерпретация не слишком значима.

Я думаю, что мы можем поместиться с марковским случайным полем, более гладким, как случайный эффект в Р. Надеюсь, кто-нибудь, кто знаком с этим пакетом, может предложить некоторые предложения. Благодаря!

+0

Существует обновление этого вопроса от моего недоразумения до объекта коэффициентов в пакете mgcv. Теперь я могу признать, что выход для марковских случайных полей в коэффициентах b $ - это только его узлы. Я все еще ищу, где я могу получить пространственную оценку каждой области, используемой для рисования карты, показанной графиком (b). Если кто-то знает, как извлечь пространственные оценки, это должно быть довольно благодарно! – cchien

+0

Самый свежий статус: Этот вопрос был решен, используя прогноз (объект, type = "terms", se = T). – cchien

ответ

0

Коэффициенты в многомерном гауссовском сглаживании не должны и не должны интерпретироваться как коэффициенты, индивидуально применяемые к каждому ковариату s является функцией. Они описывают отношение корреляции между ковариатами; корреляция, описываемая рядом коэффициентов, которые должны быть установлены параметром k в функции s R.

По умолчанию s устанавливает k до максимума, n-1. k не может быть больше n-1 с n Число ковариаций в s в качестве перехвата необходимо для установки среднего уровня, функция сглаживания будет меняться вокруг, а общее количество установленных параметров не должно быть больше размера «данных».

Для получения дополнительной информации см. Пункт choose.k в mgcv help file.

Если вас интересует что-то непосредственно применимое к каждому из ваших районов, вы должны проверить значения, предсказанные функцией сглаживания. После gamObject справки, сделанные fitted.values.

Здесь я получаю:

> b$fitted.values 
    [1] 18.81758 22.12502 30.13315 33.14305 44.11208 30.17184 20.96227 39.77438 
    [9] 35.64875 32.88071 54.08242 49.13961 43.58527 49.65618 47.64344 50.99036 
    [17] 32.48752 46.50207 51.70913 21.95138 40.98711 36.13709 21.90757 45.66465 
    [25] 52.92006 43.65122 45.45233 48.74153 53.49958 57.88845 18.43111 20.07698 
    [33] 40.25183 23.72681 36.74403 16.71899 44.32493 47.01028 18.41338 20.69650 
    [41] 20.15782 17.60067 36.51737 30.54075 31.18387 16.83831 25.62500 28.60866 
    [49] 25.47928 

Результат plot(b) позволяет визуализировать припадок, он выглядит хорошо, и соответствие между наблюдаемыми и оценивается Разумно: plot(columb$crime,b$fitted.values)

+0

Я знаю значения в b $ fit.values ​​- это предсказания, которые, безусловно, являются 49 значениями, без сомнения, в этом примере; однако, я имею в виду значения в коэффициентах b $, которые содержат все оценки, включая линейные и нелинейные оценочные коэффициенты. В этом примере всего 49 значений в коэффициентах b $, но первое значение представляет собой оцененный перехват, а остальные 48 оценочных коэффициентов - из s (район). Вот почему я спросил, что в s (район) отсутствует одна оценка. – cchien