【问题标题】:How to find difference in mean using MCMCregress command?如何使用 MCMCregress 命令找到平均值的差异?
【发布时间】:2020-11-26 02:40:05
【问题描述】:

我试图弄清楚如何使用 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'

我应该怎么做才能解决这个问题?

【问题讨论】:

    标签: r mcmc


    【解决方案1】:

    我注意到sex 变量是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
    

    【讨论】:

    • 好的,谢谢,它成功了。你能再给我解释一下吗?
    • @tako:MCMCregress 建议用于具有正常类型误差项的线性回归(例如,对于连续结果),即响应变量必须是数字。在您的示例中,sex 是一个带有“M”和“F”的分类变量。因此,我们必须将它们转换为数字,否则您将收到错误消息。另请注意,对于具有两个类别的分类结果,线性回归和逻辑回归将提供相同的结论。即上述代码中的family=binomialfamily=normal 将提供相同的结论。
    • @tako:由于上述代码有效,请考虑通过单击答案旁边的向上箭头来提供支持。
    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 2021-11-15
    • 2023-01-13
    相关资源
    最近更新 更多