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

article/2025/8/27 19:30:11

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;elsep(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. 重点总结
    在这里插入图片描述
    以上为全部内容,如有错误的地方望指出。


http://chatgpt.dhexx.cn/article/c7U0y9o2.shtml

相关文章

自学鸿蒙应用开发(25)- 基本的CommonDialog

动作演示 对话框是应用程序的主要输入手段之一&#xff0c;但是遗憾的是目前鸿蒙的开发网站上只有ToastDialog用法&#xff0c;其他类型的对话框则只能参考为数不多的英文文档。 以下是作者经过不断尝试&#xff0c;终于鼓捣出来的CommonDialog对话框。 CommonDialog1 代码实…

Builder设计模式构建通用型Dialog

目录 写在前面 一、什么是Builder模式 二、AlertDialog源码分析 2.1、源码阅读 2.2、Builder模式工作流程 三、代码实战——Builder模式构建通用型Dialog 3.1、基本框架搭建 3.2、完善Builder 3.3、完善真正的构建器 3.4、自定义参数配置 四、使用Dialog 写在前面 …

自学鸿蒙应用开发(26)- 自定义CommonDialog

执行效果 上一篇文章中说过&#xff0c;直接使用鸿蒙系统中的CommonDialog大致是下面的效果&#xff1a; 这个效果实在是无法用于实际的应用开发。本文介绍如何定制自己的CommonDialog。还是先看演示视频&#xff1a; CustomizeCommonDialog 准备布局 定制CommonDialog的第一…

Android炫酷翻转Dialog及高仿苹果IOS的Dialog

简单的Android弹出Dialog效果&#xff08;圆角&#xff09; 最近一段时间工作挺忙的&#xff0c;一直想写一篇博文&#xff0c;总是被各种事情打破计划&#xff0c;终于这次利用这个周末来开始自己第一次的技术文章的写作&#xff0c;提前说明&#xff0c;本人还是个菜鸟&#…

Android 全局Dialog

前沿 android 弹窗好几种&#xff0c;全局弹窗是什么&#xff1f;和普通Dialog&#xff08;必须依附activity上下文的弹窗&#xff09;有什么区别&#xff1f; 逛技术blog发现【全局dialog】这个名词&#xff0c;之前用FragmentDialog&#xff0c;自定义dialog。以及dialog的…

Android开发dialog内存泄露,Android中导致内存泄漏的竟然是它----Dialog

一. 内存泄漏的 Bug 猛增 最近在 App 进行 mokey 测试的时候检测到一些内存泄漏问题。在前天的测试中,楼主一瞬间收到了4个这样的 Bug 单,瞬间心理无比纠结,真有千万只羊驼向我奔来。 登录页面出现内存泄漏??!!楼主的代码是如此的***而无懈可击,这么可能出现这么多泄漏的…

dialog.setOnDismissListener(null)过程分析

前提 为解决DialogFragment的内存泄漏&#xff0c;使用了此篇博客的处理方法 DialogFragment 内存泄露&#xff0c;简单说就是给 dialog 设置 getDialog().setOnCancelListener(null); getDialog().setOnDismissListener(null);但发现了一个问题&#xff0c;当用户返回Activi…

深入分析Android中Dialog

在Android中,Dialog是一个非常重要的UI, 它可以方便的给用户提示,用最简洁的方式向用户展示信息, 以下的图片是Dialog的一个整体架构&#xff0c;通过它&#xff0c;可以总体对Dialog有一个很清晰的认识. 从这张图中可以看到&#xff0c;Dialog为父类, 其下有最重要的&#xf…

android自定义dialog去除title,Android 自定义Dialog去除title导航栏的解决方法

Android 自定义Dialog去除title导航栏的解决方法 如下所示: Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); 以上这篇Android 自定义Dialog去除title导航栏的解决方法就是小编分享给大家的全部内…

android常见的dialog的使用及认识

介绍 在实际开发过程中 , 我们难免要经常使用提示框 (dialog), 根据不同的场景使用不同的样式的提示框(dialog). androd提供了丰富的dialog函数 , 本文将介绍在实际开发中经常使用的对话框, 包括普通对话框 , 列表对话框 , 单选对话框 , 多选对话框 , 等待对话框, 进度条对话框…

ABAP屏幕设计Dialog

目录 一、概览 1.屏幕 2.程序组织 3.屏幕定义和维护 用途&#xff1a; 组成&#xff1a; Dialog的屏幕执行过程&#xff1a; 属性&#xff1a; 创建&#xff1a; 4.屏幕属性的动态修改 5.屏幕序列 二、Screen编程实例 1.Hello World屏幕编程 建立程序&#xff1a; 设计…

Android Dialog 源码研究

Android Dialog 源码研究 在阅读Dialog源代码之前,我给自己提出了4个问题,带着这4个问题的疑问,我才开始看源码,这样的好处能让阅读中有了侧重点,往往能更快的理解某些代码的意图,这也正是为什么总说提出问题本身,要比解决问题困难。 我下面要思考的4个问题是: Dialo…

android 判断dialog,Android 7.0经验谈:Dialog不显示之迷

最近遇到个怪问题,在其他手机上都能正常的显示Dialog,但是在Android 7.0的手机上只能显示Dialog的半透明背景,无法显示Dialog的内容。 用图给大家展示一个遇到的现象,正常时应该是这个样子的: 而我们遇到的情况如下,更坏的是如果我们设置Dialog不能点击空白处取消(dismis…

Android窗口设计之Dialog、PopupWindow、系统窗口的实现

窗口设计之Dialog、PopupWindow、系统窗口的实现 Android应用程序窗口设计系列博客: Android应用程序窗口设计之Window及WindowManager的创建 Android应用程序窗口设计之setContentView布局加载的实现 普法Android的Token前世今生以及在APP,AMS,WMS之间传递 Android应用程序窗口…

理解Android中Dialog

文章收藏的好句子&#xff1a;你能走多远、爬多高&#xff0c;不仅取决于你自身的力量&#xff0c;还取决于周围人带动的力量。 PS&#xff1a;本文是基于 Android Api 26 来分析源码的。 1、Dialog 的 Window 是在哪里创建的&#xff1f; Dialog 的 Window 是在什么地方创建的…

Android之Dialog分析

Android之Dialog分析 以Dialog为引导&#xff0c;Android的弹出式消息一共是三种&#xff08;据我所知&#xff09;&#xff1a;Dialog&#xff0c;tocast&#xff0c;notification 其三种弹出式消息各有所长。今天重点是分析其中的Dialog。Android的Dialog是android界面编程的…

Android开发dialog内存泄露,Dialog引发的内存泄漏

8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 本文是本人对于 LeakCanary 团队的一篇分析内存泄漏的文章的意译。水平有限,如有不够准确之处,敬请包涵。 主旨:在Lollipop之前的版本,Dialog可能导致内存泄漏。 引言 LeakCanary 提示存在内…

android源码分析-Dialog

今天给大家介绍android -Dialog源码分析 Dialog 是所有对话框的基类&#xff0c;例如AlertDialog&#xff0c;我们要深入了解指导Dialog的用法&#xff0c;逻辑&#xff0c;必须要把Dilaog弄清楚&#xff0c;下面首先我们来看下Google对Dialog的类描述&#xff1a;/**Base clas…

Dialog源码分析

1, 概述 Dialog(对话框)不仅可以显示信息,还可以和Activity界面进行交互,这种交互是阻塞式的. 继承Dialog的类有好几种,主要以AlertDialog为例来分析一下具体的原理。 2 实现 Dialog依附于Activity来实现,一般在acitivty中显示,因为Dialog的交互是阻塞式的,所以最好另开一线…

爬虫为什么会使用到HTTP代理?

在进行网页爬虫的时候使用HTTP代理&#xff0c;可以进行匿名抓取网页信息&#xff0c;爬取大数据等使用方向。HTTP代理我们很了解&#xff0c;但是你有了解过HTTP协议是什么吗&#xff1f; HTTP协议即超文本传输协议&#xff0c;是Internet上信息传输时使用最为广泛的一种简单…