在统计中,一个效果是在预测变量的特定设置下影响响应变量的值的任何东西。效果被转换为模型参数。在线性模型中,效应成为系数,表示模型项的比例贡献。在非线性模型中,效应通常有特定的物理解释,并出现在更一般的非线性组合中。
固定的影响表示总体参数,假设每次收集的数据都是相同的。估计固定效应是回归建模的传统领域。随机效应,则为样本相关的随机变量。在建模中,随机效应就像附加误差项,必须指定它们的分布和协方差。
例如,考虑取消从血液中药物的典范。该模型使用时间Ť作为预测药物浓度的指标C作为响应。非线性模型项C0Ë-[RŤ结合参数C0和[R,分别表示初始浓度和消除速率。如果数据是跨多个个体收集的,那么可以合理地假设消除率是一个随机变量[R一世取决于个人一世,在总体均值附近变化 。这个词C0Ë-[RŤ就变成了
在哪里β= 是一个固定的效果和b一世= 是随机效应。
当数据落入自然组时,随机效应很有用。在药物消除模型中,这些群体只是被研究的个体。更复杂的模型可能会根据个体的年龄、体重、饮食等对数据进行分组。虽然这些群体并不是研究的重点,但是在模型中加入随机效应可以将推论的可靠性扩展到个体的特定样本之外。
Mixed-effects模型占固定和随机效应。如同所有的回归模型,他们的目的是描述一个响应变量作为预测变量的函数。混合效应模型,然而,承认样品亚组内的相关性。以这种方式,它们提供完全忽略数据组,并且每个组与一个独立的模型拟合之间的折衷。
假设一个非线性回归模型的数据落入米不同的群体一世= 1,…,米。要说明模型中的组,请编写responseĴ在集团一世为:
ÿ一世Ĵ是响应,X一世Ĵ是预测的载体,φ是模型参数的矢量,并且ε一世Ĵ是测量或加工误差。该指数Ĵ范围从1到ñ一世,其中ñ一世是观察组的个数吗一世。功能F指定模型的形式。通常,X一世Ĵ仅仅是观察时间吗Ť一世Ĵ。误差通常被认为是独立的、恒等的、正态分布的、方差恒定的。
参数的估计值φ形容人口,假定这些估计是所有组相同。然而,如果估计按组有所不同,模型变得
在混合效应模型,φ一世可能是固定效应和随机效应的组合:
随机效应b一世通常被描述为多元正态分布,具有均值为零和协方差Ψ。估计固定效应β随机效应的协方差Ψ提供了人口的描述不假定参数φ一世组间是相同的。估计随机效应b一世还提供了数据中特定组的描述。
模型参数不需要用单独的效果来识别。一般来说,设计矩阵一个和乙用于识别与固定和随机效应的线性组合的参数:
如果设计矩阵组间差异,模型变得
如果设计矩阵在不同的观测值之间也不同,模型就变成
一些在特定组的预测X一世Ĵ可以不随观察而改变吗Ĵ。这些调用v一世,模型变成
假设一个非线性回归模型的数据落入米不同的群体一世= 1,…,米。(具体而言,假设基团不嵌套。)要指定此数据的一般的非线性混合效应模型:
定义特定于组的模型参数φ一世作为固定效果的线性组合β和随机效应b一世。
定义响应值ÿ一世作为一个非线性函数F参数和组特定的预测变量X一世。
该模型是:
非线性混合效应模型的该制剂使用以下表示法:
φ一世 | 的特定组模型参数的向量 |
β | 的固定效应的载体,造型总体参数 |
b一世 | 多元正态分布群特异性随机效应的向量 |
一个一世 | 用于组合固定效果的特定组的设计矩阵 |
乙一世 | 一种用于组合随机效果的组专用设计矩阵 |
X一世 | 一组特定预测值的数据矩阵 |
ÿ一世 | 特定于组的响应值的数据向量 |
F | 的一般实值函数φ一世和X一世 |
ε一世 | 组特有误差的向量,被认为是独立的、恒等的、正态分布的和独立的b一世 |
Ψ | 随机效应的协方差矩阵 |
σ2 | 误差方差,假设各观测值之间为常数 |
例如,考虑取消从血液中药物的典范。该模型结合两个重叠阶段:
初始相位p在此期间,药物浓度与周围组织达到平衡
第二阶段q在此期间,药物从血液中消失
获取多个个体的数据一世,该模型是
在哪里ÿ一世Ĵ是在个体中观察到的浓度一世在时间Ť一世Ĵ。该模型允许对不同的个体进行不同的采样时间和不同数量的观察。
消除率[Rp一世和[Rq一世必须是积极的身体有意义。通过引入日志速率来实现这一点[Rp一世=日志([Rp一世)和[Rq一世=日志([Rq一世),并重新参数化模型:
选择随机效应模型哪些参数构建一个混合效应模型时是一个重要的考虑因素。一种方法是随机的效果添加到所有的参数,并使用它们的方差的估计,以确定其在模型中的意义。另一种方法是单独地拟合模型到各组,而无需随机效应,并期待在参数估计的变化。如果估算整个群体差别很大,或者如果各组的置信区间具有最小重叠,该参数是一个随机效应一个很好的候选人。
为了引入固定效应β和随机效应b一世对于所有模型参数,将模型重新表述如下:
在一般模式的符号:
在哪里ñ一世是个别的观测数一世。在这种情况下,设计矩阵一个一世和乙一世是,至少在最初,4乘4单位矩阵。设计矩阵可以被改变,必要时,以引入的单独效果,或时间依赖性加权。
拟合模型和估计的协方差矩阵Ψ往往导致进一步的细化。为随机效应的方差相对小的估计表明,它可以从模型中删除。同样地,对于某些随机效应之间的协方差相对小的估计表明,一个完整的协方差矩阵是不必要的。由于随机效应是不可观测的,Ψ必须间接估计。指定对角或块对角的协方差模式Ψ可以提高拟合算法的收敛性和效率。
统计和机器学习工具箱™功能nlmefit
和nlmefitsa
适合一般的非线性混合效应模型数据,估计固定和随机效应。所述功能还估计协方差矩阵Ψ随机效应。额外的诊断输出允许您评估模型参数的数量和适合度之间的权衡。
如果模型指定Mixed-Effects模型假设一个依赖群体的协变量,如权重(w ^)模型变成:
因此,参数φ一世在任何个人一世
个组是:
若要指定协变量模型,请使用'FEGroupDesign'
选择。
'FEGroupDesign'
是p-by-q-by-m
阵列指定一个不同的对由-Q
为每个固定效果设计矩阵米
组。使用上面的例子,数组如下所示:
创建数组。
模型参数个数(Phi) num_params = 3;协变量数% num_cov = 1;假设数据集中的组数为7,num_groups = 7;数组的协变量值协变量= [75;52个;66;55;70;58;62); A = repmat(eye(num_params, num_params+num_cov),... [1,1,num_groups]); A(1,num_params+1,1:num_groups) = covariates(:,1)
创建一个结构体
具有指定设计矩阵。
options.FEGroupDesign = A;
指定的参数nlmefit
(要么nlmefitsa
),如图使用nlmefitsa和nlmefitsa的混合效果模型。
nlmefit
或nlmefitsa
统计和机器学习工具箱提供了两个功能,nlmefit
和nlmefitsa
拟合非线性混合效应模型。每个功能提供不同的功能,这可以帮助你决定使用哪一种。
nlmefit
为拟合非线性混合效应模型提供了以下四种近似方法:
'LME'
- 使用在当前的条件估计线性混合效应模型的可能性β
和乙
。这是默认的。
“RELME”
-在当前的条件估计下,使用线性混合效应模型的限制似然β
和乙
。
'FO'
-无随机效应的一阶拉普拉斯近似。
'FOCE'
的条件估计的一阶拉普拉斯近似乙
。
nlmefitsa
提供了额外的近似法,随机逼近期望最大化(SAEM)[24]分三步:
模拟:生成随机效应的模拟值b从后验密度p(b|Σ)鉴于目前的参数估计。
随机逼近:更新日志似然函数的期望值,从前面的步骤中获取其值,并向模拟随机效应计算的日志似然的平均值移动一部分。
最大化步骤:在给定随机效应的模拟值的情况下,选择新的参数估计来最大化对数似然函数。
这两个nlmefit
和nlmefitsa
尝试寻找参数估计以使似然函数最大化,这是很难计算的。nlmefit
通过近似以各种方式似然函数,并且最大化近似函数的问题涉及。它使用依赖之类的东西趋同标准和迭代限制传统的优化技术。
nlmefitsa
,在另一方面,在模拟这样一种方式,从长远来看它们收敛到最大化确切似然函数的值的参数的随机值。结果是随机的,传统的收敛测试不适用。因此nlmefitsa
提供选项以在模拟过程中绘制结果,并多次重新启动模拟。您可以使用这些特性来判断结果是否已收敛到您希望的精度。
nlmefitsa
下面的参数是特定于nlmefitsa
。大多数控制的随机算法。
Cov0
-协方差矩阵的初始值PSI
。必须是一个[R——- - - - - -[R正定矩阵。如果为空,则默认值取决于的值BETA0
。
ComputeStdErrors
-真正的
计算系数估计值的标准误差并将其存储在输出中统计数据
结构,或者假
(默认)省略此计算。
LogLikMethod
-指定逼近日志似然值的方法。
NBurnIn
-不重新计算参数估计的初始老化迭代次数。默认是5。
NIterations
-控制算法的三个阶段每个阶段执行多少次迭代。
NMCMCIterations
-马尔科夫链蒙特卡罗(MCMC)迭代次数。
的能力有一些不同nlmefit
和nlmefitsa
。因此,有些数据和模型对于任何一个函数都是可用的,但是有些可能要求您只选择其中的一个函数。
误差模型-nlmefitsa
金宝app支持各种错误模型。例如,响应的标准差可以是常数,与函数值成比例,或者两者的组合。nlmefit
在响应的标准差为常数的假设下拟合模型。其中一个误差模型,“指数”
,指定响应的日志具有恒定的标准偏差。您可以使用以下工具来适应这些模型nlmefit
通过提供测井响应作为输入,并通过重写模型函数以产生非线性函数值的对数。
随机效应-两个函数都将数据与带有参数的非线性函数相匹配,参数可以是简单的标量值,也可以是协变量的线性函数。nlmefit
允许线性函数的任意系数同时具有固定和随机效应。nlmefitsa
金宝app支持随机效应只对的线性函数的常数(截距)系数,但不能用于斜率系数。因此在本例中指定协变量模型,nlmefitsa
只能处理前三β值随机效应。
模型形式-nlmefit
金宝app支持非常一般的模型规范,具有对设计矩阵了涉及固定系数和随机效应模型参数一些限制。nlmefitsa
更严格的:
固定效应设计在每个群体(对于每个个体)中必须是恒定的,因此不支持依赖于观测的设计。金宝app
随机效应设计对于整个数据集必须是常数,因此既不支持观测相关设计,也不支持群体相关设计。金宝app
正如前面提到的下随机效应,在随机效应设计中,坡度系数不能指定随机效应。这意味着设计必须由0和1组成。
随机效应设计必须不使用相同的随机效应为多个系数,并且不能使用一个以上的随机效应对于任何单个系数。
固定效果设计不能使用用于多个参数的相同系数。这意味着它可以在每列最多一个非零值。
如果你想使用nlmefitsa
对于协变量效应是随机的数据,将协变量直接包含在非线性模型表达式中。不包括在固定或随机效应设计矩阵的协变量。
收敛- 如在所描述的模型形式,nlmefit
和nlmefitsa
有不同的方法来测量会聚。nlmefit
采用传统的优化措施,并nlmefitsa
提供帮助您判断随机模拟的收敛诊断。
在实践中,nlmefitsa
更趋于稳健,而且不容易失败的疑难问题。然而,nlmefit
可能会更快地收敛于它所收敛的问题。一些问题可能从组合策略中获益,例如通过运行nlmefitsa
对于一段时间才能得到合理的参数估计,并利用这些作为额外的迭代起点使用nlmefit
。
该Outputfcn
场的选项
结构指定的一个或多个函数,在每次迭代后的解算器的呼叫。通常情况下,你可能会在每次迭代使用输出功能积点或从算法优化的显示数量。要设置输出功能:
写输出功能作为MATLAB®文件功能或局部功能。
使用statset
设置的值Outputfcn
是一个函数手柄,即,该函数由前面的名称@
的迹象。例如,如果输出函数是outfun.m
,命令
options = statset('OutputFcn', @outfun);
指定OutputFcn
成为…的把柄outfun
。要指定多个输出函数,请使用以下语法:
options = statset('OutputFcn',{@outfun, @outfun2});
调用优化函数选项
作为输入参数。
对于输出功能的一个例子,请参见示例输出功能。
输出函数的函数定义行具有下列形式:
STOP = outfun(β,状态,状态)
求解程序将输入参数的值传递给outfun
在每次迭代。
下表列出了的字段状态
结构:
场 | 描述 |
---|---|
程序 |
|
迭代 |
的整数从0开始。 |
内心的 |
结构中描述内部迭代状态的结构
|
fval |
当前对数似然 |
PSI |
目前的随机效应协方差矩阵 |
THETA |
的当前参数化PSI |
均方误差 |
当前误差方差 |
下表列出了可能的值状态
:
状态 | 描述 |
---|---|
|
算法在第一次迭代前处于初始状态。 |
|
该算法是在迭代的结束。 |
|
在最后一次迭代后,算法处于最终状态。 |
下面的代码演示了输出函数如何使用的值状态
决定在当前迭代中执行哪些任务:
开关状态情况下,“国际热核实验堆%进行更新,情节或图形用户界面为需要的情况下,“初始化”%安装程序地块或GUI的情况下“完成”地块%清理,图形用户界面,或最后情节,否则结束
输出参数停
国旗是吗真正的
或假
。该标志告诉解决程序应该退出还是继续。下面的示例展示了使用停
国旗。
停止基于中间结果的优化。输出功能可以在基础上,传递给它的参数值任何迭代停止估计。例如,下面的代码集停止为true基于存储在所述对数似然的值'FVAL'
状态结构域:
停止= outfun(beta,status,state)停止= false;%检查loglikelihood是否大于132。如果状态。fval> -132 stop = true; end
停止基于GUI输入的迭代。如果您设计一个GUI来执行nlmefit
迭代,可以使输出功能停止,当用户点击一个停止GUI上的按钮。例如,下面的代码实现了一个对话框来取消计算:
起作用RETVAL = stop_outfcn(测试版,STR,状态)持续ħ停止;如果ISEQUAL(str.inner.state, '无')开关(状态)的情况下为 'init' %初始化对话停止= FALSE;H = MSGBOX( '按STOP取消计算。',... 'NLMEFIT:迭代0');按钮= findobj(H, '类型', 'uicontrol');集(按钮, '字符串', 'STOP', '回叫',@塞子)POS = GET(H, '位置');POS(3)= 1.1 * POS(3);集(H, '位置',POS)的DrawNow情况下,在对话框的标题集“国际热核实验堆%显示迭代次数(H, '名称',sprintf的( 'NLMEFIT:迭代%d',...... str.iteration))的DrawNow;情况下“完成”%删除对话框删除(H);end end如果停止%停止如果对话按钮已被按下删除(H)端RETVAL =停止;功能塞(varargin)%设置标记时停止按钮被按下停止= TRUE; disp('Calculation stopped.') end end
nmlefitoutputfcn
是样本统计和机器学习工具箱的输出函数吗nlmefit
和nlmefitsa
。它使用固定效果(β
)和随机效应的方差(诊断
(STATUS.Psi
))。为nlmefit
,情节还包括对数似然(STATUS.fval
)。
nlmefitoutputfcn
是默认的输出函数吗nlmefitsa
。用在nlmefit
,在选项结构中指定函数句柄:
= statset('OutputFcn', @nlmefitoutputfcn,…)beta = nlmefit(…,'Options', opt,…)
nlmefitsa
在使用这个函数时,为输出函数指定一个空值:选择= statset( 'OutputFcn',[],...)的β= nlmefitsa(..., '选项',选择,...)
nlmefitoutputfcn
停止nlmefit
或nlmefitsa
如果你关闭它产生的数字。