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

什么是PCR?(PCR = PCA + MLR)点击文末“阅读原文”获取完整代码数据)。

• PCR是处理许多 x 变量的回归技术
• 给定 Y 和 X 数据:
• 在 X 矩阵上进行 PCA
– 定义新变量:主成分(分数)
• 在 多元线性_回归_(_MLR_)  中使用这些新变量中的一些来建模/预测 Y
• Y 可能是单变量或多变量。

相关视频

例子

# 对数据
set.seed(123)da1 <- marix(c(x1, x2, x3, x4, y), ncol = 5, row = F)

多元线性回归和逐步剔除变量,手动:

# 对于data1:(正确的顺序将根据模拟情况而改变)。
lm(y ~ x1 + x2 + x3 + x4)lm(y ~ x2 + x3 + x4)lm(y ~ x2 + x3)lm(y ~ x3)

配对关系图

pais(atix, ncol = 5, byrow = F

如果对data2重复以上过程:

# 对于data2:lm(y ~ x1 + x2 + x3 + x4)lm(y ~ x1 + x2 + x4)lm(y ~ x2 + x4)lm(y ~ x2)

数据集 2 的绘图:

使用四个 x 的均值作为单个变量来分析两个数据集:

xn1 <- (dt1\[,1\] + a1\[,2\] + at1\[,3\] + dt1\[,4\])/4lm(data1\[,5\] ~ xn1)lm(data2\[,5\] ~ xn2)

检查一下X数据的PCA的载荷loading是什么。

# 几乎所有的方差都在第一主成分解释。
prnmp(dt1\[,1:4\])

# 第一个成分的载荷
picp(dta1\[,1:4\])$lads\[,1\]

它们几乎相同,以至于第一个主成分本质上是四个变量的平均值。让我们保存一些预测的 beta 系数 - 一组来自数据 1 的完整集和一组来自均值分析的:

c1 <- smry(lm(dta1\[,5\] ~ dta1\[,1\] + dta1\[,2\] + ata1\[,3\] +
dt1\[,4\]))$coficns\[,1\]
f <- summry(rm2)$cefets\[,1\]

我们现在模拟三种方法(完整模型、均值(=PCR)和单个变量)在 7000 次预测中的表现:

# 对预测进行模拟。
误差<- 0.2xn <- (x1 + x2 + x3 + x4)/4
yt2 <- cf\[1\] + cf\[2\] * xn
yht3 <- cf\[1\] + cf\[2\] * x3
bro(c(um((y-hat)^2)/7000 min = "平均预测误差平方")

PCR 分析误差最小。

示例:光谱类型数据

构建一些人工光谱数据:(7 个观测值,100 个波长)

# 光谱数据实例mapot(t(spcra) )
mtlnes(t(spcra))

平均光谱表明:

mtpot(t(secra))
malies(t(spcta))
mnp <- apply(spcra, 2, mean)
lines(1:100, mnp, lwd = 2)

平均中心光谱:

spcamc<-scae(spcta,scale=F)
plot(t(spermc),tpe="")


点击标题查阅往期内容

偏最小二乘回归(PLSR)和主成分回归(PCR)

左右滑动查看更多

01

02

03

04

标准化光谱:

sptracs<-scale(spetra,scale=T,center=T)
matott(specrams),tye="n",
matlies(t(sectramcs))

# 用特征函数对相关矩阵做PCA。
pcaes <- eien(cor(spra))
ladigs <- pces$vectors\[,1\].
score <- peramcs%*%t(t(lodis1))
pred <- soes1 %*% loadings1
## 1-PCA预测值转换为原始尺度和平均值。
mtrx(repeasp, 7), nro=7, brw=T)

在单个概览图中收集的所有图:

par(mfrow = c(3, 3)
matlot(t(sectr)

PCR是什么?

• 数据情况:

• 用A 主成分t1、t2... 做MLR而不是所有(或部分)x。
• 多少个成分:通过交叉验证确定。

怎么做?

1. 探索数据
2. 进行建模(选择主成分数量,考虑变量选择)
3. 验证(残差、异常值、影响等)
4. 迭代 2. 和 3。
5. 解释、总结、报告。
6. 如果相关:预测未来值。

交叉验证

• 忽略一部分观察值
• 在剩余(减少的)数据上拟合模型
• 预测模型遗漏的观察值:yˆi,val
• 对所有观察值依次执行此操作并计算总体模型性能:

(预测的均方根误差)

最后:对所有选择的分量(0、1、2、...、... )进行交叉验证并绘制模型性能

barplot(names.arg)

选择最佳成分数:
• 总体误差最小的主成分。

重采样

• 交叉验证 (CV)

•留一法(_Leave-On_e-_Out_,简称LOO)

• Bootstrapping
• 一个很好的通用方法:
– 将数据分成训练集和测试集。
– 在训练数据上使用交叉验证
– 检查测试集上的模型性能
– 可能:重复所有这些多次(重复双交叉验证)

交叉验证 - 原则

• 最小化预期预测误差:
平方预测误差 = Bias2 +方差
• 包括“许多”PC主成分:低偏差,但高方差
• 包括“很少”PC 主成分:高偏差,但低方差
• 选择最佳折衷!

验证 - 存在于不同的级别

1. 分为 3 个:训练(50%)、验证(25%)和测试(25%)
2. 拆分为 2:校准/训练 (67%) 和测试 (33%) 
训练中,CV/bootstrap •更常用
3. 没有 "固定分割",而是通过CV/bootstrap反复分割,然后在每个训练组内进行CV。
4. 没有分割,但使用(一级)CV/bootstrap。
5. 只对所有数据进行拟合--并检查误差。

示例:汽车数据

# 例子:使用汽车数据。
# 将X矩阵定义为数据框中的一个矩阵。
mtas$X <- as.ix(mcas\[, 2:11\])
# 首先,我们考虑随机选择4个属性作为测试集
mtcrs_EST<- mtcrs\[tcars$rai == FASE,\] 。
tcaTRAIN <- mtars\[tcarstrai == TUE,\] 。

现在所有的工作都在 训练数据集上进行。

探索数据

我们之前已经这样做了,所以这里不再赘述

数据建模

使用pls软件包以最大/大量的主成分运行PCR。

# 使用pls软件包,以最大/较大的成分数运行PCR。pls(lomg ~ X , ncop = 10, dta = marsTRAN,
aliaon="LOO")

初始图集:

# 初始化的绘图集。
par(mfrow = c(2, 2)
plot(mod)

主成分的选择:

# 主成分的选择。
# 分段的CV会得到什么。
modseCV <- pcr(lomg ~ X , ncp = 10, dta = marTIN
vai ="CV"
)
# 初始图集。
par(mfrow = c(1, 2))
plot(odsC, "vadaion")

让我们看看更多的主成分:

# 让我们看看更多的主成分。
# 分数。
scre(mod)

#负荷
loading(md,cms = 1:4)

我们选择 3 个主成分:

# 我们选择4个成分
m <-  ncmp = 3, data = mrs_TAI vdon = "LOO", akknie = RUE

然后:验证:
让我们验证更多:使用 3 个主成分。我们从中获取预测的残差,因此这些是(CV)验证版本!

oit <- ppo(mod3, whih = "litin")
plot(obft\[,2\], Rsds)
# 为了绘制残差与X-杠杆的对比,我们需要找到X-杠杆。
# 然后找到杠杆值作为Hat矩阵的对角线。
# 基于拟合的X值。
Xf <- sors(md3)
plot(lvge, abs(Rsidals))
text(leage, abs(Reuls))

# 让我们也绘制一下残差与每个输入X的关系。for ( i in 2:11){
plot(res~masAN\[,i\],type="n")
}

解释/结论

现在让我们看一下结果——“解释/结论”:

# 现在我们来看看结果 - 4) "解释/结论"
par(mfrw = c(2, 2))
# 绘制具有Jacknife不确定性的系数。
obfi <- red(mod3,, wich = "vltn)
abe(lm(ft\[,2\] ~ fit\[,1\])
plt(mo3, ses = TUE,)

# 最后是一些输出
test(mo3, nm = 3)

预测

# 现在让我们试着预测TEST集的4个数据点。
prdit(md3, nwaa =TEST)
plt(TEST$lgg, pes)

rmsep <- sqrt(men(log - prd)^2))
rmsep

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据》。

点击标题查阅往期内容

R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标

数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

R语言逻辑回归logistic模型分析泰坦尼克titanic数据集预测生还情况

R语言是否对二分连续变量执行逻辑回归

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析

R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者

R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

R语言用线性模型进行臭氧预测:加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值

R语言Bootstrap的岭回归和自适应LASSO回归可视化

R语言中回归和分类模型选择的性能指标

R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型

R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

R语言有RStan的多维验证性因子分析(CFA)

主成分分析(PCA)原理及R语言实现及分析实例

R语言无监督学习:PCA主成分分析可视化

R语言使用Metropolis- Hasting抽样算法进行逻辑回归

R语言多元Logistic逻辑回归 应用案例

R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析

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

R语言基于树的方法:决策树,随机森林,Bagging,增强树

spss modeler用决策树神经网络预测ST的股票

R语言中自编基尼系数的CART回归决策树的实现

python在Scikit-learn中用决策树和随机森林预测NBA获胜者

matlab使用分位数随机森林(QRF)回归树检测异常值

基于随机森林、svm、CNN机器学习的风控欺诈识别模型

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分

R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据...相关推荐

  1. 多元线性回归算法: 线性回归Linear Regression、岭回归Ridge regression、Lasso回归、主成分回归PCR、偏最小二乘PLS

    0. 问题描述 输入数据:X=(x1,x2,....,xm)\mathbf{X} = (x_1, x_2,...., x_m)X=(x1​,x2​,....,xm​), 相应标签 Y=(y1,y2,. ...

  2. R语言使用lm函数拟合多元线性回归模型、假定预测变量之间有交互作用、R语言使用effects包的effect函数查看交互作用对于回归模型预测响应变量的影响

    R语言使用lm函数拟合多元线性回归模型.假定预测变量之间有交互作用.R语言使用effects包的effect函数查看交互作用对于回归模型预测响应变量的影响 目录

  3. R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标

    全文下载链接:http://tecdat.cn/?p=27515 建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提 ...

  4. 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据...

    原文链接:http://tecdat.cn/?p=23378 1 介绍 在本文中,我们将研究以下主题 证明为什么低维预测模型在高维中会失败. 进行主成分回归(PCR). 使用glmnet()进行岭回归 ...

  5. 数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标...

    原文链接:http://tecdat.cn/?p=27515  建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提取 ...

  6. R语言使用lm函数拟合多元线性回归模型、假定预测变量没有交互作用(Multiple linear regression)

    R语言使用lm函数拟合多元线性回归模型.假定预测变量没有交互作用(Multiple linear regression) 目录

  7. 预测分析:R语言实现2.3 多元线性回归

    2.3 多元线性回归 只要有多于一个输入特征,并且要构建一个线性回归模型,我们就处于多元线性回归的领域了.具有k个输入特征的多元线性回归模型的一般方程如下所示: y=kxk+k-1xk-1+-+1x1 ...

  8. 主成分回归在径流预测中的应用

    摘要: 采取主成分回归方法对具有多重共线性的湘江流域43 a径流资料进行了分析,以实测径流量.降水量和蒸发量等7 个指标进行了样本预测.结果表明:主成分回归比多元线性回归的误差小,预测值更接近于实测值 ...

  9. matlab偏最小二乘截距,matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR)

    原标题:matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR) 原文:http://tecdat.cn/?p=2655 此示例显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回 ...

最新文章

  1. Django 模型层(1)
  2. android 子module混淆_Android 传统(经典)蓝牙框架
  3. 刚刚,CVPR 2021论文接收结果「开奖了」
  4. 简述ospf的各种报文
  5. CSS padding margin border属性讲解
  6. 开发怼产品,天经地义?大惊小怪?
  7. 我也不知道取什么标题好了!
  8. 使用Windbg分析蓝屏原因
  9. IntelliJ IDEA 汉化包-支持2018和2019版本
  10. 保护水资源公益网站html,保护水资源公益广告词
  11. python输出今天的日期和今天的日期时间
  12. Think in Java 4 中关于使用XOM操作xml文件
  13. vue的keep-alive的正确用法
  14. 【宋词】之《菩萨蛮·书江西造口壁》
  15. 嵌入页面拒绝了我们的连接请求
  16. Delphi 10.4 Sidney / Interbase 布尔值字段Boolean数值总是false的严重BUG及解决方法
  17. 划重点!百度、阿里、腾讯大厂Android面试必问知识点系统梳理,啃一半公司随便挑
  18. 1.5 极限运算法则
  19. 计算机用户密码过期,电脑登陆密码已过期的详细解决方案
  20. 扑克牌式插入排序及升级版希尔排序

热门文章

  1. 大数据开发工程师目录
  2. PanDownload作者被抓,为何大家都对百度网盘如此气愤?
  3. Android targetSdkVersion从23升级到26适配指南
  4. php读书笔记,读书笔记:《Modern PHP》
  5. java实现qq抢红包_java抢红包功能实现
  6. 初级软件开发人员进修必备的20本书(上)
  7. 2018 Google IO干货摘要及对国内Android开发者的影响
  8. VS2019离线安装包下载方法
  9. ant design pro,删除最后一页退回上一页
  10. 《SiamMask:Fast Online Object Tracking and Segmentation:A Unifying Approach》论文笔记