R语言实现单变量分析教程

本文介绍了如何使用R语言进行单变量分析,包括对数值型数据的概要统计、频率分布和图表可视化。以 HouseholdSize 列为例,展示了平均值、中位数、范围、四分位距等统计量,并通过直方图、箱线图和密度曲线图来直观呈现数据分布。这些方法有助于理解数据的中心趋势和离散程度。

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

单变量分析是理解单个变量的数值分布情况,与之相对的有双变量分析和多变量分析。

加载示例数据

因为csv文件中年收入字段有千分位分隔符,所以先定义转换函数。

setClass("num.with.commas")
setAs("character", "num.with.commas", 
        function(from) as.numeric(gsub(",", "", from) ) )

data <- read.csv("csv/data.csv",colClasses=c('numeric','numeric','num.with.commas','numeric'))
data

#    HouseholdID HouseholdSize AnnInCome NumberOfPets
# 1            1             2    37,000            0
# 2            2             4    49,000            0
# 3            3             4    58,000            1
# 4            4             1    68,000            3
# 5            5             3    61,000            2
# 6            6             5    64,000            2
# 7            7             6    79,000            1
# 8            8             4    89,000            1
# 9            9             7   104,000            1
# 10          10             2    95,000            0

我们可以对上面任何一列进行单变量分析,以获得数据分布的更深理解。举例我们选择第二列 HouseholdSize 进行分析,主要包括三类分析:概要统计、频率分布、图表可视化。

概要统计

概要统计是单变量分析中最常用的方法。主要包括两类概要统计:

  • 衡量中心趋势

描述数据集中心的位置,包括平均值和中位数。

mean(data$HouseholdSize)
# 3.8

median(data$HouseholdSize)
# 4
  • 衡量离散趋势

描述数值在数据集中的分布情况,包括范围、四分位范围、标准差和方差。

range_info <- max(data$HouseholdSize) - min(data$HouseholdSize)
range_info
# 6

# 获得最小值 和 最大值 
range(data$HouseholdSize)
# 1 7

# IQR = Q3 – Q1
# 中间50% 数据范围
IQR(data$HouseholdSize)
# 2.5

sd(data$HouseholdSize)
# 1.87

# 最小 Q1 中位数 Q3 最大值
fivenum(data$HouseholdSize)
# 1 2 4 5 7

# 计算分位数
quantile(data$HouseholdSize)

#   0%  25%  50%  75% 100% 
# 1.00 2.25 4.00 4.75 7.00 

summary(data$HouseholdSize)

# Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
# 1.00    2.25    4.00    3.80    4.75    7.00 

频率分布

执行单变量分析的另一种方法是创建频率分布,该分布描述不同值在数据集中出现的频率,通常用于分析因子变量。

table(data$HouseholdSize)

# 1 2 3 4 5 6 7 
# 1 2 1 3 1 1 1 

结果显示2有连个, 4 有三个,其他数有1个。

图表分析

通过图表以可视化方式展示变量的数据分布情况。

常用图形包括:

  • 箱线图

箱线图可以同时展示5个数的概要信息,最小Q1,中位数,Q3,最大值

boxplot(data$HouseholdSize, main="Boxplot of HouseHoldSize")

在这里插入图片描述

  • 直方图

直方图用于垂直条形图展示频率,通常用于显示数据分布。

hist(data$HouseholdSize, main="Hist of HouseHoldSize")

在这里插入图片描述

  • 密度曲线图

密度曲线表示数据集中值分布曲线。可视化方式展示分布形状,是否包括多峰,偏度情况。


holdSize_density <- density(data$HouseholdSize)
plot(holdSize_density, main = "density of hold size")


在这里插入图片描述

  • 饼图

饼图展示每个数值占用的百分比。

pie(data$HouseholdSize, main = "Distribution of HoldSize")

在这里插入图片描述

通过不同图形可视化,可以更方便观测数值的分布情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值