【机器学习】逻辑回归(非常详细) - 知乎 (zhihu.com)
library(MASS)
data('crabs',package="MASS")
##对4,5,6,7,8进行主成分分析
pca<-prcomp(crabs[,4:8],
center = TRUE,
scale. = TRUE)
attributes(pca)
prop.pca=pca$sdev^2/sum(pca$sdev^2)#每个主成分解释变化比例
round(prop.pca,digits = 3)
##采用第一或第二主成分解释了数据中超过98%的变化
pca1<-pca$x[,1]
pca2<-pca$x[,2]
fit<-glm(crabs$sex~pca1+pca2,family = 'binomial')
attributes(fit)
fit$null.deviance#参考零偏差
fit$deviance#残差偏差
1-pchisq(38.9,197)#指出自由度是197,残差偏差为38.9
#返回结果为1,则是不能拒绝原假设,即拟合值和观测值没有显著差异
pred<-predict(fit,type='response')#response给出了概率
predclass<-factor(ifelse(pred>0.5,'M','F'))
table(predclass,crabs$sex)
#predclass F M
#F 95 4
#M 5 96
mean(predclass!=crabs$sex)#代回误差
网友评论