#r #mcmc
#r #mcmc
Вопрос:
Я пытаюсь выяснить, как найти разницу в средних значениях для двух категориальных переменных с помощью MCMCregress и построить графики плотности.
Мой код
library(MCMCpack)
data("crabs")
out <- MCMCregress(sex~sp , data = data, family=binomial)
summary(out)
Я продолжаю получать сообщение об ошибке-
Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, : NA/NaN/Inf in 'y'
Что я должен сделать, чтобы исправить это?
Ответ №1:
Я заметил, что sex
переменная равна a factor
. Вы можете просто преобразовать factor
в numeric
, и ваш код будет работать. Вот код,
library(MCMCpack)
data("crabs")
out <- MCMCregress(as.numeric(sex)~sp , data = crabs, family=binomial)
summary(out)
Iterations = 1001:11000
Thinning interval = 1
Number of chains = 1
Sample size per chain = 10000
1. Empirical mean and standard deviation for each variable,
plus standard error of the mean:
Mean SD Naive SE Time-series SE
(Intercept) 1.5002783 0.05052 0.0005052 0.0005052
spO -0.0003147 0.07202 0.0007202 0.0007202
sigma2 0.2551607 0.02597 0.0002597 0.0002637
2. Quantiles for each variable:
2.5% 25% 50% 75% 97.5%
(Intercept) 1.4016 1.46639 1.5005847 1.53420 1.5996
spO -0.1433 -0.04842 -0.0009755 0.04696 0.1420
sigma2 0.2091 0.23688 0.2534471 0.27180 0.3105
Комментарии:
1. Хорошо, спасибо, это сработало. Можете ли вы объяснить это мне дальше?
2. @tako:
MCMCregress
предлагается для линейной регрессии с ошибками нормального типа (например, для непрерывных результатов), то есть переменная ответа должна быть числовой. В вашем примереsex
это категориальная переменная с «M» и «F». Таким образом, мы должны преобразовать их в числовые, иначе вы получите сообщение об ошибке. Также обратите внимание, что для категориальных результатов с двумя категориями линейная регрессия и логистическая регрессия дадут одинаковый вывод. То естьfamily=binomial
иfamily=normal
в приведенном выше коде будет такой же вывод.3. @tako: поскольку приведенный выше код сработал, пожалуйста, рассмотрите возможность предоставления голоса вверх, нажав на стрелку вверх рядом с ответом.