数学建模: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;
    % 得到线性方程: Z
    for t=1:n
        Z(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方程的 abc
    b=log(1-gamma);
    c=beta/(exp(b)-1);
    a=exp((sum(log(1./X(1:n)-c))-n*(n+1)*b/2)/n);
end
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuleo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值