五数概括

1
2
3
4
5
6
7
8
9
10
11
12
13
14
summary(data$A)# 五数

mean(data$A) # 均值

median(data$A) #中位数

var(data$A) # 方差

# 众数没有标准内置
getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}
mode <- getmode(mtcars$drat)

ggplot绘图

几何对象

geom_bar: 柱状图,饼图

geom_boxplot: 箱型图

geom_histogram: 直方图

geom_freqpoly: 频线图

geom_density: 密度函数平滑估计图

geom_point: 散点图

geom_path/geom_line: 线图(数据出现顺序/横坐标大小)

geom_smooth: 平滑曲线拟合图

geom_contour:  等高线

分面

按类别变量的值分组,将绘图窗口划分成若干个子窗口,绘制没一个状态下的图

facet_wrap(变量),facet_wrap(变量1变量2)

facet_wrap(~变量,nrow=行数, ncol=列数)

基本语法

1
2
3
4
5
# ggplot(data, aes(x=variable,y=variable, size/fill/color=variable))
# + geom_bar/histogram/…(color=, size=, fill=, shape=)
# + facet_warp(~变量,ncol=,nrow=) +labs(x=,y=,title=)

ggplot(data = table,aes(x = 身高,y = 体重))+geom_point()

假设检验

点估计:求解方程

  1. install.packages(‘rootSolve’) # 安装rootSolve程序包
  2. library(rootSolve) # 载⼊包
  3. 用rootSolve包中的函数multiroot()求解方程组;

例(均匀分布参数的矩估计):X 服从[θ1, θ2]的均匀分布,现有10个样本:4, 5, 2, 9, 5, 1, 6, 4, 6, 2,估计参数θ1、θ2;

1
2
3
4
5
6
7
8
install.packages('rootSolve’); library(rootSolve);
x=c(4, 5, 2, 9, 5, 1, 6, 4, 6, 2);
mu=mean(x);
var=sum((x-mean(x))^2)/10;
model = function(theta, mu, var){
    c(F1 = theta[1] + theta[2] - 2 * mu, F2= (theta[2] - theta[1]) ^ 2 / 12 - var)
}
multiroot (f=model, start=c(0,10), mu=mu, var=var)

假设检验

正态总体均值的假设检验:

  • 方差已知:z.test();

  • 方差未知:t.test();

  • 正态总体方差假设检验:var.test();

➢ 例(单个正态总体方差未知):t.test(x, alternative = “less”, mu=103.5, sigma.x = Null, conf.level=0.95)

参数解释如下:
• alternative用于指定备择假设的形式,默认为双边假设检验, less表示左边假设检验,greater表示右边假设检验;
• mu表示均值,默认为0;
• sigma.x指定样本标准差;
• conf.level指定的1-𝛼,默认为1-0.05;