如何将反向guassian分布拟合到我的数据,最好使用fitdist{FitDistripPlus}

如何将反向guassian分布拟合到我的数据,最好使用fitdist{FitDistripPlus},r,fitdistrplus,R,Fitdistrplus,我试图用GLMM分析一些反应时间数据。为了找到最适合我的数据的分布,我使用fitdist()表示伽马分布和对数正态分布。结果表明,对数正态分布更符合我的数据。 然而,最近我读到,逆高斯分布可能更适合反应时间数据 我使用nigFitStart获取开始值: library(GeneralizedHyperbolic) invstrt <- nigFitStart(RTtotal, startValues = "FN") 因此,我尝试使用fitdist的开始参数: re

我试图用GLMM分析一些反应时间数据。为了找到最适合我的数据的分布,我使用fitdist()表示伽马分布和对数正态分布。结果表明,对数正态分布更符合我的数据。 然而,最近我读到,逆高斯分布可能更适合反应时间数据

我使用nigFitStart获取开始值:

    library(GeneralizedHyperbolic)
    invstrt <- nigFitStart(RTtotal, startValues = "FN")
因此,我尝试使用fitdist的开始参数:

    require(fitdistrplus)

    fitinvgauss <- fitdist(RTtotal, "invgauss", start = list(mu=776, delta=314, alpha=0.007, beta=-0.05))
我还使用了ig_fit{goft},得到了以下结果:

    Inverse Gaussian MLE 
    mu                   775.954
    lambda              5279.089
所以,这次我在fitdist中使用了这两个参数作为start参数,但仍然得到了完全相同的错误:

    > fitinvgauss <- fitdist(RTtotal, "invgauss", start = list(mu=776, lambda=5279))
    Error in checkparamlist(arg_startfix$start.arg, arg_startfix$fix.arg,  : 
     'start' must specify names which are arguments to 'distr'. 

因此,我猜您没有告诉我们您还加载了
statmod
-包(或者可能是其他包含
dinvgauss
函数的带有“invgauss”族的包)。您应该能够通过阅读函数的帮助页面的顶行来辨别哪个包
dinvgauss
,因此在安装该包并阅读
的帮助页面(应该始终这样做)后,dinvgauss

fitinvgauss <- fitdist(RTtotal, "invgauss", 
                                 start = list(mean=776, dispersion=314, shape=1))
fitinvgauss
# --------------
Fitting of the distribution ' invgauss ' by maximum likelihood 
Parameters:
             estimate Std. Error
mean         779.2535         NA
dispersion -1007.5490         NA
shape       4972.5745         NA

fitinvgauss
fitinvgauss我们没有
RTtotal
,我在基本包或您加载的包中看不到任何名为“invgauss”的分发。投票关闭,因为不可再现错误。请阅读。@mikeck抱歉,这是一个打字错误。@42-我添加了一个RTtotal样本,产生了相同的错误。另外,只要我们提供开始参数,FitDistripPlus库中的fitdist()应该能够使用反向高斯函数,或者这是我从它的帮助中得到的。是的,
fitdist
可以使用反向高斯函数,但您需要给它一个正确的名称。我的观点是,我找不到任何可能使用该名称的函数。相反,我找到了“inverse.gaussian”和“gig”作为可能的名称。也许这个问题应该作为一个输入错误来结束?谢谢你的帮助!(我没有安装statmod软件包,而且直到你问起之前,我都不知道我的系统上加载了包含dinvgauss函数的rmutil软件包。)
    > fitinvgauss <- fitdist(RTtotal, "invgauss", start = list(mu=776, lambda=5279))
    Error in checkparamlist(arg_startfix$start.arg, arg_startfix$fix.arg,  : 
     'start' must specify names which are arguments to 'distr'. 
    dput(RTtotal)
    c(594.96, 659.5, 706.14, 620.92, 811.05, 420.63, 457.08, 585.53, 
    488.59, 484.87, 496.72, 769.01, 458.92, 521.76, 889.08, 514.11, 
    553.09, 564.68, 1057.19, 437.79, 660.33, 639.58, 643.45, 419.47, 
    469.16, 457.78, 530.58, 538.73, 557.17, 1140.09, 560.03, 543.18, 
    1093.29, 607.59, 430.2, 712.06, 716.6, 566.69, 989.71, 449.96, 
    653.22, 556.52, 654.8, 472.54, 600.26, 548.36, 597.51, 471.97, 
    596.72, 600.29, 706.77, 511.6, 475.89, 599.13, 570.12, 767.57, 
    402.68, 601.56, 610.02, 891.95, 483.22, 588.78, 505.95, 554.15, 
    445.54, 489.02, 678.13, 532.06, 652.61, 654.79, 535.08, 1215.66, 
    633.6, 645.92, 454.37, 535.81, 508.97, 690.78, 685.97, 703.04, 
    731.99, 592.75, 662.03, 1400.33, 599.73, 1021.34, 1232.35, 855.1, 
    780.32, 554.4, 1965.77, 841.89, 1262.76, 721.62, 788.95, 1104.24, 
    1237.4, 1193.04, 513.91, 474.74, 380.56, 570.63, 700.96, 380.89, 
    481.96, 723.63, 835.22, 781.1, 468.76, 555.1, 522.22, 944.29, 
    541.06, 559.18, 738.68, 880.58, 500.14, 1856.97, 1001.59, 703.7, 
    1022.35, 1813.35, 1128.73, 864.75, 1166.77, 1220.4, 776.56, 2073.72, 
    1223.88, 617, 1387.71, 595.57, 1506.13, 678.41, 1797.87, 2111.04, 
    1116.61, 1038.6, 894.25, 778.51, 908.51, 1346.69, 989.09, 1334.17, 
    877.31, 649.31, 978.22, 1276.84, 1001.58, 1049.66, 1131.83, 700.8, 
    1267.21, 693.52, 1182.3)    
fitinvgauss <- fitdist(RTtotal, "invgauss", 
                                 start = list(mean=776, dispersion=314, shape=1))
fitinvgauss
# --------------
Fitting of the distribution ' invgauss ' by maximum likelihood 
Parameters:
             estimate Std. Error
mean         779.2535         NA
dispersion -1007.5490         NA
shape       4972.5745         NA