主要内容

sbioparameterci

计算估计参数的置信区间(需要统计和机器学习工具箱

描述

例子

ci= sbioparameterci (fitResults计算估计参数的95%置信区间fitResults,一个NLINResults对象OptimResults对象sbiofit函数。ci是一个ParameterConfidenceInterval对象,该对象包含计算的置信区间。

例子

ci= sbioparameterci (fitResults名称,值使用一个或多个指定的其他选项名称,值对参数。

例子

全部折叠

加载数据

加载样本数据以适应。数据存储为带有变量的表ID时间CentralConc,PeripheralConc.这一合成数据代表了三个人在输注剂量后,在中央和外周室的八个不同时间点测量的血浆浓度的时间过程。

负载data10_32R.matgData = groupedData(data);gData.Properties.VariableUnits = {“小时”毫克/升的毫克/升的};sbiotrellis (gData“ID”“时间”, {“CentralConc”“PeripheralConc”},“标记”“+”...“线型”“没有”);

创建模型

创建一个两室模型。

pkmd = PKModelDesign;pkc1 = add隔间(pkmd,“中央”);pkc1。DosingType =“注入”;pkc1。EliminationType =“linear-clearance”;pkc1。H一个年代ResponseVariable = true; pkc2 = addCompartment(pkmd,“外围”);Model = construct(pkmd);Configset = getconfigset(模型);configset.CompileOptions.UnitConversion = true;

定义剂量

确定输注剂量。

剂量= sbiodose(“剂量”“TargetName”“Drug_Central”);剂量。年代t一个rtTime = 0; dose.Amount = 100; dose.Rate = 50; dose.AmountUnits =毫克的;剂量。时间Units =“小时”;剂量。RateUnits =“毫克/小时”

定义参数

定义要估计的参数。为每个参数设置参数边界。除了这些显式的边界之外,参数转换(如log、logit或probit)还施加了隐式的边界。

responseMap = {'Drug_Central = CentralConc''Drug_Peripheral = PeripheralConc'};paramsToEstimate = {“日志(中央)”的日志(外围)“12”“Cl_Central”};estimatedParam = estimatedInfo(paramsToEstimate,...“InitialValue”,[1 1 1 1 1],...“界限”,[0.1 3;0.1 10;0 10;0.1 2]);

合适的模型

执行未合并拟合,即对每个患者进行一组估计参数。

unpooledFit = sbiofit(模型,gData,responseMap,estimatedParam,剂量,“池”、假);

进行合并拟合,即对所有患者进行一组估计参数。

pooledFit = sbiofit(模型,gData,responseMap,estimatedParam,剂量,“池”,真正的);

计算估计参数的置信区间

计算未合并拟合中每个估计参数的95%置信区间。

ciParamUnpooled = sbioparameterci(unpooledFit);

显示结果

以表格格式显示置信区间。各估计状态的含义请参见参数置信区间估计状态

ci2table (ciParamUnpooled)
ans = 12x7表组名估计置信区间类型Alpha状态_____ ______________ ________ __________________ _____________ ___________ 1 {'Central'} 1.422 1.1533 1.6906高斯0.05可估计1 {'Peripheral'} 1.5629 0.83143 2.3551高斯0.05约束1 {'Q12'} 0.47159 0.20093 0.80247高斯0.05约束1 {'Cl_Central'} 0.52898 0.44842 0.60955高斯0.05可估计2 {'Central'} 1.8322 1.7893 1.8751高斯0.05成功2 {'Peripheral'} 5.3368 3.9133 6.7602高斯0.05 success 2 {'Q12'} 0.27641 0.2093 0.34351高斯0.05 success 2 {'Cl_Central'} 0.86034 0.80313 0.91755高斯0.05 success 3 {'Central'} 1.6657 1.5818 1.7497高斯0.05 success 3 {'Peripheral'} 5.5632 4.7557 6.3708高斯0.05 success 3 {'Q12'} 0.78361 0.65581 0.91142高斯0.05 success 3 {'Cl_Central'} 1.0233 0.96375 1.0828高斯0.05 success

绘制置信区间。如果某个置信区间的估计状态为成功,它以蓝色(第一个默认颜色)绘制。否则,用红色(第二种默认颜色)表示,这表明可能需要对拟合参数进行进一步的研究。如果置信区间为没有有价值的,则该函数绘制一条带有居中十字的红线。如果有任何经过转换的参数,其估计值为0(对于log变换)和1或0(对于probit或logit变换),则不为这些参数估计值绘制置信区间。要查看颜色顺序,请键入get(大的,“defaultAxesColorOrder”)

组从左到右显示的顺序与它们在groupname对象的属性,该属性用于标记x轴。y标签是转换后的参数名。

情节(ciParamUnpooled)

计算合并拟合的置信区间。

ciParamPooled = sbioparameterci(pooledFit);

显示置信区间。

ci2table (ciParamPooled)
ans = 4x7表组名估计置信区间类型Alpha状态______ ______________ ________ __________________ _____________ ___________ pooled {'Central'} 1.6626 1.3287 1.9965高斯0.05估计的pooled {'Peripheral'} 2.687 0.89848 4.8323高斯0.05约束的pooled {'Q12'} 0.44956 0.11445 0.85152高斯0.05约束的pooled {'Cl_Central'} 0.78493 0.59222 0.97764高斯0.05估计

绘制置信区间。组名被标记为“pooled”以表示这种匹配。

情节(ciParamPooled)

把所有的置信区间结果画在一起。默认情况下,每个参数估计的置信区间在单独的轴上绘制。垂直线组参数估计的置信区间是在一个共同拟合中计算的。

ciAll = [ciParamUnpooled;ciParamPooled];情节(ciAll)

您还可以使用“分组”布局在参数估计分组的一个轴上绘制所有置信区间。

情节(ciAll“布局”“分组”

在此布局中,您可以指向每个置信区间的中心标记以查看组名。每个估计的参数由一条垂直的黑线分隔。垂直虚线组参数估计的置信区间是在一个共同拟合中计算的。在原始拟合中定义的参数边界用方括号标记。注意由于参数转换,y轴上的不同尺度。例如,的y轴12个是线性尺度,但中央是在对数尺度上,因为它是对数变换。

计算模型预测的置信区间

计算模型预测的95%置信区间,即使用估计参数的模拟结果。

%用于合并拟合ciPredPooled = sbiopredictionci(pooledFit);%用于未合并的拟合ciPredUnpooled = sbiopredictionci(unpooledFit);

绘制模型预测的置信区间

每个组的置信区间在单独的列中绘制,每个响应在单独的行中绘制。受边界限制的置信区间用红色表示。不受边界限制的置信区间用蓝色表示。

情节(ciPredPooled)

情节(ciPredUnpooled)

输入参数

全部折叠

参数估计结果sbiofit,指定为NLINResults对象OptimResults对象,或一个对象向量,用于从相同对象返回的未池拟合sbiofit调用。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:“阿尔法”,0.01,“类型”,“profileLikelihood”指定使用配置文件似然方法计算99%置信区间。

根据置信区间的类型,兼容的名称-值参数有所不同。下表列出了所有的名称-值参数及其相应的置信区间类型。勾号(特遣队)表示name-value参数适用于该类型。

名称-值参数 高斯(默认) 基于优化的配置文件可能性 基于集成的轮廓似然 引导
α
类型
显示
UseParallel
NumSamples
宽容
参数
MaxStepSize
UseIntegration
IntegrationOptions

信心水平,(1-Alpha) * 100%,指定为逗号分隔的对,由“α”在0到1之间是一个正标量。默认值为0.05,即计算95%置信区间。

例子:“阿尔法”,0.01

置信区间类型,指定为由逗号分隔的对组成“类型”和一个字符向量。有效的选项是:

  • “高斯”-使用高斯近似参数估计的分布。

  • “profileLikelihood”-计算轮廓似然区间。该函数有两种计算剖面似然曲线的方法。默认情况下,该函数使用基于优化的方法。要使用基于集成的方法,还必须设置“UseIntegration”真正的

    基于优化的方法每次固定一个参数值,并重新运行优化以计算最大似然。对轮廓似然曲线上的每个参数和每个点都进行了优化。基于积分的方法是对基于优化方法的拉格朗日方程导出的微分方程进行积分。这两种方法的详细介绍请参见轮廓似然置信区间计算

    请注意

    来自分层模型的参数估计不支持此类型金宝app,即来自拟合不同类别(如年龄或性别)。换句话说,如果你设置CategoryVariableName的属性EstimatedInfo对象在原始拟合中,拟合结果是分层的,不能计算profileLikelihood结果的置信区间。

  • “引导”计算置信区间使用自举法

例子:“类型”,“引导”

返回到命令行的显示级别,由逗号分隔的对组成“显示”和一个字符向量。“关闭”(默认)或“没有”不显示输出。“最后一次”计算结束时显示一条消息。“通路”显示每次迭代的输出。

例子:“显示”、“最后”

并行计算置信区间的逻辑标志,指定为逗号分隔的对,由“UseParallel”而且真正的.默认情况下,使用原始拟合中的并行选项。如果此参数设置为真正的和并行计算工具箱™可用时,将忽略原始拟合中的并行选项,并并行计算置信区间。

对于高斯置信区间:

  • 如果输入fitResults是结果对象的向量,则对每个对象的置信区间进行并行计算。高斯置信区间计算起来很快。因此,并行化原始拟合可能更有益(sbiofit)和未设置UseParallel为真sbioparameterci

对于轮廓似然置信区间:

  • 如果输入结果对象的个数fitResults向量大于估计参数的个数,则并行计算每个对象的置信区间。

  • 否则,在函数移动到下一个结果对象之前,将并行计算一个结果对象中所有估计参数的置信区间。

对于Bootstrap置信区间:

  • 该函数将UseParallel旗帜bootci.结果对象的输入向量上没有并行化。

请注意

如果你有一个用于随机数生成的全局流,它有几个子流,可以以可重复的方式并行计算,sbioparameterci首先检查工人的数量是否与子流的数量相同。如果是这样,sbioparameterciUseSubstreams真正的statset选项并将其传递给bootci(统计和机器学习工具箱).否则,默认情况下将忽略子流。

例子:“UseParallel”,真的

用于引导的样本数目,指定为逗号分隔的对,由“NumSamples”一个正整数。这个数字定义了在置信区间计算期间为生成自举样本而执行的拟合次数。数字越小,置信区间的计算速度就越快,但代价是精度降低。

例子:“NumSamples”,500年

轮廓似然和自举置信区间计算的容差,指定为由逗号分隔的对组成“宽容”一个正标量。

轮廓似然方法使用这个值作为终止公差。详细信息请参见轮廓似然置信区间计算

自举方法使用此值确定置信区间是否受到原始拟合中指定的边界的约束。详细信息请参见自举置信区间计算

例子:“宽容”,1 e-6

计算轮廓似然曲线的参数名称,指定为字符向量、字符串、字符串向量或字符向量的单元格数组。方法中列出的所有参数的置信区间产权总结的属性fitResults对象。如果需要,还可以指定这些参数的子集。

请注意

此名称-值参数仅在指定时适用类型作为“profileLikelihood”

例子:“参数”,{' ka '}

用于计算轮廓似然曲线的最大步长,指定为逗号分隔的对,由“MaxStepSize”一个正标量,[],或单元格数组。

  • 对于基于优化的方法,默认值为0.1.如果你设置“MaxStepSize”[],则最大步长设置为置信区间高斯近似宽度的10%(如果存在)。您可以指定最大步长(或[])为每个估计参数使用单元格数组。

  • 对于基于集成的方法,默认值为.函数在内部使用ode15s解算器。

例子:“MaxStepSize”,0.5

标志,以使用基于集成的轮廓似然置信区间方法,指定为真正的.基于积分的方法对从拉格朗日方程导出的微分方程进行积分。默认情况下,该函数使用基于优化的方法。这两种方法的详细介绍请参见轮廓似然置信区间计算

例子:“UseIntegration”,真的

基于集成的剖面似然置信区间方法的选项,指定为结构。将选项指定为结构的字段,如下所示。

字段名 字段值说明
黑森

“finiteDifference”-使用Hessian矩阵的有限差分近似。这是默认值。

“身份”-使用单位矩阵作为海森矩阵近似。您还必须指定一个正数CorrectionFactor价值。

CorrectionFactor 负的标量。缺省值为0。
AbsoluteTolerance 中的步长控制为正标量ode15s.默认值为1)依照
RelativeTolerance 正标量小于1对于步长控制ode15s.默认值为1)依照
InitialStepSize 用正标量作为解微分方程的初始步长。如果参数是有界的,则函数使用默认的初始步长ode15s.如果没有,则使用1的军医

输出参数

全部折叠

置信区间结果,返回为aParameterConfidenceInterval对象。对于未合并的不适,ci可以是向量ParameterConfidenceInterval对象。

更多关于

全部折叠

高斯置信区间计算

该函数使用Wald检验统计量[1]计算置信区间。假设有足够的数据,参数估计,P美国东部时间,为学生的t分布与协方差矩阵近似年代(CovarianceMatrix返回结果对象的属性)sbiofit

第i个参数估计的置信区间P美国东部时间,我计算公式如下:

P e 年代 t ± 年代 T n v 1 一个 l p h 一个 2 ,在那里T发票为学生t逆累积分布函数(tinv(统计和机器学习工具箱))用概率1 -(α/ 2),年代我,我协方差矩阵的对角线元素(方差)是年代

在置信区间受到原始拟合中定义的参数边界约束的情况下,根据Wu, H.和Neale, M.描述的方法调整置信区间边界。[2]

设置估算状态

  • 对于每个参数估计,函数首先确定参数估计的置信区间是否无界。如果是,则函数将对应参数估计的估计状态设置为没有有价值的

  • 否则,如果参数估计的置信区间受到原始拟合中定义的参数界的约束,则函数将估计状态设置为限制.参数转换(例如日志probit,或分对数)对估计的参数施加隐式边界,例如正性约束。这样的边界可能导致置信度的高估,即置信区间可能小于预期。

  • 如果没有置信区间有估计状态没有有价值的限制,则函数将所有参数估计值的估计状态设置为成功.否则,其余参数估计的估计状态设置为可尊敬的

轮廓似然置信区间计算

定义l作为概率,的参数估计值(存储在ParameterEstimates返回结果对象的属性)sbiofit l l H P e 年代 t ,在那里P美国东部时间是一个参数估计的向量,P美国东部时间1P美国东部时间2、……P美国东部时间,n

轮廓似然函数PL对于参数P定义为 P l P 马克斯 P j j l H P 1 ... P .. P n ,在那里n是参数的总数。

威尔克斯定理[3],似然比检验统计量, 2 日志 P l P l ,为1自由度的卡方分布。

因此,找到所有P这样: 日志 l 日志 P l P c h n v 1 1 一个 l p h 一个 2

同样, 日志 P l P 日志 l c h n v 1 1 一个 l p h 一个 2 ,在那里 日志 l c h n v 1 1 一个 l p h 一个 2 用于计算日志配置文件似然曲线的目标值。该函数提供了两种计算该曲线的方法。

基于优化的测井剖面似然曲线计算方法

  1. 开始P美国东部时间,我并评估可能性l

  2. 计算日志概要文件的可能性P美国东部时间,我+k* MaxStepSize对于置信区间的每一边(或方向),即:k= 1,2,3,…而且k= -1, -2, -3,…

  3. 如果每边满足其中一个停止标准,就停止。

    • 日志配置文件可能性低于目标值。在这种情况下,开始平分betweenP下面而且P以上,在那里P下面日志剖面似然值最大的参数值是否低于目标值,以及P以上日志配置文件似然值大于目标值最小的参数值。如果下列情况之一为真,则停止等分:

      • 相邻日志配置文件似然值小于宽容分开。将置信区间对应一侧的状态设置为成功

      • 等分区间变小max(宽容、2 * eps(双))目前计算的轮廓似然曲线高于目标值。设置对应侧的状态为没有有价值的

      • 轮廓似然曲线的线性梯度近似(两个相邻参数值的有限差)大于)(负容差值)。设置对应侧的状态为没有有价值的

    • 该步骤受到原始拟合中定义的界限的限制。在边界处求值,并将相应边的状态设为限制

基于积分的测井剖面似然曲线计算方法

这个方法[4]解决了约束优化问题 P l P 马克斯 P j j l H P 1 ... P .. P n 通过积分从拉格朗日方程导出的微分方程

p l p c + λ c e 0 p c c

在这里, e th标准单位向量,拉格朗日乘子是 λ c ,cP

换句话说,该方法不是逐点优化,而是求解定义轮廓似然曲线的微分方程,如下所示。

p 2 l p c e ± e T 0 p ˙ c λ ˙ c 0 1

在这里, p ˙ c p c c λ ˙ c λ c c 一个 n d p 2 l p c 为对数似然函数的Hessian。

建议使用黑森矩阵的有限差分逼近。然而,使用有限差分的数值计算黑森矩阵可能是昂贵的计算。为了降低计算成本,Chen和jenrich[4]提出了一个近似的版本,该版本基于的假设,即二阶充分Karush-Kuhn-Tucker条件必须在轮廓似然曲线域的每一点上都具有严格的不等式,如附录中的假设2所述[4].换句话说,在轮廓似然曲线上的每一点上,其余参数必须是可估计的。

如果这个假设成立,那么黑森矩阵可以用单位矩阵代替如下:

e ± e T 0 p ˙ c λ ˙ c γ p l p c 1

在这里, p l p c 对数似然和的梯度是γ是一个修正因子,以确保微分方程的解停留在轮廓似然曲线的路径上。

如果γ过小,轮廓似然曲线的近似值可能变得不准确,从而导致对轮廓似然置信区间的低估。设置γ为较大的值可确保准确的结果,但可能需要ode15s采用更小的步骤,这增加了计算成本。

提示

函数指定海森近似和修正因子IntegrationOptions名称-值参数。

当满足下列条件之一时,算法停止准则为:

  • 剖面似然曲线的梯度近似大于)

  • 轮廓似然下降到目标值以下。

  • 达到参数界限。

设置估算状态

  • 如果置信区间两边都不成功,即有状态没有有价值的,函数设置估计状态(ci.Results.Status)没有有价值的

  • 如果没有一方有此状态没有有价值的一方有地位限制,函数设置估计状态(ci.Results.Status)限制

  • 如果置信区间两侧的所有参数都计算成功,则设置估计状态(ci.Results.Status)成功

  • 否则,该函数将其余参数估计的估计状态设置为可尊敬的

自举置信区间计算

bootci(统计和机器学习工具箱)函数从统计和机器学习工具箱™用于计算bootstrap置信区间。第一个输入nboot为样本数(NumSamples),以及第二个输入bootfun是执行以下操作的函数:

  • 重新采样数据(如果有多个组,则在每个组中独立进行)。

  • 运行一个符合重采样数据的参数。

  • 返回估计的参数。

设置估算状态

如果置信区间小于宽容对于在原始拟合中定义的参数界,函数将估计状态设置为限制.如果所有置信区间都离参数边界更远宽容时,该函数将状态设置为成功.否则,设置为可尊敬的

参考文献

沃尔德,A。当观测数量较多时,关于若干参数的统计假设的检验美国数学学会会刊.54(3), 1943,第426-482页。

[2]吴,H.和M.C.尼尔。有界参数的调整置信区间行为遗传学.42 (6), 2012, pp. 886-898。

[3]威尔克斯,ss“检验复合假设的似然比的大样本分布”数理统计年鉴.9(1), 1938,页60-62。

[4]陈建深,罗伯特·i·詹里奇。"简单精确的似然近似"计算与图形统计杂志11日,没有。3(2002年9月):714-32。

扩展功能

版本历史

在R2017b中引入