当前位置: 首页 > news >正文

数学建模:Logistic回归预测

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛

数学建模:Logistic回归预测

Logistic回归预测

logistic方程的定义:

x t = 1 c + a e b t x_{t}=\frac{1}{c+ae^{bt}}\quad xt=c+aebt1

在这里插入图片描述

d x d t = − a b e b t ( c + a e b t ) 2 > 0 \frac{dx}{dt}=\frac{-abe^{bt}}{\left(c+ae^{bt}\right)^2}>0 dtdx=(c+aebt)2abebt>0

算法流程

  1. 建立logistic方程

  2. 求解 其三个未知系数:abc

  3. Yule算法求解:构建如下的 线性方程 Z Z Z

    x t + 1 − x t x t + 1 = 1 − x t x t + 1 = 1 − c + a e b ( t + 1 ) c + a e b t = ( a e b t + c − c ) ( 1 − e b ) ( c + a e b t ) = ( 1 − e b ) − c ( 1 − e b ) x t \begin{aligned}\frac{x_{t+1}-x_{t}}{x_{t+1}}=1-\frac{x_{t}}{x_{t+1}} \\&=1-\frac{c+ae^{b(t+1)}}{c+ae^{bt}} \\&=\frac{\left(ae^{bt}+c-c\right)\left(1-e^b\right)}{\left(c+ae^{bt}\right)} \\&=\left(1-e^b\right)-c\left(1-e^b\right)x_t\quad\end{aligned} xt+1xt+1xt=1xt+1xt=1c+aebtc+aeb(t+1)=(c+aebt)(aebt+cc)(1eb)=(1eb)c(1eb)xt

  4. 对此方程进行最小二乘法(OLS),得到方程的估计值然后进而得到 a,b,c的值

γ = 1 − e b 以及  β = − c ( 1 − e b ) , \gamma=1-e^b\text{ 以及 }\beta=-c\big(1-e^b\big), γ=1eb 以及 β=c(1eb),

a ^ = e x p { 1 n [ ∑ t = 1 n l n ( 1 x t − c ^ − n ( n + 1 ) 2 b ^ ) ] } 5 ) \hat a=exp\bigg\{\frac{1}{n}\bigg[\sum_{t=1}^nln(\frac{1}{x_t}-\hat c-\frac{n(n+1)}{2}\hat b)\bigg]\bigg\}5) a^=exp{n1[t=1nln(xt1c^2n(n+1)b^)]}5)

  1. 然后需要预测自变量值 x x x 直接带入即可。

代码实现

function [a,b,c] = mfunc_Logistic(X)% logistic 回归预测% params:%       X: 输入向量% returns:%       a,b,c: 分别为logistic的未知参数n=length(X)-1;% 得到线性方程: Zfor t=1:nZ(t)=(X(t+1)-X(t))/X(t+1);end% 前面插一列全1向量X1=[ones(n,1) X(1:n)']; % (46,2)% 对线性方程 Z 进行最小二乘法OLS% B:回归系数% bint:回归系数的置信区间% r:残差% rint:残差的置信区间% stats:包含四个统计量:R^2, F, 概率p, 估计误差方差Y=Z';[B,Bint,r,rint,stats]=regress(Y,X1);%最小二乘(OLS)gamma=B(1,1);beta=B(2,1);%% 带入公式 计算logistic方程的 abcb=log(1-gamma);c=beta/(exp(b)-1);a=exp((sum(log(1./X(1:n)-c))-n*(n+1)*b/2)/n);
end
http://www.lryc.cn/news/151551.html

相关文章:

  • 一个面向MCU的小型前后台系统
  • 软件外包开发人员分类
  • HTML 元素被定义为块级元素或内联元素
  • 单调递增的数字【贪心算法】
  • gnuradio-hackrf_info.exe -FM频率使用
  • JVM学习(三)--生产环境的线程问题诊断
  • PHP数组处理$arr1转换为$arr2
  • ATF(TF-A)安全通告 TFV-10 (CVE-2022-47630)
  • 详解 SpringMVC 中获取请求参数
  • Message: ‘chromedriver‘ executable may have wrong permissions.
  • 每日一题 1372二叉树中的最长交错路径
  • 【力扣每日一题】2023.9.2 最多可以摧毁的敌人城堡数量
  • kotlin实现java的单例模式
  • 使用 KeyValueDiffers 检测Angular 对象的变化
  • Macos 10.13.2安装eclipse
  • Android逆向学习(一)vscode进行android逆向修改并重新打包
  • 【深入浅出设计模式--状态模式】
  • Debezium系列之:Debezium Server在生产环境大规模应用详细的技术方案
  • Echart笔记
  • docker 笔记1
  • HTTP Get 和 Post 的区别
  • C++超级迷宫游戏
  • CUDA小白 - NPP(3) 图像处理 Color and Sampling Conversion
  • Android硬件通信之 串口通信
  • 高防服务器面对DDOS攻击的威胁有何必要性
  • VBA中如何将if写到一行
  • 性能测试,python 内存分析工具 -memray
  • Jmeter(二十八):beanshell的使用
  • 数学建模:层次分析法
  • POI-TL制作word