R语言|数据预处理--4变量分析及相关性

本文探讨了如何分析数据集中变量间的相关性,包括数值型和分类变量与目标变量的相关性评估方法。通过实例展示了使用R语言进行相关系数计算、卡方检验及变量分布可视化的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因变量与自变量之间的关系包括两种:自变量为数值类型和分类类型

请参考R项目客户回复预测与效益最大化

 

1、分别查看数据的属性为数值型和因子类型的属性

which(sapply(cup98, is.numeric))

> idx.num

 ODATEDW     DOB  CLUSTER      AGE NUMCHLD   INCOME  WEALTH1     HIT

       1       6       10       11      17       18       20      21

。。。

 

>which(sapply(cup98, is.factor))

  OSOURCE    STATE       ZIP  PVASTATE RECINHSE    MDMAUD    DOMAIN

        2         3         4         5         7         8         9

       64       65        67

。。。

 

2、求数值/分类变量与因变量的相关性:

1)、查看因变量与其他数值型变量之间的相关系数:

> correlation <- cor(cup98$TARGET_D, cup98[, idx.num], use="pairwise.complete.obs")    use为对存在缺失值计算相关系数的方法,即使在数据中存在缺失值,相关系数的计算结果也不可能为NA

> correlation<-abs(correlation)

> correlation<- correlation[, order(correlation, decreasing=T)]

> correlation

    TARGET_D    TARGET_B     LASTGIFT     RAMNTALL      AVGGIFT

1.00000000000.7742323755 0.0616784458 0.0448101061 0.0442990841

    MAXRAMNT       INCOME     CLUSTER2     NUMPRM12      WEALTH1

0.03922375090.0320627023 0.0290870830 0.0251337775 0.0248673117

    MINRAMNT    LASTDATE      NUMPROM      CLUSTER     CARDPM12

0.02015786860.0188471021 0.0173371740 0.0171274879 0.0163577542

     NUMCHLD    CONTROLN     CARDPROM     FISTDATE      ODATEDW

0.01492048990.0133664439 0.0113023931 0.0075324932 0.0069484311

         HIT    CARDGIFT     NGIFTALL     MAXADATE      TIMELAG

0.00664837280.0064498822 0.0048990126 0.0044963520 0.0036115917

         DOB    HPHONE_D          AGE       RFA_2F

0.00275414720.0024315898 0.0022823598 0.0009047682

 

查看任意两个数值型变量之间的相关系数,并绘制散布图:

> cor(cup98[,idx.num])

> pairs(cup98)

 

绘制数值变量的散布图,并基于目标变量设置点的颜色:

使用函数jitter()添加少量的噪声数据,在存在大量重叠时间点的情况这种设置很有用

> color <-ifelse(cup98$TARGET_D > 0, "blue", "black")

> pch <-ifelse(cup98$TARGET > 0, "+", ".")

>plot(jitter(cup98$AGE), jitter(cup98$HIT), pch=pch, col=color, cex=0.7,ylim=c(0, 70), xlab="AGE", ylab="HIT")

>legend("topleft", c("TARGET_D>0","TARGET_D=0"), col=c("blue", "black"),pch=c("+", "."))

 

2)、对于分类变量,使用卡方检验查看自变量与因变量之间的关系:

> myChisqTest<- function(x) {

+  t1 <- table(cup98pos[,x], cup98pos$TARGET_D2)

+  plot(t1, main=x, las=1)

+  print(x)

+  print(chisq.test(t1))

+ }

>myChisqTest("GENDER")

[1]"GENDER"

        Pearson's Chi-squared test

data:  t1

X-squared = NaN, df= 42, p-value = NA

卡方值越大,说明相关性越小

 

对所有的分类变量求与因变量的卡方值:

> idx.cat <-which(sapply(cup98pos, is.factor))

>sapply(names(idx.cat), myChisqTest)

 

3、数据集接 《3缺失值离群点处理》中2

变量分析

#1)单变量分析

#简单地看下部分变量的分布,比如对于age变量,如下图:

ggplot(traindata,aes(x = x2, y = ..density..)) + geom_histogram(fill = "blue", colour= "grey60", size = 0.2, alpha = 0.2) + geom_density()

 

#可以看到年龄变量大致呈正态分布,符合统计分析的假设。再比如月收入变量,也可以做图观察观察,如下:

ggplot(traindata,aes(x = x5, y = ..density..)) + geom_histogram(fill = "blue", colour= "grey60", size = 0.2, alpha = 0.2) + geom_density() + xlim(1,20000)

#月收入也大致呈正态分布,符合统计分析的需要。

 

#2)变量之间的相关性:建模之前首先得检验变量之间的相关性,如果变量之间相关性显著,会影响模型的预测效果。下面通过corrplot函数,画出各变量之间,包括响应变量与自变量的相关性。

cor1 <-cor(traindata[, 1:11])

library(corrplot)

corrplot(cor1)

corrplot(cor1,method="number")

#由上图可以看出,各变量之间的相关性是非常小的。其实Logistic回归同样需要检验多重共线性问题,不过此处由于各变量之间的相关性较小,可以初步判断不存在多重共线性问题,当然我们在建模后还可以用VIF(方差膨胀因子)来检验多重共线性问题。如果存在多重共线性,即有可能存在两个变量高度相关,需要降维或剔除处理。

### 基于时域分析的温度和压力监测流程框图 为了清晰地展示温度和压力监测的完整时域分析过程,可以按照以下步骤设计一个流程框图: #### 数据采集阶段 在这一阶段,传感器负责实时获取环境中的温度和压力数据。通常会采用高精度的数据采集设备来记录这些物理量随时间变化的情况。 ```plaintext 【数据采集】 - 温度传感器读取温度值 - 压力传感器读取压力值 - 将模拟信号转换为数字信号 (A/D 转换)[^1] ``` #### 预处理阶段 由于实际采集到的数据可能受到噪声干扰或其他因素影响,因此需要对其进行预处理操作以提高后续分析的质量。 ```plaintext 【数据预处理- 使用低通滤波器去除高频噪声[^2] - 对齐不同步采样的数据- 平滑处理减少随机波动的影响 ``` #### 特征提取阶段 此部分旨在从经过清理后的时序数据集中挖掘有意义的信息或指标作为进一步分类的基础依据之一。 ```plaintext 【特征提取】 - 计算均值、方差等统计特性参数 - 提取峰值位置及其对应的时间戳信息 - 应用小波变换分解得到多个尺度下的细节成分[^3] ``` #### 趋势模式识别阶段 利用机器学习算法或者传统方法建立预测模型,用于发现隐藏规律并判断未来走向可能性大小。 ```plaintext 【趋势模式识别】 - 构建回归模型拟合历史轨迹线 - 运用聚类技术划分相似行为群组 - 实施关联规则挖掘揭示因果关系链路[^4] ``` #### 异常检测阶段 当某些观测结果偏离正常范围之外,则视为潜在风险预警信号需及时响应处置措施以防患未然。 ```plaintext 【异常检测】 - 定义阈值界限区分常规状态与突发事件 - 统计检验评估样本分布概率密度差异程度 - 动态更新基线适应外部条件改变带来的冲击调整 ``` #### 可视化输出阶段 最后一步就是把整个过程中产生的各类中间产物汇总起来形成易于理解的形式呈现给最终使用者查看参考决策制定方向。 ```plaintext 【可视化输出】 - 制作折线图表显示变量动态演变历程 - 插入热力地图标注热点区域密集程度状况 - 添加交互功能支持用户自定义查询需求满足个性化偏好设置 ``` 以下是完整的流程框图示意代码: ```mermaid graph TD; A[数据采集] --> B{数据预处理}; B --> C[特征提取]; C --> D[趋势模式识别]; D --> E[异常检测]; E --> F[可视化输出]; subgraph 数据准备 A B end subgraph 分析模块 C D E end subgraph 结果展现 F end ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值