小言_互联网的博客

菜鸟的数学建模之路(五):Logistic模型

319人阅读  评论(0)

matlab实现

  1. Logistic回归跟多元线性回归差不多,但是有区别:
    (1) 线性回归:y是一个定量的变量,这时y对于不同的自变量来说有相应的值。
    (2) Logistic回归:y是一个定性的变量,比如y只能等于0或1。

  2. 模型的基本形式:

    但是在实际应用该模型的时候,常常不是不是直接对P进行回归,而是先 定义单调连续概率函数π,令:
    于是Logistic模型就可以变形为:

  3. 例子(“MATLAB数学建模方法与实践(第3版)”第55页)

    评估企业的还款能力,已知前20家企业的评价指标和评价结果,要求对剩余5家企业进行评估,0表示2年后有能力还款,1表示2年后没有能力还款,评估2年后是否有能力还款。
    解答:1)确定pi和P之间的映射关系,例子评测结果里面有10个0,10个1,数量相等,可以取分界值0.5,即:

    2)对于20家企业,只知道评估结果P(即0和1),没法做多元线性回归,即已知x1,x2,x3,但是不知道y(这里π就相当与y,因为π是对应的概率函数),所以为了方便计算,干脆取两个区间的中间值,即:

    所以有:

  4. matlab代码

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
% Logistic1.docx例子解答:
% (1)确定pi和P之间的映射关系,例子评测结果里面有10个0,10个1,数量相等,可以取分界值0.5,即:
%                                                                               pi<=0.5,P = 0;   
%                                                                               pi> 0.5,P = 1;
%  (2)对于20家企业,只知道评估结果P(即0和1),没法做多元线性回归,即已知x1,x2,x3,但是不知道y(这里pi就相当与y,因为pi是对应的概率函数),所以
%     为了方便计算,干脆取两个区间的中间值,即(0+0.5)/2和(0.5+1)/2,所以列表里面的Y等于0的全部换为0.25,全部为1的换为0.75
%     
%     到此y值便确定了,即0.25和0.75的组合。
% 
% matlab实现(利用多元线性回归):
% (1)输入:
%         x1(1*n)矩阵存储x1坐标
%         x2(1*n)矩阵存储x2坐标
%         ......
%         y1(1*n)矩阵存储y坐标
%         y2(1*n)矩阵存储y2坐标
%         ......
% (2)输出:
%         [b,bint,r,rint,s]=regress(Y,X,alpha);里面的所有参数,回归系数b构成多元回归模型
%         残差图分析
%         相关系数b
%         验证的所以数据的0或1
% 
% 
% 重点:如果出现错误;"错误使用 horzcat串联的矩阵的维度不一致"可能是X,Y那里的行矩阵和列矩阵的转化出现问题
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

% 数据的存储
x1 = [-62.8 3.3 -120.8 -18.1 -3.8 -61.2 -20.3 -194.5 20.8 -106.1 43 47 -3.3 35 46.7 20.8 33 26.1 68.6 37.3];
x2 = [-89.5 -3.5 -103.2 -28.8 -50.6 -56.2 -17.4 -25.8 -4.3 -22.9 16.4 16 4 20.8 12.6 12.5 23.6 10.4 13.8 33.4];
x3 = [1.7 1.1 2.5 1.1 0.9 1.7 1 0.5 1 1.5 1.3 1.9 2.7 1.9 0.9 2.4 1.5 2.1 1.6 3.5 ];
y = [0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75];

% 绘制散点图
% subplot(1,3,1);plot(x1,y,'g*');
% subplot(1,3,2);plot(x2,y,'k+');
% subplot(1,3,3);plot(x3,y,'ro');

% 数据的长度
n=length(x1); 

% X,Y制作
X=[ones(n,1),x1',x2',x3'];
Y = y';

% 注意matlab的log是数学上的ln
Y = log(Y./(1-Y));


% 线性分析
[b,bint,r,rint,s]=regress(Y,X,0.05);
% b,bint,r,rint,s

% 残差分析
% rcoplot(r,rint);

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% 求解完系数后代入要预测的数值
% 模型的验证和应用
x11 = [-62.8 3.3 -120.8 -18.1 -3.8 -61.2 -20.3 -194.5 20.8 -106.1 43 47 -3.3 35 46.7 20.8 33 26.1 68.6 37.3 -49.2 -19.2 40.6 34.6 19.9];
x22 = [-89.5 -3.5 -103.2 -28.8 -50.6 -56.2 -17.4 -25.8 -4.3 -22.9 16.4 16 4 20.8 12.6 12.5 23.6 10.4 13.8 33.4 -17.2 -36.7 5.8 26.4 26.7];
x33 = [1.7 1.1 2.5 1.1 0.9 1.7 1 0.5 1 1.5 1.3 1.9 2.7 1.9 0.9 2.4 1.5 2.1 1.6 3.5 0.3 0.8 1.8 1.8 2.3];
n = length(x11);
p = zeros(1,n);


for i = 1:length(x11)
   Pai0 = exp(b(1,1) + b(2,1)*x11(1,i) +b(3,1)*x22(1,i) + b(4,1)*x33(1,i))/(1+exp(b(1,1) + b(2,1)*x11(1,i) +b(3,1)*x22(1,i) + b(4,1)*x33(1,i)));
   if(Pai0<=0.5)
       p(1,i) = 0;
   else
      p(1,i) = 1; 
   end
end
b'
p

结果:

SPSS实现

  1. Logistic(在使用该模型时先看本文第4点)
    线性回归是很重要的一种回归方法,但是线性回归只适用于因变量为连续型变量的情况,那如果因变量为分类变量呢?比方说我们想预测某个病人会不会痊愈,顾客会不会购买产品,等等,这时候我们就要用到Logistic回归分析了。Logistic回归主要分为三类,一种是因变量为二分类得logistic回归,这种回归叫做二项logistic回归,一种是因变量为无序多分类得logistic回归,比如倾向于选择哪种产品,这种回归叫做二项logistic回归,一种是因变量为无序多分类得logistic回归,比如倾向于选择哪种产品,这种回归叫做这种回归也叫累积logistic回归,或者序次logistic回归。
  2. 二值logistic回归:二元Logistic回归
    
  3. 案例:分析以下各个因素对是否患病的影响,由于结果为患病或不患病两种,故用二元Logistic回归分析

    首先明白两个概念:二分类变量和连续值变量
    二分类变量:类似与性别,只有男和女两个结果,通常用0和1来表示,性别的0和1数值不代表大小
    连续值变量:像年纪,总胆固醇等
    Spss作二元Logistic回归分析步骤:





    (6)点击“确定”,出结果

结果分析:









  1. List item
    关于二元Logistic的使用
    对问题的分析
    使用Logistic模型前,研究者需判断是否满足以下七个研究假设:
    假设1:因变量即结局是二分类变量。
    假设2:有至少1个自变量,自变量可以是连续变量,也可以是分类变量。
    假设3:每条观测间相互独立。分类变量(包括因变量和自变量)的分类必须全面且每一个分类间互斥。
    假设4:最小样本量要求为自变量数目的15倍,也有一些研究者认为样本量应达到自变量数目的50倍
    假设5:连续的自变量与因变量的logit转换值之间存在线性关系。
    假设6:自变量间不存在共线性。
    假设7:没有明显的离群点、杠杆点和强影响点。
    对假设的判断:
    假设1-4:取决于研究设计和数据类型,如果不满足则需要更换统计方法。后3个假设则依赖于二分类Logistic回归是否适用于数据。
    假设5: 连续的自变量与因变量的对数间存在线性关系。
    二分类Logistic回归分析的结果有两个目的:
    ①观察自变量对因变量的影响是否有统计学意义;
    ②观察二分类Logistic回归模型预测因变量的效果。这两个目的可以通过下面的各部分结果反映。
    参考连接:http://dy.163.com/v2/article/detail/CRJ8PJ5E0514AGEL.html

  2. 重点总结

    以上为全部内容,如有错误的地方望指出。


转载:https://blog.csdn.net/qq_40298902/article/details/101225330
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场