主成分分析应用之主成分回归

article/2025/5/11 6:11:40

主成分回归分析

 

对于OXY数据集的变量解释如下:

 

对上述数据进行回归模型的拟合,得到模型:


从模型的显著性检验结果看出:除了常数项以及β3显著,其他变量系数都不通过显著性检验。同时,从模型整体拟合效果来看,R^20.8618,调整的R^20.7697,整体拟合效果可以通过。最后,p值为0.00198说明,拒绝原假设,即有理由认为回归模型从整体上拟合效果比较好。

下面针对系数通不过检验进行分析。

 ##残差图,异方差,自相关检验


plot(lm.sol$residuals,main = "the residuals of liner model",ylab = "re")


abline(h=0,lty=2)


#多重共线性检验


kappa(qr(OXY))

结果:


借助残差图,其随机围绕着re=0波动,可以排除模型不存在自相关以及异方差问题。

kappa(qr(OXY))
[1] 264.2117

 由其条件数为264大于100,可认为,该模型存在较强的多重共线性。

则采用主成分回归法,来消减模型存在多重共线性带来的影响,即系数通不过显著性检验。

 

 

 

求主成分:


 

cumulative proportion可以得到当主成分个数m等于3时,累计贡献率为83.526%大于80%,即可认为前三个主成分,就基本提取了原数据绝大部分的信息。所以,以前三个主成分的得分值作其观测值z1z2z3,并把它添加到数据集OXY中,建立回归模型:

 y =46.3800+2.0593*z1 -1.4782*z2 +0.6950*z3

 

可从summarylm.sol.1)结果得到,除了z3的系数没通过显著性检验。同时模型的整体

 

拟合效果得到提高,R^20.8676,调整的R^20.8345,同时p值远远小于0.05,说明

 

模型整体拟合效果较佳。

lm.sol.1<-lm(y~z1+z2+z3, data=OXY)
summary(lm.sol.1)


Call:
lm(formula = y ~ z1 + z2 + z3, data = OXY)


Residuals:
    Min      1Q  Median      3Q     Max 
-2.3880 -1.5069  0.3160  0.7009  4.3672 


Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  46.3800     0.4762  97.394  < 2e-16 ***
z1            2.0593     0.2591   7.950 4.01e-06 ***
z2           -1.4782     0.4093  -3.611  0.00357 ** 
z3            0.6950     0.4512   1.540  0.14942    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


Residual standard error: 1.905 on 12 degrees of freedom
Multiple R-squared:  0.8676, Adjusted R-squared:  0.8345 
F-statistic:  26.2 on 3 and 12 DF,  p-value: 1.49e-05

使用逆变换法,得到原始变量的回归方程:

beta<-coef(lm.sol.1); A<-loadings(prin.oxy)
x.bar<-prin.oxy$center; x.sd<-prin.oxy$scale
coef<-(beta[2]*A[,1]+ beta[3]*A[,2])/x.sd
beta0 <- beta[1]- sum(x.bar * coef)
c(beta0, coef)
(hntercept)          x1          x2          x3          x4          x5          x6           y 
84.48047095 -0.19517781 -0.11688617 -1.04312708 -0.12361966 -0.03916300 -0.05573319  0.31272008 

 

 

即可以得到原始变量的回归方程

从其系数可以大致得到以下结论:

即认为人体肺活量与年龄,体重,脉搏成负相关,与运动时最大脉搏成正比。


 


http://chatgpt.dhexx.cn/article/Neik00wH.shtml

相关文章

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

全文链接&#xff1a;http://tecdat.cn/?p23378 在本文中&#xff0c;我们将使用基因表达数据。这个数据集包含120个样本的200个基因的基因表达数据。这些数据来源于哺乳动物眼组织样本的微阵列实验&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 …

主成分回归分析实战教程

本文介绍主成分回归分析(Principal Components Regression)&#xff0c;并通过示例展示其实现过程。 给定p个预测变量和响应变量&#xff0c;多元线性回归使用如最小二乘法获得最小误差平方和(RSS)&#xff1a; RSS Σ ( y i – y ^ i ) 2 {Σ(y_i – ŷ_i)^2} Σ(yi​–y^​…

机器学习——数据的共线性问题(岭回归、LASSO回归、逐步回归、主成分回归)

一、如何检验共线性 容忍度&#xff08;Trlerance&#xff09;&#xff1a;容忍度是每个自变量作为因变量对其他自变量进行回归建模时得到的残差比例&#xff0c;大小用1减得到的决定系数来表示。容忍度的值介于0和1之间&#xff0c;如果值越小&#xff0c;说明这个自变量与其…

TI的CC2530单片机检测不同类型的方波

之前仅检测过一个引脚上一种方波信号&#xff0c;现在要再引脚上区分三种不同的波形。着实头大了好一会儿。 要检测的三种波形如下图所示&#xff1a; 每种波形的持续长度为500us,时间间隔为10ms. 比如我们在P0_2上检测这个波形&#xff0c;首先要对P0_2进行初始化操作&#…

单片机|CC2530实验入门

本教程为实验入门&#xff0c;手把手教你编译一个工程 一、USB驱动 仿真器设备的连接 【说明】USB接口不够可以使用USB集线器扩展&#xff0c;且互相不会干扰&#xff0c;非常方便。 由于用到了CC仿真器&#xff08;smart RF04EB&#xff09;&#xff0c;需要相关驱动。连接…

CC2530单片机延时函数实际测试

因为要检测不同的波形&#xff0c;所以对时间要求很高&#xff0c;但是发现Zstack本身提供的微秒级的延时其实有误差。 因此特地写了测试函数&#xff0c;然后用示波器观察了时间。详细如下&#xff1a; 先说CC2530与普通8051单片机时钟的不同&#xff0c;CC2530的每个指令是一…

ZigBee无线传感——CC2530单片机定时器1PWM输出

定时器1&#xff08;16位&#xff09; 时器1是一个独立的16位定时器&#xff0c;支持典型的定时/计数功能&#xff0c;比如输入捕获&#xff0c;输出比较和PWM功能。 定时器有五个独立的捕获/比较通道。每个通道定时器使用一个I/O引脚。定时器用于范围广泛的控制和测量应用&am…

基于ZigBee cc2530单片机多传感器的智能阳台仿真设计与实现

文章目录 摘 要&#xff1a;关键词&#xff1a;ZigBee 、语音识别、智能家居、传感器 0.引言1.概述2&#xff0e;系统总体设计2.1系统组成2、系统使用流程3、开发环境 2.2系统传感器构成2.3系统数据库设计 3&#xff0e;系统详细设计与实现4&#xff0e;系统测试结果5&#xff…

CC2530单片机精确延时的时间分析

CC2530单片机精确延时的时间分析 IAR 仿真时如何得知运行周期for循环的时间计算使用反汇编工具计算延时时间验证讨论CC2530与普通8051单片机时钟的不同 IAR 仿真时如何得知运行周期 关于这个问题&#xff0c;网上有很多好文章&#xff0c;讲得很清楚。IAR的操作很简单&#xf…

嵌入式cc2530单片机ZigBee-流水灯的实验

嵌入式cc2530单片机ZigBee 单片机是一种集成电路芯片&#xff0c;包含中央处理器CPU、随机存储器RAM、只读存储器ROM、输入输出I/O接口、中断控制系统、定时/计数器和通信等多种功能部件 其针脚定义如下&#xff1a; 1.0 --P0、P1各8个针脚&#xff08;1字节8位&#xff0c;…

快速学会CC2530单片机基础点灯

使用的软件是IAR 使用的板是经常提到的小黑板 上面四个灯分别是 D3 ---> P1_0 D4 ---> P1_1 D5 ---> P1_3 D6 ---> P1_4 #include <ioCC2530.h>//引用CC2530头文件 #define D3 P1_0 #define D4 P1_1 #define D5 P1_3 #define D6 P1_4//为了方便使用&…

CC2530单片机开发--串口

题目 源码下载链接https://download.csdn.net/download/czx20020728/85975522?spm1001.2014.3001.5503

【CC2530入门教程-06】CC2530的ADC工作原理与应用

【CC2530入门教程-06】CC2530的ADC工作原理与应用 【CC2530入门教程-05】CC2530的串行接口原理与应用 【CC2530入门教程-04】CC2530的定时/计数器原理与应用 【CC2530入门教程-03】CC2530的中断系统及外部中断应用 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制…

【CC2530入门教程-01】CC2530微控制器开发入门基础

【CC2530入门教程-06】CC2530的ADC工作原理与应用 【CC2530入门教程-05】CC2530的串行接口原理与应用 【CC2530入门教程-04】CC2530的定时/计数器原理与应用 【CC2530入门教程-03】CC2530的中断系统及外部中断应用 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制…

CC2530概述(简单了解)

CC2530概述简单版 CC2530是由TI公司生产&#xff08;德州仪器&#xff09;用于 2.4Ghz IEEE 802.15.4、ZigBee 和RF4CE 的片上系统&#xff08;SOC&#xff09;&#xff0c;经济实惠功耗低。 CC2530F256 结合了ZigBee 协议栈&#xff08;Z-Stack&#xff09;。 什么是片上系统…

单片机CC2530学习笔记

文章目录&#xff1a; 一&#xff1a;与或操作 二&#xff1a;CC2530的通用 IO及相关寄存器 1.与通用I/O端口相关常用的4个寄存器 2.PxSEL寄存器与PxDIR寄存器 3.P0INP寄存器与P1INP寄存器与P2INP 三&#xff1a;按键的工作原理与程序设计思路 四&#xff1a;CC2530的中…

c语言长空格的代码是什么,c语言中表示空格的是什么代码?

分析如下&#xff1a; 不是所有字符都需要转义的&#xff0c;空格直接就敲空格&#xff0c;或者使用ASCII码值赋值为32。 空格没有转义字符。合法转义字符如下&#xff1a; \a 响铃(BEL) 、\b 退格(BS)、\f 换页(FF)、\n 换行(LF)、\r 回车(CR)、\t 水平制表(HT)、\v 垂直制表(…

读入带空格的字符串 C语言

如何输出带空格的字符串 C语言默认是遇到空格&#xff0c;即代表输入的字符串的结束处 那么该如何读入带空格的字符串呢&#xff1f; scanf("%[^\n]", buf); //回车结束 这样的话就可以读入空格啦 表达式的意思为遇到’\n’才读取结束 请看演示代码 #include <…

C语言去除一段字符串中的空格

函数说明 将字符串中的所有空格都去掉。该函数简单但实用性强&#xff0c;可以作为字符串过滤器使用&#xff0c;随便改一下就可以实现去掉任意字符的功能&#xff0c;建议程序员的代码库里可以收藏一段该类型代码&#xff0c;用取方便。 函数实现 #include <stdio.h>…

C语言删除字符串中的空格

实现思路&#xff1a;分别定义2个指针&#xff0c;一个快指针s1, 一个慢指针s2,s1负责快速移动&#xff0c;遍历我们的的字符串&#xff0c;遇到空格就跳过&#xff0c;不是空格&#xff0c;就赋值给我们的s2,我们s2再往后移动&#xff0c;这样就把空格挤掉了。 最后别忘记s2 …