我试着用GLMM分析一些反应时数据。为了找到最适合我的数据的分布,我使用了适合于伽玛和对数正态分布的方法。结果表明,对数正态分布更符合我的数据。然而,最近我读到,反高斯分布可能更适合于反应时间数据。
我使用nigFitStart获取开始值:
library(GeneralizedHyperbolic)
invstrt <- nigFitStart(RTtotal, startValues = "FN")这给了我这个
$paramStart
mu delta alpha beta
775.953984862 314.662306398 0.007477984 -0.004930604 因此,我尝试为适者生存者使用start参数:
require(fitdistrplus)
fitinvgauss <- fitdist(RTtotal, "invgauss", start = list(mu=776, delta=314, alpha=0.007, beta=-0.05))但我得到了以下错误:
Error in checkparamlist(arg_startfix$start.arg, arg_startfix$fix.arg, :
'start' must specify names which are arguments to 'distr'.我还使用了ig_fit{goft}并得到了以下结果:
Inverse Gaussian MLE
mu 775.954
lambda 5279.089因此,这一次,我使用这两个参数作为启动参数,但仍然得到了完全相同的错误:
> 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'. 有人提到,将参数名从mu和lambda更改为表示和形状已经解决了它们的问题,但我尝试了它,但仍然得到了相同的错误。
知道我怎么能解决这个问题吗?或者你能建议另一种方法来拟合逆高斯与我的数据吗?
谢谢
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) 发布于 2019-08-23 01:39:03
因此,我猜想您没有告诉我们,您也加载了statmod-package (或者其他一些带有‘invgauss’家族的包,包括一个dinvgauss函数)。您应该能够通过读取函数的帮助页的顶部行来判断哪个包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我所做的就是读取错误消息,然后读取帮助页面,并为该函数的参数使用正确的名称。(然后再进行一些操作,将参数的起始值转换为可行的值范围。)
https://stackoverflow.com/questions/57618003
复制相似问题