2015-09-29 5 views
0

Я бегу spBayes, чтобы соответствовать «смещение» модели у ~ 1.SpBayes для смещения модели

У меня есть dataframe как этот

ID lon lat  y 
1 A 90.0 5.9 0.957096100 
2 A 90.5 6.0 0.991374969 
3 A 91.1 6.0 0.991374969 
4 A 92.7 6.1 0.913501740 
5 A 94.0 6.1 0.896575928 
6 A 97.8 5.2 0.631320953 
7 A 98.9 4.4 -0.282432556 
8 A 101.2 2.8 1.829053879 
9 A 102.3 2.0 0.993621826 
10 A 105.8 0.5 0.038677216 

где переменная ID является фактором с двумя уровнями A и B. Я хотел бы найти смещение для двух идентификаторов. Однако, когда я бегу

fit.by.ALL <- spLM(formula=y ~ ID, data= df, coords=coords, 
       priors=priors, tuning=tuning, starting=starting, 
       cov.model = "exponential", n.samples = n.samples, verbose = TRUE, 
       n.report = 50) 

, который дает результат

Iterations = 1:251 
Thinning interval = 1 
Number of chains = 1 
Sample size per chain = 251 

1. Empirical mean and standard deviation for each variable, 
    plus standard error of the mean: 

       Mean  SD Naive SE Time-series SE 
(Intercept) 1.0736 2.8674 0.18099  0.18099 
IDB   -0.9188 0.1922 0.01213  0.01213 

2. Quantiles for each variable: 

       2.5% 25%  50%  75% 97.5% 
(Intercept) -4.952 -0.773 1.1059 3.0165 6.4824 
IDB   -1.303 -1.048 -0.9284 -0.7679 -0.5795 

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

Кроме того, чтобы найти окончательное смещение для идентификатора B Мне нужно добавить (Перехватить) Среднее значение IDB Среднее, как оно работает для SD?

Было бы лучше запустить формулу spLM отдельно для двух идентификаторов (с y ~ 1 вместо y ~ ID)?

Благодаря

ответ

1

Я неясно, что вы имеете в виду под «подогнать смещение модели у ~ 1». Когда я прочитал это, я думаю, что вы хотите модель, которая имеет только перехват, но читать далее он предлагает вы хотите модель, в которой вы можете оценить среднее значение для обеих групп, которые могут быть выполнены с использованием

y ~ 0+ID # manually remove the intercept, 

Чтобы ответить на ваш вопросы:

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

Вы не используете очень много итераций. Попробуйте выполнить больше итераций. При достаточном количестве итераций результаты должны быть стабильными.

Кроме того, чтобы найти окончательное смещение для идентификатора B Мне нужно добавить (Перехват) Среднее значение IDB Среднее, как оно работает для SD?

Опять же, я не уверен, что вы подразумеваете под смещением, но если вы хотите разделить средства между группой A и группой B, это именно то, что вы имеете в строке, начинающейся с IDB. То есть, -0,9188 представляет собой расчетную разницу в средствах между группой B и группой A, то есть среднее значение группы B оценивается на 0,9188 меньше, чем среднее значение группы B, а SD является задним стандартным отклонением.

Если вас интересует среднее значение группы B, то вы правы, что вы должны добавить (перехват) в IDB, но вы не можете просто добавить SD. У вас есть два варианта: 1) использовать соответствующую матрицу проектирования (X в приведенном выше коде), которая непосредственно получает ваши требуемые оценки параметров или 2) получает образцы MCMC и вычисляет сумму (Intercept) и IDB-параметров для каждой итерации и затем принять средства и стандартные отклонения этих сумм.

Было бы лучше запустить формулу spLM отдельно для двух идентификаторов (с y ~ 1 вместо y ~ ID)?

Если вы запускаете их отдельно, то вы будете оценивать пространственные параметры отдельно. Если пространственные параметры различны в двух разных группах, управление ими по отдельности имеет большой смысл. Если они одинаковы (или похожи), то, вероятно, имеет смысл объединить две группы вместе, чтобы вы могли «заимствовать информацию» о пространственных параметрах между этими двумя группами.

+0

спасибо за ваш ответ. Я не уверен, хотя я понял вашу идею о матрице дизайна. Если я запустил 'fit.by <- spLM (formula = oesst ~ X + 0, data = dfBy, coords = coords, priors = priors, tuning = tuning, start = start, cov.model = "экспоненциальный", n.samples = n.samples, verbose = TRUE, n.report = 50) ' – user3910073

+0

Я получаю эту ошибку' Error in '[[<-. data .frame' ('* tmp *', nn, value = c (1L, 1L, 1L, 1L, 1L,: Замена имеет 2400 строк, данные имеют 1200' – user3910073

+0

Могу я просто использовать 'formula = y ~ ID + 0 '? Спасибо – user3910073

 Смежные вопросы

  • Нет связанных вопросов^_^