关于数据挖掘:R语言回归和主成分PCA-回归交叉验证分析预测城市犯罪率

51次阅读

共计 2427 个字符,预计需要花费 7 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=24671

在本文中,我解释了根本回归,并介绍了主成分剖析 (PCA) 应用回归来预测城市中察看到的犯罪率。我还利用 PCA 创立了一个回归模型,用于应用前几个主成分对雷同的立功数据进行建模。最初,我对两种模型的后果进行了比拟,看看哪个体现更好。

回归有助于显示因素和因变量之间的关系,它基本上答复了两种类型的问题;1. 吸烟对癌症的影响 2. 将来会产生什么?(例如)三年后的油价。

数据

犯罪学家对惩办制度对犯罪率的影响感兴趣。已应用汇总数据对此进行了钻研。数据集蕴含以下列:

变量形容
M:14-24 岁的男性在总人口中的百分比
So:北方州的指标变量
Ed:25 岁或以上人口的均匀受教育年限
Po1:年警察爱护的人均收入
Po2:去年警察爱护的人均收入
LF:14-24 岁年龄组的城市男性平民的劳动力参与率
M.F:每 100 名女性的男性人数
Pop:国家人口,以十万计
NW:非白人在人口中的百分比
U1:14-24 岁城市男性的失业率
U2:城市男性 35-39 岁的失业率
财产财产:可转让资产或家庭收入的中值
支出不平等:支出低于中位数一半的家庭的百分比
入狱概率:入狱人数与立功人数的比率
工夫:罪犯在首次获释前在国家监狱中服刑的均匀工夫(月)。
立功:犯罪率:每 10 万人口中的立功数量

咱们将数据集导入 R 环境

read("crim.txt")

查看变量是否正确

head(crim) #所有的变量都是预测因素,只有立功是因变量。

咱们正在尝试应用整个数据集来构建回归模型来进行预测。创立简略的回归模型

summary(model)

应用数据框架来手动创立咱们的数据点测试,而后在测试数据上运行一些预测。

primodl <- predict(mdl, test)

primodl

输入值不到下一个最低城市的犯罪率的一半,所以我将创立第二个模型,察看它的输入并画出比拟。

创立第二个模型

sumry(son_mel)

咱们当初能够对第二个模型进行预测了

pic\_secn\_mel<- prict(sed_odel, tst)

pic\_secn\_mel

与第一个模型相比,其后果显著更高。所以,它更正当。

穿插验证

咱们能够做一个 5 折的穿插验证。

cv(se,m=5)

咱们能够失去数据和其平均值之间的平方差的总和

 sum((Cm- mean(ui))^2)

咱们能够失去模型 1、模型 2 和穿插验证的平方残差之和

SSrl <- sum(res^2)

SSre <- sum(resi^2)

res <- "ms")*nrow

咱们也能够计算出 3 个模型的 R 平方值

 1 -res/tot

1-res/SS

 1-res/SS

取得的 R 平方值表明咱们的拟合品质很好。对于惩罚性回归,有必要对数据进行标准化,以确保所有的特色都受到等同的惩办。但在线性回归的状况下,这其实并不重要。它将只是转移截距和系数,但相干关系放弃不变。

PCA

PCA 是一种用于形容变动的办法,显示数据集中的强相关性,从而使其易于摸索和可视化数据。PCA 通过以下形式对数据进行转换:(1)去除数据中的相干关系(2)按重要性对坐标进行排序。

咱们能够查看 crime 数据的预测变量之间的相关性。

pairs(srm,c("o",Ed"o"))

对数据集中的所有预测变量利用 PCA。请留神,为了取得更精确的 PCA 后果,须要对这些变量进行标准化。

sumr(pca)
rotan #PCA 旋转是特征向量的矩阵
pca

而后,咱们能够通过绘制每个主成分的方差来决定在 “ 前几个 “ 主成分中应用多少个主成分。

plotpcaye ="ie")

要确定应用多少 PC?咱们能够尝试应用 5 个主成分作为开始。

pcax\[,1:5\]

应用前五个 PC,咱们能够持续建设一个线性回归模型。

 summary(mdPCA)

为了依据原始变量重建模型,首先咱们从 PCA 线性回归模型中取得系数,之后通过应用主成分的特征向量将 PCA 成分系数转化为原始变量的系数。

PCA 线性回归的系数

coefficients\[1\]
coefficients\[2:6\]

 beta0 #截距

转换

rot %*% beta

 t(alpha) # 标准化的数据系数

取得未标准化数据的系数。

 ahusl <- ahs / sppy(u\[,1:15\],sd)

 ba0cl <- ea0 - sum/sapply(sd))

未标准化数据的系数

 t(alas_sled)

 be0uced

# 咱们能够失去咱们的未标准化数据的估计值

as.marx %*% unscle + beta0aled

最初,为了比拟应用 PCA 的模型和应用回归的模型的品质,咱们必须计算 R -squared 和调整后的 R -squared,并将这些数值与前一个模型的数值进行比拟。调整后的 R 平方思考了模型中预测因子的数量。

 Rsquared <- 1 - SSE/SST # R-squared

应用所有变量的无 PCA 的先前线性回归模型

 summary(dlLR)

R-squared 和调整后的 R-squared 值都较高,这表明至多对于应用前五个主成分的模型,具备 PCA 的线性回归模型优于没有 PCA 的线性回归模型。为了查看应用不同数量的前 n 个主成分的线性回归模型是否产生了更好的拟合模型,咱们能够应用循环并进一步进行穿插验证。


 

最受欢迎的见解

1.R 语言多元 Logistic 逻辑回归 利用案例

2. 面板平滑转移回归 (PSTR) 剖析案例实现剖析案例实现 ”)

3.matlab 中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R 语言泊松 Poisson 回归模型剖析案例

5.R 语言混合效应逻辑回归 Logistic 模型剖析肺癌

6.r 语言中对 LASSO 回归,Ridge 岭回归和 Elastic Net 模型实现

7.R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病

8.python 用线性回归预测股票价格

9.R 语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

正文完
 0