求助:关于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函数是固定的吗?拟合函数的那些系数又是怎么回事。。
>> [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代码的主要内容,如果未能解决你的问题,请参考以下文章
数学建模MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)