计算 比例 或 百分之比 (lambda) 的 Logit 变换
用法:
logit(p, percents=max(p, na.rm = TRUE) >1, adjust)
参数:
p- 比例 或 百分之比 向量 或数组。
percents -- TRUE 表示 用 百分比。
adjust -- 调整因子 ,避免比例为 0或1, 默认没这个比例时 为 0时, 有这个比例 为 .025
例子:
options(digits=4)
logit(.1*0:10)
## [1] -3.6636 -1.9924 -1.2950 -0.8001 -0.3847 0.0000 0.3847
## [8] 0.8001 1.2950 1.9924 3.6636
## Warning message:
## Proportions remapped to (0.025,0.975) in: logit(0.1 * 0:10)
Matlab并没有提供现成的函数来进行logistic回归分析。但提供了非线性相关函数,所以想办法编一个函数来进行logistic回归分析。编写函数:
function yhat = logit(beta,x)
b1 = beta(1)
b2 = beta(2)
yhat=exp(b1+b2*x)./(1+exp(b1+b2*x)) %为了完成如下函数形式。
调用实例:
clear
clc
clg
ck=[2060100140180220260300340380420460500]
response=[2/9013/3930/3830/35119/2018/1913/1411111]
beta=[0.5 0.5]
betahat = nlinfit(ck,response,@logit,beta)
plot(ck,response,'o')
hold on
plot(ck,logit(betahat,ck),'r')
不过得注意的是,这里是用least-squares parameter estimates(即最小二乘)来估计参数的,而SPASS可能是用极大似然法来估计参数的,所以两个软件计算结果可能会不同。
也可能是自己程序编写有误,只能在以后实践中来发现错误了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)