R语言笔记④——数值摘要、缺失值、数据标准化、线性回归、多元线性回归和主成分分析

本文介绍了R语言中数值数据的摘要统计,包括均值、中位数、分位数和标准差等。讨论了NA缺失值的处理方法,如查找、删除和填充。接着讲解了数据标准化的三种方式:最大-最小规范化、z-score规范化和对数Logistic模式。此外,还探讨了线性回归和多元线性回归的原理及其在R中的实现,并通过主成分分析展示了如何进行数据降维。
摘要由CSDN通过智能技术生成

数据摘要

反映集中程度的函数

下面是R中反映中程度的函数

  • mean():均值
  • median():中位数
  • quantile():分位数
> a <- c(1,5,6,9,7,5,6,7,2,6)
> mean(a)
[1] 5.4
> median(a)
[1] 6
> quantile(a)
  0%  25%  50%  75% 100% 
1.00 5.00 6.00 6.75 9.00 

反映数据分散程度的函数

下面是R中反映数据分散程度的函数

  • range():极值
  • var():反差
  • sd():标准差
> a <- c(1,5,6,9,7,5,6,7,2,6)
> range(a)
[1] 1 9
> var(a)
[1] 5.6
> sd(a)
[1] 2.366432

数值摘要表

通过summary()函数我们可以得到一张表,从这张表中我们可以直接得到数据的极值、分位数、中位数、均值。

> summary(a)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    5.00    6.00    5.40    6.75    9.00 

缺失值

NA缺失值

在R语言中NA表示缺失值,也就是不存在的值,或者说未知的值。

任何值与NA计算结果都是NA

> 1+NA
[1] NA
> 1*NA
[1] NA

在如果我们想将NA排除在外,可以将函数中的na.rm属性设置为TRUE

> a <- c(NA,1:49)
> a
 [1] NA  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
[39] 38 39 40 41 42 43 44 45 46 47 48 49
> sum(a)
[1] NA
> mean(a)
[1] NA
> sum(a,na.rm = T)
[1] 1225
> mean(a,na.rm = T)
[1] 25

可以通用is.na函数查找缺失的值

> is.na(a)
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[20] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[39] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

我们可以通过complete.cases()函数找到缺失的值

> a <- matrix(c(1:6,NA,8,9),nrow = 3)
> a
     [,1] [,2] [,3]
[1,]    1    4   NA
[2,]    2    5    8
[3,]    3    6    9
> complete.cases(a)
[1] FALSE  TRUE  TRUE
> b <- c(1,6,NA)
> complete.cases(b)
[1]  TRUE  TRUE FALSE

可以通过下面的方式把缺失的行去除

> a[complete.cases(a)]
[1] 2 3 5 6 8 9
> a[complete.cases(a),]
     [,1] [,2] [,3]
[1,]    2    5    8
[2,]    3    6    9

还可以直接通过na.omit()函数得到去除缺失值后的数据

> na.omit(a)
     [,1] [,2] [,3]
[1,]    2    5    8
[2,]    3    6    9
attr(,"na.action")
[1] 1
attr(,"class")
[1] "omit"

下面是R语言中缺失值的解决方法
在这里插入图片描述

其他缺失值

  1. 缺失数据NaN,代表不可能的值;
  2. Inf表示无穷,分为正无穷Inf和负无穷Inf,代表无穷大或者无穷小。

下面是上面两种缺失值与NA缺失值的区别:

  1. NA是存在的值,但是不知道是多少;
  2. NaN是不存在的;
  3. Inf存在,是无穷大,-Inf是无穷小,表示的是不可能的值。

下面就是典型的NaN和Inf值

> 1/0
[1] Inf
> -1/0
[1] -Inf
> 0/0
[1] NaN

我们可以用is.infiniteis.nan函数判断这两种缺失值

> is.infinite(1/0)
[1] TRUE
> is.nan(0/0)
[1] TRUE

缺失值填充

一般通过如下的步骤实现缺失值的填充:

  1. 计算相关性
  2. 构建回归模型(lm(y~x))
  3. 带入回归模型预测

数据标准化

数据分析时经常需要数据标准化处理,常见的比如:回归、主成分、因子分析等,在神经网络、聚类分析中也会经常用到数据标准化预处理,甚至感觉一切的数据分析好像都需要标准化预处理。

数据标准化的作用主要时消除变量间的量纲关系,从而使数据具有可比性。

最大-最小规范化(线性变换)

y = x − m i n ( x ) m a x ( x ) − m i n ( x ) y=\frac{x-min(x)}{max(x)-min(x)} y=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值