Files
team-learning-program/RLanguage/Task03_Statistics.rmd
Yangzhuoran Yang dc97b19112 update book
2021-08-08 09:26:20 +08:00

151 lines
4.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 基本统计分析 {#task-03}
![](./image/task03_structure.png){width=100%}
## 准备工作 {-}
如果没有相关的包,则使用`install.packages('package_name')`进行安装以下包。
```{r}
library(pastecs)
library(psych)
library(ggm)
```
读取数据使用H1N1流感数据集和波士顿房价数据集。
```{r}
flu <- read.table("./datasets/h1n1_flu.csv", header = TRUE, sep = ",")
housing <- read.csv("./datasets/BostonHousing.csv", header = TRUE)
```
## 多种方法获取描述性统计量
### 基础方法
通过summary计算数值型变量的最大值、最小值、分位数以及均值类别变量计算频数统计。
```{r}
summary(flu[c("household_children", "sex")])
```
```{r}
summary(flu[c("h1n1_concern", "h1n1_knowledge")])
```
通过 sapply() 计算描述性统计量,先定义统计函数,在进行聚合计算。
```{r}
mystats <- function(x, na.omit = FALSE) {
if (na.omit) {
x <- x[!is.na(x)]
}
m <- mean(x)
n <- length(x)
s <- sd(x)
skew <- sum((x - m)^3 / s^3) / n
kurt <- sum((x - m)^4 / s^4) / n - 3
return(c(n = n, mean = m, stdev = s, skew = skew, kurtosis = kurt))
}
sapply(flu[c("h1n1_concern", "h1n1_knowledge")], mystats)
```
### 拓展包方法
通过pastecs包中的 stat.desc()函数计算描述性统计量可以得到中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。
```{r}
stat.desc(flu[c("household_children", "sex")])
```
通过psych包中的describe()计算描述性统计量。
```{r}
describe(flu[c("household_children", "sex")])
```
## 分组计算描述性统计
### 基础方法
#### 使用aggregate()分组获取描述性统计 {-}
1. 分组计算不同性别收入贫困计数。
2. 是否属于查尔斯河的房价中位数平均值。
```{r}
aggregate(flu[c("income_poverty")], by = list(sex = flu$sex), length)
aggregate(housing$medv, by = list(medv = housing$chas), FUN = mean)
```
#### 使用 by() 分组计算描述性统计量 {-}
```{r}
by(flu[c("income_poverty", "sex")], flu$sex, length)
```
## 频数表和列联表
```{r}
table(flu$sex)
```
## 相关
### 相关的类型
#### Pearson、Spearman和Kendall相关 {-}
R可以计算多种相关系数包括Pearson相关系数、Spearman相关系数、Kendall相关系数、偏相关系数、多分格polychoric相关系数和多系列polyserial相关系数。
1. 计算房价数据的相关系数默认是Pearson相关系数。
```{r}
cor(housing)
```
2. 指定计算Spearman相关系数
```{r}
cor(housing, method = "spearman")
```
3. 城镇人均犯罪率与房价的相关系数
```{r}
x <- housing
y <- housing[c("medv")]
cor(x, y)
```
#### 偏相关 {-}
偏相关是指在控制一个或多个定量变量时另外两个定量变量之间的相互关系。使用ggm 包中的 pcor() 函数计算偏相关系数。
### 相关性的显著性检验
```{r}
cor.test(housing[, c("crim")], housing[, c("medv")])
```
## 方差分析
方差分析ANOVA又称“变异数分析”或“F检验”用于两个及两个以上样本均数差别的显著性检验。
### 单因素方差分析
从输出结果的F检验值来看p<0.05比较显著,说明是否在查尔斯河对房价有影响。
```{r}
fit <- aov(housing$medv ~ housing$chas)
summary(fit)
```
### 多因素方差分析
构建多因素方差分析,查看因子对房价的影响是否显著。
```{r}
fit <- aov(housing$medv ~ housing$crim * housing$b)
summary(fit)
```
## 本章作者 {-}
__杨佳达__
> 数据挖掘师Datawhale成员目前在国内某第三方数据服务公司做数据分析挖掘及数据产品
> https://github.com/yangjiada
## 关于Datawhale {-}
Datawhale 是一个专注于数据科学与AI领域的开源组织汇集了众多领域院校和知名企业的优秀学习者聚合了一群有开源精神和探索精神的团队成员。Datawhale 以“for the learner和学习者一起成长”为愿景鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时 Datawhale 用开源的理念去探索开源内容、开源学习和开源方案,赋能人才培养,助力人才成长,建立起人与人,人与知识,人与企业和人与未来的联结。 本次数据挖掘路径学习,专题知识将在天池分享,详情可关注 Datawhale
```{r, echo = FALSE}
insert_logo()
```