Logistic回归与建模

文章目录

  • 1 Logistic回归模型
    • 1.1 模型的概念
    • 1.2 模型的建立
    • 1.3 参数的估计
    • 1.4 模型的求解
    • 1.5 模型的预测
    • 1.6 拟合优度检验
    • 1.7 计算预测正确率

1 Logistic回归模型

1.1 模型的概念

在很多问题上,被解释的变量只有两个结果,这样的变量我们可以用虚拟变量来表示,即用0或1,也就是表示是与否的关系。

1.2 模型的建立

Logistic回归模型不对因变量y直接进行建模,而是对y取某个值的概率进行建模,即p{y=1|x}进行建模。这个概率的取值只有0或1两种情况。那么可以得到p{y=1|x}与x的关系建立模型:
在这里插入图片描述
当x取任意一个值时,p{y=1|x}的值始终处于[0,1]之间。将上函数表达式变形后有:
Logistic回归与建模_第1张图片
其中B1表示x每单位的变化引起的对数优势的平均变化量。

1.3 参数的估计

在大多数情况下,极大使然发法时最常用的参数估计方法,其似然函数为:
在这里插入图片描述
在R中,常用函数glm()来拟合广义线性模型,其中包含Logistic回归模型。

1.4 模型的求解

#读入数据
data <- read.csv("D:/桌面文件/住房.csv",header = T)
#建立模型函数表达式
fx <- glm(y~x,family = binomial,data = data )
#模型结果展示
summary(fx)

Logistic回归与建模_第2张图片
Intercept表示Bo的估计,Estimate是估计值,从参数的显著性检验可知,在0.05的显著性水平下,模型是显著的。即认为家庭收入越高,购买房子的可能性就越大。

1.5 模型的预测

在R中,predict()函数可用于预测模型的预测值。现在可预测前10个预测值。

#模型的预测
fx.pre <- predict(fx,type = "response")
fx.pre[1:10]

Logistic回归与建模_第3张图片
我们预测得只是算出来的概率,而我们想要的预测值是拥有还是没有拥有,即是0还是1.那么我们可以设定将概率大于0.5的值赋值为1,小于的赋值为0。我们咳哟i使用ifelse()函数来进行判断。

#赋值
fx.pre <- ifelse(fx.pre>0.5,1,0)

Logistic回归与建模_第4张图片
从上可知,我们根据每户的收入进行训练,得到了最后的预测值,预测了另外十户的购买房屋具体情况的能力。

1.6 拟合优度检验

在Logistic回归模型中,对拟合优度的检验一般是借助混淆矩阵,即通过矩阵的形式来展示拟合值与实际观测值的吻合程度也就是预测得正确率。可在predict()函数的基础上,使用table()来进行查看。

#混淆矩阵
(ConfuseMatrix=table(data$y,fx.pre))

Logistic回归与建模_第5张图片
从得到的结果来看,9个不买房的人中预测为不买房的有7人,预测为买房的有2人;买房的11人中,预测为不买房的有4人,买房的有7人。

1.7 计算预测正确率

#z正确率计算
#总的预测正确率
sum(diag(ConfuseMatrix))/sum(ConfuseMatrix)
#单个预测正确率
prop.table(ConfuseMatrix,1)*100

Logistic回归与建模_第6张图片
从结果来看,预测正确率为0.7,而在单个预测正确率上,不买房的人群中预测的正确率为77.78%,买房的人群中预测得正确率为63.63%。

你可能感兴趣的:(R语言多元分析,回归,机器学习,数学建模,线性回归)