求助:关于Logistic模型的matlab代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:关于Logistic模型的matlab代码相关的知识,希望对你有一定的参考价值。

t=0:51; %令1954年为初始年
x=[60.2 61.5 62.8 64.6 66 67.2 66.2 65.9 67.3 69.1 70.4 72.5 74.5 76.3 78.5 80.7 83 85.2 87.1 89.2 90.9 92.4 93.7 95 96.259 97.5 98.705 100.1 101.654 103.008 104.357 105.851 107.5 109.3 111.026 112.704 114.333 115.823 117.171 118.517 119.85 121.121 122.389 123.626 124.761 125.786 126.743 127.627 128.453 129.227 129.988 130.756];
[c,d]=solve('c/(1+(c/60.2-1)*exp(-5*d))=67.2','c/(1+(c/60.2-1)*exp(-20*d))=90.9','c','d') ;%求初始参数
b0=[ 241.9598, 0.02985]; %初始参数值
fun=inline('b(1)./(1+(b(1)/60.2-1).*exp(-b(2).*t))','b','t');
[b1,r1,j1]=nlinfit(t,x,fun,b0)
y= 180.9871./(1+( 180.9871/60.2-1).*exp( -0.0336.*t)); %非线性拟合的方程
plot(t,x,'*',t,y,'-or') %对原始数据与曲线拟合后的值作图
R1=r1.^2;
R2=(x-mean(x)).^2;
R=1-R1/R2 %可决系数
W=sum(abs(r1)) %残差绝对值之

那个初始参数值是怎么定的,还有fun函数是固定的吗?拟合函数的那些系数又是怎么回事。。

【1】初始值是这么定的:
>> [c,d]=solve('c/(1+(c/60.2-1)*exp(-5*d))=67.2','c/(1+(c/60.2-1)*exp(-20*d))=90.9','c','d')

c =

62.457687920920008140916437719297-1.6291275002135204129081793780683*i
62.457687920920008140916437719297+1.6291275002135204129081793780683*i
241.95986840768380162085441918688

d =

-.95675170588036288272009149214033e-1+.43712460153973020393407947582405*i
-.95675170588036288272009149214033e-1-.43712460153973020393407947582405*i
.29854891132649696390901254874996e-1

【2】fun的函数形式就是logistic函数。

【3】b1 =

180.9871 0.0336

可以改成这样,效果一样:
%==============
[c,d]=solve('c/(1+(c/60.2-1)*exp(-5*d))=67.2','c/(1+(c/60.2-1)*exp(-20*d))=90.9','c','d') ;%求初始参数
t=0:51; %令1954年为初始年
x=[60.2 61.5 62.8 64.6 66 67.2 66.2 65.9 67.3 69.1 70.4 72.5 74.5 76.3 78.5 80.7 83 85.2 87.1 89.2 90.9 92.4 93.7 95 96.259 97.5 98.705 100.1 101.654 103.008 104.357 105.851 107.5 109.3 111.026 112.704 114.333 115.823 117.171 118.517 119.85 121.121 122.389 123.626 124.761 125.786 126.743 127.627 128.453 129.227 129.988 130.756];
b0=[ eval(c(3)), eval(d(3))]; %初始参数值
fun=inline('b(1)./(1+(b(1)/60.2-1)*exp(-b(2)*t))','b','t');
[b1,r1,j1]=nlinfit(t,x,fun,b0)
y1=fun(b1,t);%非线性拟合的方程
plot(t+1954,x,'*',t+1954,y1) %对原始数据与曲线拟合后的值作图
grid
R1=r1.^2;
R2=(x-mean(x)).^2;
R=1-R1/R2 %可决系数
W=sum(abs(r1)) %残差绝对值之
%==============
参考技术A 初始参数值多数情况是通过经验或实验获得,如果没有这些经验值,可以自己编,但是可能会出现不收敛的情况,拟合效果非常不好
fun是你自己规定的函数的形式,你想让他是什么样的就怎么写,系数就是b

R语言广义线性模型Logistic回归案例代码

R语言广义线性模型Logistic回归案例代码

在实际应用中,Logistic模型主要有三大用途:

1)寻找危险因素,找到某些影响因变量的"坏因素",一般可以通过优势比发现危险因素;

2)用于预测,可以预测某种情况发生的概率或可能性大小;

3)用于判别,判断某个新样本所属的类别。

Logistic模型实际上是一种回归模型,但这种模型又与普通的线性回归模型又有一定的区别:

1)Logistic回归模型的因变量为二分类变量;

2)该模型的因变量和自变量之间不存在线性关系;

3)一般线性回归模型中需要假设独立同分布、方差齐性等,而Logistic回归模型不需要;

4)Logistic回归没有关于自变量分布的假设条件,可以是连续变量、离散变量和虚拟变量;

5)由于因变量和自变量之间不存在线性关系,所以参数(偏回归系数)使用最大似然估计法计算。

logistic回归模型概

以上是关于求助:关于Logistic模型的matlab代码的主要内容,如果未能解决你的问题,请参考以下文章

关于KMV模型中的 matlab 处理求助

求助probit模型的边际效应

如何用matlab求解logistic模型

数学建模MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)

数学建模MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)

求助,关于glmnet,用r做logistic回归