这个例子展示了两种拟合非线性logistic回归模型的方法。第一种方法采用最大似然法(ML),第二种方法采用广义最小二乘(GLS)fitnlm
从统计和机器学习工具箱™。
逻辑回归是一种特殊类型的回归,其目标是将某事物的概率建模为其他变量的函数。考虑一组预测向量 在哪里 观察的次数是多少 列向量是否包含的值 预测的 观察。的响应变量 是 在哪里 表示一个带参数的二项随机变量 ,试验次数,以及 ,即试验成功的概率 .归一化响应变量为 ——成功的比例 试验观察 .假定反应 是独立的 .为每一个 :
.
考虑建模 作为预测变量的函数 .
在线性逻辑回归中,你可以使用这个函数fitglm
模型
作为…的函数
如下:
与 表示一组系数乘以预测因子 .然而,假设你在右边需要一个非线性函数:
在Statistics和Machine Learning Toolbox™中有用于拟合非线性回归模型的函数,但没有用于拟合非线性logistic回归模型的函数。这个示例展示了如何使用工具箱函数来适应这些模型。
ML方法最大限度地提高了观测数据的对数可能性。使用二项概率(或密度)函数可以很容易地计算出可能性binopdf
函数。
你可以用这个函数估计一个非线性逻辑回归模型fitnlm
.乍一看,这似乎令人惊讶fitnlm
不适用二项分布或任何链接函数。然而,fitnlm
如果指定响应的均值和方差,则可以使用广义最小二乘(GLS)进行模型估计。如果GLS收敛,则求解同一组非线性方程组进行估计
也可以使用GLS对广义线性模型进行拟似然估计。换句话说,我们应该从GLS和ML中得到相同或等价的解。要实现GLS估计,需要提供拟合的非线性函数和二项分布金宝搏官方网站的方差函数。
平均或模型函数
模型功能描述了如何实现
变化与
.为fitnlm
,模型函数为:
权函数
fitnlm
的方法接受观察权值作为函数句柄“重量”
名称-值对的论点。当使用此选项时,fitnlm
假设模型如下:
在反应 假设是独立的,那么 自定义函数句柄是否接受 并返回一个观察权值。换句话说,权值与响应方差成反比。对于logistic回归模型中使用的二项分布,创建如下权函数:
fitnlm
对响应的方差进行建模
作为
在哪里
是GLS估计中存在的一个额外参数,但在logistic回归模型中不存在。然而,这通常不会影响估计
,它提供了一个“色散参数”来检验假设
值具有二项分布。
使用的优点fitnlm
在直接ML中,您可以执行假设检验和计算模型系数的置信区间。
为了说明ML和GLS拟合之间的差异,生成一些示例数据。假设 是一维的,假设函数是真的 在非线性logistic回归模型中,是由a参数化的Michaelis-Menten模型 向量 :
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);
生成的反应 成功概率的二项分布 以及试验的次数 .
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)
.
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值为
和
表明两个系数显著不同于
.
比较的估计 .
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方法产生类似的解决方案。金宝搏官方网站
图绘制(x, y,‘g’,“线宽”, 1)在情节(x, yHatML,“b”,“线宽”1)图(x, yHatGLS“m——”,“线宽”1)传说(“数据”,毫升的,“gl”,“位置”,“最佳”)包含(“x”) ylabel ('y和拟合值')标题(“数据与ML和GLS吻合。”)
ML和GLS产生相似的拟合值。
绘制真实模型 .加图为初步估计 使用 和基于ML和GLS估计的图 .
图绘制(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的比较)
估计的非线性函数 ML和GLS方法都接近于真实的非线性函数 .您可以使用类似的技术来拟合其他非线性广义线性模型,如非线性泊松回归。