原文链接: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语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测