如何在R语言中使用Logistic回归模型

Python017

如何在R语言中使用Logistic回归模型,第1张

Logistic回归在做风险评估时,一般采用二值逻辑斯蒂回归(Binary Logistic Regression)。以滑坡灾害风险评估为例。1、滑坡发生与否分别用0和1表示(1表示风险发生,0表示风险未发生);2、确定影响滑坡风险的影响因子,这个根据区域具体情况而定,一般包括:地层岩性、植被、降水、地貌、断层、人类活动等等。如果是其他风险的话也根据具体情况而定(咨询专家就可以知道)。3、构建回归分析的样本。Logistic回归也是统计学里面的内容,所以必须得构建统计分析的样本。以构建滑坡风险统计分析的样本为例,先找出滑坡发生的地区,同时计算滑坡发生地区的各个影响因子的指标值。再选择滑坡未发生的地区,同时计算滑坡未发生地区各个影响因子的指标值。这样,就构建了统计样本,自变量为各个影响因子的指标值,应变量为0和1,。把样本导入SPSS里面进行分析,就可以构建自变量和因变量之间的非线性关系模型,然后用这个模型继续求解其他区域滑坡风险的概率值。 希望我的答案对你能有帮助!

自变量通过不检验有以下这些可能:

1、方程本身没有意义,比如我们用身高来预测性别,这个肯定通不过检验。2、自变量本省有问题,二项逻辑回归对自变量的要求比较严,一般是要求连续、正态分布的数据才可以。如果自变量不满足符合的条件则很有可能通不过检验。

解决的方式:

1、首先将你的自变量转化为Z分数,这样可以从一定程度上改善数据的分布。针对情况1、你先用点二列相关检验一下看看各个转化后自变量和因变量之间是不是存在相关关系,如果不相关的话后面的步骤就免了。

2、如果两者存在相关再重新用二项逻辑回归进行拟合,如果通过检验则万事大吉,如果还是不行则往下看。

3、如果不能通过检验则说明通过转化为Z分数起到的效果有限,这个时候可以用Multinomnal logistic,这个在SPSS15以上的版本有,对自变量要求不是很严,可以是等级变量和分类变量

曲线拟合:(线性回归方法:lm)1、x排序2、求线性回归方程并赋予一个新变量z=lm(y~x+I(x^2)+...)3、plot(x,y)#做y对x的散点图4、lines(x,fitted(z))#添加拟合值对x的散点图并连线曲线拟合:(nls)lm是将曲线直线化再做回归,nls是直接拟合曲线。需要三个条件:曲线方程、数据位置、系数的估计值。如果曲线方程比较复杂,可以先命名一个自定义函数。例:f=function(x1, x2, a, b) {a+x1+x2^b} result=nls(x$y~f(x$x1, x$x2, a, b), data=x, start=list(a=1, b=2)) #x可以是数据框或列表,但不能是矩阵#对系数的估计要尽量接近真实值,如果相差太远会报错:“奇异梯度”summary(result) #结果包含对系数的估计和p值根据估计的系数直接在散点图上使用lines加曲线即可。曲线拟合:(局部回归)lowess(x, y=NULL, f = 2/3, iter = 3)#可以只包含x,也可使用x、y两个变量#f为窗宽参数,越大越平滑#iter为迭代次数,越大计算越慢loess(y~x, data, span=0.75, degree=2)#data为包含x、y的数据集;span为窗宽参数#degree默认为二次回归#该方法计算1000个数据点约占10M内存举例:x=seq(0, 10, 0.1)y=sin(x)+rnorm(101)#x的值必须排序plot(x,y) #做散点图lines(lowess(x,y)) #利用lowess做回归曲线lines(x,predict(loess(y~x))) #利用loess做回归曲线,predict是取回归预测值z=loess(y~x)lines(x, z$fit) #利用loess做回归曲线的另一种做法