matlab回归logistic模型
请教大神matlab回归logistic模型代码及方法实现原理,最好附解析,有实例更好.% curvefitLogistic.m
% 在实际应用时, 只有在确认所得的生物数据具有 logistic 曲线规律, 拟合的结果才
% 有意义,下面这组数据具有 logistic 曲线规律!
N=[3929 5308 7240 9638 12866 17069 23192 31443 38558 50156 62948 ...
75995 91972 105711 122775 131669 150697 179323 203185 226500];
t=1790:10:1980;
% 画原始数据图
plot(t,N,t,N,'r*')
hold on
% Logistic 函数的构造
func = @(beta,x) beta(1)./(1+(beta(1)/N(1)-1)*exp(-beta(2)*(x-1790)));
% 关键:寻优初值的选取:beta0(1)为函数的最大值,beta0(1)尽可能小,这里直接取 0
% 因为:现在在计算机上进行 logistic 曲线拟合, 多采用 Guass一Newton 算法和 Guass-
% Newton 的改进算法 Marquardt 法, 这两种算法只有在选取一组与实际值较接近的初
% 值K, a, b 时, 迭代过程的收敛性才好, 即找到的K 、a 、b 的值能使 R 值最小!
beta0 = ;
% lsqcurvefit 调用
= lsqcurvefit(func,beta0,t,N);
% 画拟合图
plot(t,func(beta,t), t,func(beta,t), '*b');
希望是能回归出logistic模型参数以及选取哪些变量,初步回归这样子,不要线性的那个我会.
beta不就是参数吗?你是需要逐步回归选取变量是吗?
你如果要逐步回归的话就把lsqcurvefit函数换成stepwisefit函数,具体的用法差不多,就是返回值有区别,一看帮助就知道了
你这个 是logistic模型么?y只能取0或1,就是这个特殊啊,所以我才不知道该怎么做.
% Logistic 函数的构造
func = @(beta,x) beta(1)./(1+(beta(1)/N(1)-1)*exp(-beta(2)*(x-1790)));
注意函数你是可以自己根据需要定义的,就是你说的sigmod函数
路过路过看看
跟楼主有一样的问题,蹲一个回答
页:
[1]