主要内容

非线性回归

这个例子展示了两种拟合非线性logistic回归模型的方法。第一种方法采用最大似然法(ML),第二种方法采用广义最小二乘(GLS)fitnlm从统计和机器学习工具箱™。

问题描述

逻辑回归是一种特殊类型的回归,其目标是将某事物的概率建模为其他变量的函数。考虑一组预测向量 x 1 ... x N 在哪里 N 观察的次数是多少 x 列向量是否包含的值 d 预测的 观察。的响应变量 x Z 在哪里 Z 表示一个带参数的二项随机变量 n ,试验次数,以及 μ ,即试验成功的概率 .归一化响应变量为 Y Z / n ——成功的比例 n 试验观察 .假定反应 Y 是独立的 1 ... N .为每一个

E Y μ

V 一个 r Y μ 1 - μ n

考虑建模 μ 作为预测变量的函数 x

在线性逻辑回归中,你可以使用这个函数fitglm模型 μ 作为…的函数 x 如下:

日志 μ 1 - μ x T β

β 表示一组系数乘以预测因子 x .然而,假设你在右边需要一个非线性函数:

日志 μ 1 - μ f x β

在Statistics和Machine Learning Toolbox™中有用于拟合非线性回归模型的函数,但没有用于拟合非线性logistic回归模型的函数。这个示例展示了如何使用工具箱函数来适应这些模型。

直接最大似然

ML方法最大限度地提高了观测数据的对数可能性。使用二项概率(或密度)函数可以很容易地计算出可能性binopdf函数。

广义最小二乘(GLS)

你可以用这个函数估计一个非线性逻辑回归模型fitnlm.乍一看,这似乎令人惊讶fitnlm不适用二项分布或任何链接函数。然而,fitnlm如果指定响应的均值和方差,则可以使用广义最小二乘(GLS)进行模型估计。如果GLS收敛,则求解同一组非线性方程组进行估计 β 也可以使用GLS对广义线性模型进行拟似然估计。换句话说,我们应该从GLS和ML中得到相同或等价的解。要实现GLS估计,需要提供拟合的非线性函数和二项分布金宝搏官方网站的方差函数。

平均或模型函数

模型功能描述了如何实现 μ 变化与 β .为fitnlm,模型函数为:

μ 1 1 + 经验值 - f x β

权函数

fitnlm的方法接受观察权值作为函数句柄“重量”名称-值对的论点。当使用此选项时,fitnlm假设模型如下:

E Y μ

V 一个 r Y σ 2 w μ

在反应 Y 假设是独立的,那么 w 自定义函数句柄是否接受 μ 并返回一个观察权值。换句话说,权值与响应方差成反比。对于logistic回归模型中使用的二项分布,创建如下权函数:

w μ 1 V 一个 r y n μ 1 - μ

fitnlm对响应的方差进行建模 Y 作为 σ 2 / w μ 在哪里 σ 2 是GLS估计中存在的一个额外参数,但在logistic回归模型中不存在。然而,这通常不会影响估计 β ,它提供了一个“色散参数”来检验假设 Z 值具有二项分布。

使用的优点fitnlm在直接ML中,您可以执行假设检验和计算模型系数的置信区间。

生成示例数据

为了说明ML和GLS拟合之间的差异,生成一些示例数据。假设 x 是一维的,假设函数是真的 f 在非线性logistic回归模型中,是由a参数化的Michaelis-Menten模型 2 × 1 向量 β

f x β β 1 x β 2 + x

Myf = @(beta,x) beta(1)*x./(beta(2) + x);

创建一个模型函数来指定之间的关系 μ β

Mymodelfun = @(beta,x)/ (1 + exp (-myf(β,x)));

创建一个一维预测向量和真系数向量 β

rng (300“旋风”);x = linspace (1200);β= (10;2);

计算的向量 μ 每个预测器的值。

μ= mymodelfun(β,x);

生成的反应 z 成功概率的二项分布 μ 以及试验的次数 n

n = 50;z = binornd (n,μ);

规范化的反应。

y = z / n;

毫升的方法

ML方法将负对数似然定义为 β 向量,然后用优化函数使其最小化,例如fminsearch.指定beta0的初始值 β

Mynegloglik = @(beta) -sum(log(binopdf(z,n,mymodelfun(beta,x))));beta0 = [3; 3);选择= optimset (“fminsearch”);选择。MaxFunEvals =正;选择。麦克斯特= 10000;betaHatML = fminsearch (mynegloglik beta0选择)
betaHatML =2×19.9259 - 1.9720

的估计系数betaHatML是否接近于的真实值(10; 2)

gl的方法

GLS方法为fitnlm先前描述。

Wfun = @(xx) n./(xx.*(1-xx));

调用fitnlm使用自定义的平均值和权重函数。指定beta0的初始值 β

nlm = fitnlm (x, y, mymodelfun beta0,“重量”wfun)
nlm =非线性回归模型:y ~ F(beta,x) Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ b1 9.926 0.83135 11.94 4.193e-25 b2 1.972 0.16438 11.996 2.8182 -25观测数:200,误差自由度:198均方根误差:1.16 R-Squared:0.995 F-statistic vs. 0 model: 1.88e+04, p-value = 2.04e-226

估计 β 从安装NonLinearModel对象nlm

betaHatGLS = nlm.Coefficients.Estimate
betaHatGLS =2×19.9260 - 1.9720

在ML方法中,估计的系数betaHatGLS是否接近于的真实值(10; 2).小p值为 β 1 β 2 表明两个系数显著不同于 0

比较ML和GLS方法

比较的估计 β

max (abs (betaHatML - betaHatGLS))
ans = 1.1460 e-05

使用ML和GLS比较拟合值

yHatML = mymodelfun(bethatml,x);yHatGLS = mymodelfun (betaHatGLS x);max (abs (yHatML - yHatGLS))
ans = 1.2746 e-07

ML和GLS方法产生类似的解决方案。金宝搏官方网站

使用ML和GLS绘制拟合值

图绘制(x, y,‘g’“线宽”, 1)情节(x, yHatML,“b”“线宽”1)图(x, yHatGLS“m——”“线宽”1)传说(“数据”毫升的“gl”“位置”“最佳”)包含(“x”) ylabel ('y和拟合值')标题(“数据与ML和GLS吻合。”

图中包含一个坐标轴。标题为数据y的轴与ML和GLS符合。包含3个line类型的对象。这些对象代表Data, ML, GLS。

ML和GLS产生相似的拟合值。

使用ML和GLS绘制估计的非线性函数

绘制真实模型 f x β .加图为初步估计 f x β 使用 β β 0 和基于ML和GLS估计的图 f x β

图绘制(x, myf(β,x)“r”“线宽”, 1)情节(x, myf (beta0 x),“k”“线宽”1)图(x, myf (betaHatML x),“c——”“线宽”1)图(x, myf (betaHatGLS x),b -。“线宽”1)传说(“真正f '“初始f”'估计f与ML'“用GLS估计f”“位置”“最佳”)包含(“x”) ylabel (True和estimated f)标题(真实f与使用ML和GLS估计f的比较

图中包含一个坐标轴。标题为“真f与使用ML和GLS估计f的比较”的轴。包含4个类型为line的对象。这些对象代表True f, Initial f,估计f与ML,估计f与GLS。

估计的非线性函数 f ML和GLS方法都接近于真实的非线性函数 f .您可以使用类似的技术来拟合其他非线性广义线性模型,如非线性泊松回归。