主要内容

与广义线性模型拟合数据

这个例子展示了如何适应和评估使用广义线性模型glmfitglmval。普通线性回归可以用来适合直线,或任何函数是线性的参数,与正态分布的数据错误。这是最常用的回归模型;然而,它并不总是现实的。广义线性模型扩展线性模型在两个方面。首先,假设的线性参数是放松,通过引入链接功能。第二,除了正常可以建模误差分布

广义线性模型

回归模型定义了一个响应变量的分布(通常一般表示为y)的一个或多个预测变量(通常表示x1, x2,等等)。最常用的回归模型,普通线性回归模型y作为一个正常的随机变量,其意思是预测的线性函数,b0 + b1 * x1 +……,其方差是常数。在最简单的情况下一个预测x,模型可以表示成一条直线对每个点的高斯分布。

μ= @ (x) -1.9 + 23 * x;x = 5: .1:15;yhat =μ(x);dy = -3.5: .1:3.5;深圳=大小(dy);k =(长度(dy) + 1) / 2;x1 = 7 * 1(深圳);日元=μ(x1) + dy;z1 = normpdf(μ(x1)、日元1);x2 = 10 * 1(深圳); y2 = mu(x2)+dy; z2 = normpdf(y2,mu(x2),1); x3 = 13*ones(sz); y3 = mu(x3)+dy; z3 = normpdf(y3,mu(x3),1); plot3(x,yhat,zeros(size(x)),“b -”,(x1, y1, z1,的r -x1 (k (k), y1 (k [k]), [0 z1 (k)],“:”,x2, y2、z2的r -x2 (k (k), y2 (k [k]), [0 z2 (k)],“:”,x3, y3、z3、的r -、x3 (k (k)、y3 (k [k]), [0 z3 (k)],“:”);zlim ([0 1]);包含(“X”);ylabel (“Y”);zlabel (的概率密度);网格;视图(45 [-45]);

在广义线性模型中,响应的均值是建模为单调非线性变换的线性函数的预测,g (b0 + b1 * x1 +……)。转换的逆克被称为“链接”功能。例子包括分对数(乙状结肠)日志链接,链接。y可能有非正态分布,如二项式或泊松。例如,泊松回归日志链接和一个预测x可以表示成一个指数曲线对每个点的泊松分布。

μ= @ (x) exp (-1.9 + 23 * x);x = 5: .1:15;yhat =μ(x);x1 = 7 * 1 (1、5);日元= 0:4;z1 = poisspdf(μ(x1)日元);x2 = 10 * 1 (7);y2 = 0:6;z2 = poisspdf (y2,μ(x2));x3 = 13 * 1 (9); y3 = 0:8; z3 = poisspdf(y3,mu(x3)); plot3(x,yhat,zeros(size(x)),“b -”,[x1;x1],[日元;y1]、[z1;0(大小(y1))),的r -(x1, y1, z1,“r”。,[x2;x2]、[y2;y2]、[z2;0(大小(y2))),的r -x2, y2, z2,“r”。,[x3;x3]、[y3;y3]、[z3;0(大小(y3))),的r -z3、x3 y3,“r”。);zlim ([0 1]);包含(“X”);ylabel (“Y”);zlabel (“概率”);网格;视图(45 [-45]);

逻辑回归拟合

这个例子涉及到一个实验来帮助模型汽车各种权重的比例,里程测试失败。数据包括观察体重、汽车测试,和失败的数量。

%的一组汽车重量重量= (2100 2300 2500 2700 2900 3100 3300 3500 3700 3900 4100 4300)';%的汽车数量在每个重量测试测试=[48 42 31 34 31日21日23日23日21日16 17 21)';%失败测试的汽车数量在每一个重量失败=[1 2 0 3 8 8 14 17日19日15日17日21日)';每个重量%的比例汽车失败比例=失败了。/测试;情节(重量、比例、“年代”)包含(“重量”);ylabel (“比例”);

这张图是汽车的比例的阴谋失败,作为一个函数的重量。它是合理的假设故障计数来自二项分布,概率参数P与体重增加。但究竟应该取决于重量?

我们可以试试这些数据拟合直线。

linearCoef = polyfit(重量比例1);linearFit = polyval (linearCoef、重量);情节(重量、比例、“年代”、重量、linearFit的r -4500年[2000],[0 0),凯西:”4500年[2000],[1],凯西:”)包含(“重量”);ylabel (“比例”);

有两个问题这个线性配合:

1)线预测比例小于0,大于1。

2)比例不是正态分布,因为他们必然是有界的。这违反了所需配件的一个假设,一个简单的线性回归模型。

用高阶多项式似乎有帮助。

[cubicCoef,统计,ctr] = polyfit(重量、比例、3);cubicFit = polyval (cubicCoef、重量、[],ctr);情节(重量、比例、“年代”、重量、cubicFit的r -4500年[2000],[0 0),凯西:”4500年[2000],[1],凯西:”)包含(“重量”);ylabel (“比例”);

然而,这仍有类似的问题。图表显示,安装比例开始下降随着体重超过4000;事实上,它将成为更大的负重量值。当然,一个正态分布的假设仍然是违反了。

相反,一个更好的方法是使用glmfit适合一个逻辑回归模型。逻辑回归广义线性模型是一个特例,和适当的比这些数据的线性回归,有两个原因。首先,它使用一个二项分布拟合方法是合适的。第二,物流环节限制预测比例区间[0,1]。

逻辑回归,我们指定预测矩阵,矩阵和一列包含失败,和一列包含测试数量。我们也指定二项分布和分对数链接。

[logitCoef, dev] = glmfit(重量、失败的测试,“二”,分对数的);logitFit = glmval (logitCoef、重量、分对数的);情节(重量、比例、“废话”、重量、logitFit的r -);包含(“重量”);ylabel (“比例”);

这个阴谋表示,安装比例渐近线0和1,体重变成小或大。

模型诊断

glmfit函数的输出提供了许多研究和测试模型。举例来说,我们可以比较两个模型的异常值来确定一个平方项将显著改善健康。

[logitCoef2, dev2] = glmfit([体重的重量。^ 2],(未测试)“二”,分对数的);pval = 1 - chi2cdf (dev-dev2, 1)
pval = 0.4019

大的假定值表明,对于这些数据,二次项不显著改善健康。两个适合的情节展示了适合几乎没有差异。

logitFit2 = glmval (logitCoef2[体重重量。^ 2],分对数的);情节(重量、比例、“废话”、重量、logitFit的r -、重量、logitFit2“g -”);传奇(“数据”,“线性条件”,线性和二次项,“位置”,“西北”);

检查拟合优度,我们也可以看看一个概率的情节皮尔逊剩余工资。这些都是标准化的,这样当模型是一个合理的适合的数据,他们大致标准正态分布。(没有这个标准化残差会有不同的差异。)

[logitCoef dev,统计]= glmfit(重量、失败的测试,“二”,分对数的);normplot (stats.residp);

残图显示了一个很好的协议与正态分布。

评估模型的预测

一旦我们满意模型,我们可以用它来进行预测,包括计算置信界限。我们预测预期的汽车数量,100年的测试,会失败的里程测试在每个四个重量。

weightPred = 2500:500:4000;[failedPred dlo,济]= glmval (logitCoef weightPred,分对数的统计,.95,100);dlo errorbar (weightPred failedPred,济,“:”);

链接功能二项式模型

为每个5发行版glmfit金宝app支持,有一个标准(默认)链接功能。二项分布,分对数的规范的链接。然而,也有其他三个链接是明智的二项式模型。所有四个维护的平均响应区间[0,1]。

η= 5:.1:5;情节(η1。/ (1 + exp (eta)),“- - -”埃塔,normcdf (eta),“- - -”,η1 - exp (exp (eta)),“- - -”埃塔,exp (exp (eta)),“- - -”);包含(预测的线性函数);ylabel (“预测平均响应”);传奇(分对数的,“probit”,互补的双对数的,“对数”,“位置”,“东”);

例如,我们可以比较符合probit链接分对数的链接。

probitCoef = glmfit(重量、失败的测试,“二”,“probit”);probitFit = glmval (probitCoef、重量、“probit”);情节(重量、比例、“废话”、重量、logitFit的r -、重量、probitFit“g -”);传奇(“数据”,“Logit模型”,“Probit模型”,“位置”,“西北”);

数据通常是难以区分这四个链接功能,并在理论方面往往是作出选择。