统计学基础与R语言----1(简介与一些R函数介绍)

最近在看一些机器学习的书,想起自己以前学的R和统计学,感觉以前都是囫囵吞枣,没有搞清楚。现在重新把以前的书拿出来读一读,并把代码再敲一遍,感觉收获还是蛮多的。

1.1 我的参考书籍

R语言学习书籍:数据挖掘与R语言

统计学:R语言与统计分析

1.2 编程环境

win10 + R-64位  + RStudio

1.3 R的简介与入门

R是一种解释性语言,而不是编译语言,R里面有丰富的函数与包(类似python中的模块)。

R中所有的函数后都带有圆括号以区别于对象(object). 当R运行时,所有变量、数据、函数及结果都以对象的形式存入计算机的活    动内存中,并冠有相应的名字代号. 我们可以通过一些运算(如算术、逻辑、比较等)和一些函数(其本   身也是对象)来对这些对象进 行操作。

如:

n <- 10
#列出内存中的
ls()
#删除原有内存中的
rm(list <- ls())
#列出系统给R的内存限制
memory.limit()
#列出系统当前占用的内存
memory.size(F)
#列出当前系统分配的内存(动态调整的)
memory.size(T)
#R中的帮助文档
# ? 获得memory.limit的相关信息
# 注意函数名要加双引号当做参数使用
?memory.limit
help('ls')
example("mean")
help("help")
#apropos 获得所有名字中含有指定字符串“fun”的函数,但只会在被载入
# 内存中的程序包中进行搜索.
apropos("fun")
#获取ls函数的参数
args('ls')

1.4加载数据并进行简单的统计分析

?mtcars
#控制台显示mtcars数据
mtcars
#显示mtcars 数据前七条数据
head(mtcars)
#显示mycars的 变量
names(mtcars)
#修改mtcars中的数据 data.entry 或者直接edit()/fix()
#命令data.entry( )和edit( )都可用于编辑向量、矩阵、数据
#框和列表,前者启用的都是R的数据编辑器, 后者有所不同: 对于向量、
#列表和数组edit( )启用的是R Editor.
data.entry(mtcars)
edit(mtcars)
mtcars
#mtcars
fix(mtcars)
MTcars <- edit(mtcars)
MTcars

mtcars
mtcars$cyl

data.entry(mtcars)
mtcars$cyl
# 粘贴数据到R搜索区 不然只能使用mtcars$cyl访问
attach(mtcars)
cyl
#变量cyl取3个值:4,6,8,相应的频数为11, 7, 14
table(cyl)
#cyl的频数直方图 barplot 仅适用于数值变量
barplot(table(cyl),xlab = '汽缸数')

#画茎叶图(stem-and-leaf plot),
stem(mpg)
#画直方图
hist(mpg)
#画箱体图
boxplot(mpg)
#计算均值
mean(mpg)
#计算截去10%的平均值
mean(mpg,trim = 0.1)
#按分组变量cyl计算mpg的分组平均值
tapply(mpg,cyl,sum)
?tapply
#四分位数的极差(interquartile range)
IQR(mpg)
#样本常用的分位数: 极小、极大、中位数及两个四分位数
quantile(mpg)
#得到给定概率的样本分位数
probs = c(0.1,0.5,99.5)/100
quantile(mpg,probs = probs)
?quantile
probs = c(25,50,75)/100
quantile(mpg,probs = probs)
#计算常用的描述性统计量, 它们分别是最小值(Min.)、第一四分位数(1st
#Qu.)、中位数(Median)、平均值(Mean)、第三分位数(3rd Qu.)和最大
#值(Max.)
summary(mpg)
#计算标准差
sd(mpg)
#计算中位绝对离差(median absolute deviation)
#
mad(mpg)

#寻找二元关系
?legend
#按照cyl分组 画出散点图
plot(mpg~hp,col = 'blue' ,pch=cyl)
#添加图例(x,y) 表示位置  pch散点图中点的symbol
legend(230,20,pch=c(4,6,8),
       legend=c("4 cylinders","6 cylinders","8 cylinders"))
model <- lm(mpg~hp)
abline(model,lty=3)
#残差分析
res = resid(model)
plot(res)
hist(res)
qqnorm(res)
#分析拟合结果
# 一些统计名词:
# 相关系数:自变量X和因变量Y的协方差/标准差的乘积。
#   协方差:两个变量变化是同方向的还是异方向的。X高Y也高,协方差就是正,相反,则是负。
#   为什么要除标准差:标准化。即消除了X和Y自身变化的影响,只讨论两者之间关系。
#   因此,相关系数是一种特殊的协方差。
# cor(mpg,hp)
# R平方:R2=SSR/SST=1-SSE/SST
#   SST (total sum of squares):总平方和
#   SSR (regression sum of squares):回归平方和
#   SSE (error sum of squares) :残差平方和。
#   残差(residual):实际值与观察值之间的差异
# 标准差:表示个体间变异大小的指标,反映了整个样本对样本平均数的离散程度,
#         是数据精密度的衡量指标
#   sd(mpg)
# 标准误:在抽样试验(或重复的等精度测量) 中, 常用到样本平均数的标准差,
#         亦称样本平均数的标准误或简称标准误( standard error of mean) 。
#         因为样本标准差s 不能直接反映样本平均数x 与总体平均数μ究竟误差多少,
#         所以, 平均数的误差实质上是样本平均数与总体平均数之间的相对误。
#         反映样本平均数对总体平均数的变异程度,从而反映抽样误差的大小 ,
#         是量度结果精密度的指标

#参考别人写的类似于qqnorm 
my.qqnorm <- function(x){
  op <- par(mfrow = c(1, 1))
  n <- seq(1, length(x))
  qqnorm(x)
  xais <- qnorm((n -0.5)/ length(x))
  # xais <- qnorm((n - (.5*length(x)) /length(x))/ length(x))
  cbind(xais, x)
  par(mfrow = c(2, 1))
  qqnorm(x)
  plot(sort(x) ~ xais, main = 'my qqnorm')
  par(op)
}
x <- rnorm(30, mean = 20, s = 50)
my.qqnorm(x)

detach(mtcars)

1.5笔记

1.qqplot & qqnorm & qqline Quantile-Quantile Plot
  QQplot的横坐标是theoretical quantilies,纵坐标是sample quantilies
  sample quantilies是你的样本原始的数据(sort之后的),theoretical quantilies  参考(http://onlinestatbook.com/2/advanced_graphs/q-q_plots.html)计算。
  解释:
  假设你有100个数据,那么每个数据都看做一个分位点,sample quantilies就是100个数据本身(1%的分为点就是100个数中最小的那个数,2%的分为点就是100个数中   第二小的那个数,依次类推),theoretical quantilies是什么呢?他是标准正态   分布的分位数100个数取哪些分为点呢?具体的计算方法是这样的,(1:100-0.5)/100 你可以得到0.005 0.015 0.025 ...0.995,然后分别计算在0.005 0.015 0.025 ...0.995的面积下,标准正态分布的分位数。
  
2.一些统计名词
# 相关系数:自变量X和因变量Y的协方差/标准差的乘积。
#   协方差:两个变量变化是同方向的还是异方向的。X高Y也高,协方差就是正,相反,则是负。
#   为什么要除标准差:标准化。即消除了X和Y自身变化的影响,只讨论两者之间关系。
#   因此,相关系数是一种特殊的协方差。
# cor(mpg,hp)
# R平方:R2=SSR/SST=1-SSE/SST
#   SST (total sum of squares):总平方和
#   SSR (regression sum of squares):回归平方和
#   SSE (error sum of squares) :残差平方和。
#   残差(residual):实际值与观察值之间的差异
# 标准差:表示个体间变异大小的指标,反映了整个样本对样本平均数的离散程度,
#         是数据精密度的衡量指标
#   sd(mpg)
# 标准误:在抽样试验(或重复的等精度测量) 中, 常用到样本平均数的标准差,
#         亦称样本平均数的标准误或简称标准误( standard error of mean) 。
#         因为样本标准差s 不能直接反映样本平均数x 与总体平均数μ究竟误差多少,
#         所以, 平均数的误差实质上是样本平均数与总体平均数之间的相对误。
#         反映样本平均数对总体平均数的变异程度,从而反映抽样误差的大小 ,
#         是量度结果精密度的指标

3.理解rbinom中的参数
for (n in c(10,20,50)) {
     x = rbinom(100,n,p)
     hist(x,probability = T,main = paste("n = ",n))
     xvals = 0: n
     points(xvals,dbinom(xvals,n,p),type = 'h',lwd = 3)
 }
 rbinom(100,10,0.5)
 随机进行100次分布为(10,0.5)的二项式分布
 dbinom(1,10,0.5)
 成功进行一次在分布为(10,0.5)的概率
 pbinom(1,10,0.5) = dbinom(0,10,0.5)+dbinom(1,10,0.5)
 根据次数得到小于等于该次数的概率值
 qbinom(0.01,10,0.5)
 根据概率得到分位线
 dnorm gives the density, pnorm gives the distribution function,    qnorm gives the quantile function, and rnorm generates    random      deviates

猜你喜欢

转载自blog.csdn.net/u010074463/article/details/81677004