R语言数据分析系列之四

说到统计分析我们就离不开随机变量,所谓随机变量就是数学家们为了更好的拟合现实世界的数据而建立的数学模型。有了她我们甚至能够来预測一个站点未来几天的日訪问用户,股票的未来走势等等。

那么本节我们来一起探讨下面经常使用的函数分布。以及流程控制语句。

常见分布有:正态分布(高斯分布),指数分布,beta分布,gamma分布等。

正态分布

若随机变量X服从一个数学期望为μ、方差为σ^2的正态分布。记为N(μ。σ^2)。其概率密度函数曲线,由正态分布的期望值μ决定了其位置。其标准差σ决定了分布的幅度。因其曲线呈钟形,因此人们又常常称之为钟形曲线。

我们通常所说的标准正态分布是μ = 0,σ = 1的正态分布。

par(mgp=c(0.6,0.6,0))
x <- seq(-5,5,length.out=100)
y <- dnorm(x,0,1)
plot(x,y,xlim=c(-4,4),col='red',ylim=c(0,0.8),type='l',ylab='density',xlab='x',main="The Normal Density Distribution")
lines(x,dnorm(x,0,2),col="blue")
lines(x,dnorm(x,-2,1),col="orange")
lines(x,dnorm(x,0,0.5),col="green")

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29tYXBsZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

指数分布

很多电子产品的寿命分布一般服从指数分布。

有的系统的寿命分布也可用指数分布来近似。它在可靠性研究中是最经常使用的一种分布形式。产品的失效是偶然失效时。其寿命服从指数分布。

比如已知某原件已经使用了s小时,那么它能在使用t小时的条件概率。与从刚開始使用t小时的概率一样。这就是指数分布的无记忆性,它在可靠性研究中有着广泛的应用。

x<-seq(-1,2,length.out=100)
y<-dexp(x,0.5) plot(x,y,col="red",xlim=c(0,2),ylim=c(0,5),type='l',
xaxs="i", yaxs="i",ylab='density',xlab='x',
main="The Exponential Density Distribution")
lines(x,dexp(x,1),col="green")
lines(x,dexp(x,2),col="blue")
lines(x,dexp(x,5),col="orange")

gamma 伽马分布

伽马函数:

伽玛函数是阶乘在实数上的泛化。

伽马分布的概率密度函数:

x<-seq(0,10,length.out=100)
y<-dgamma(x,1,2) plot(x,y,col="red",xlim=c(0,10),ylim=c(0,2),type='l',
xaxs="i", yaxs="i",ylab='density',xlab='',
main="The Gamma Density Distribution") lines(x,dgamma(x,2,2),col="green")
lines(x,dgamma(x,3,2),col="blue")
lines(x,dgamma(x,5,1),col="orange")
lines(x,dgamma(x,9,1),col="black")

beta 贝塔分布

Beta分布的一个重要应该是作为伯努利分布和二项式分布的共轭先验分布出现。在机器学习和数理统计学中有重要应用。

该分布有两个參数,α,β (α,β>0).

x<-seq(-5,5,length.out=10000)
y<-dbeta(x,0.5,0.5) plot(x,y,col="red",xlim=c(0,1),ylim=c(0,6),type='l',
xaxs="i", yaxs="i",ylab='density',xlab='',
main="The Beta Density Distribution") lines(x,dbeta(x,5,1),col="green")
lines(x,dbeta(x,1,3),col="blue")
lines(x,dbeta(x,2,2),col="orange")
lines(x,dbeta(x,2,5),col="black")
legend("top",legend=paste("a=",c(.5,5,1,2,2),"b=",c(.5,1,3,2,5)),lwd=1,col=c("red","green","blue","orange","black"))

流程控制语句

分支语句

if else:

a < 5
if(a>10){
print('a>10')
} else if(a<10){
print('a<10')
} else{
print('a=10')
}

switch 分支语句:

case <- 4

switch(case,’低异常点’,’偏低’,’正常’,’偏高’,’高异常点’)

偏高

for 循环:

web.pv <- c(sample(100:5000,30))
web.day <-seq(as.Date('2015-01-01'),by=1,length=30)
web.data <- data.frame(web.day,web.pv)
for(item inweb.data$web.pv){print(paste(web.data$web.day[which(web.data$web.pv ==item)],'',item))}

while 循环:

while(i <length(web.pv)){print(web.pv[i]) ;i = i + 1} ;i=0

函数

定义一个函数表达式: y=a*x + b,然后我们还画出函数轨迹图:

demo.fun1 <- function(x,a,b) {
return(a * x + b)
} a=3
b=7
y <- demo.fun1(x,a,b)
df <- data.frame(x,y) g<-ggplot(df,aes(x,y))
g <- g + geom_line(col='red') # 一次方程曲线
g <- g + geom_hline(yintercept=0) +geom_vline(yintercept=0) #设置坐标轴
g <- g + ggtitle(paste('y=',a,' * x+',b)) # 加入标题
g

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29tYXBsZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

定义一个多次方程函数:

demo.fun3 <- function(x,a,b,c,d){
return(a * x^3 + b * x^2 + c * x +d)
} a=1
b=5
c=6
d=-10
x <- seq(-5,5,by=0.01)
y <- demo.fun3(x,a,b,c,d)
df <- data.frame(x,y)
g <- ggplot(df,aes(x,y))
g <- g + geom_line(col='green') #三次曲线
g <- g + geom_hline(yintercept=0) + geom_vline(yintercept=0) #设置坐标轴
g <- g + ggtitle(paste('y=',a,' *x^3 +',b,'*x^2 +',c,'* x +',d)) # 加入标题
g

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29tYXBsZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

R语言数据分析系列之四的更多相关文章

  1. R语言数据分析系列六

    R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集 ...

  2. R语言数据分析系列之五

    R语言数据分析系列之五 -- by comaple.zhang 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi ...

  3. R语言数据分析利器data.table包—数据框结构处理精讲

    R语言数据分析利器data.table包-数据框结构处理精讲 R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代 ...

  4. R学习:《R语言数据分析与挖掘实战》PDF代码

    分三个部分:基础篇.实战篇.提高篇.基础篇介绍了数据挖掘的基本原理,实战篇介绍了一个个真实案例,通过对案例深入浅出的剖析,使读者在不知不觉中通过案例实践获得数据挖掘项目经验,同时快速领悟看似难懂的数据 ...

  5. R语言数据分析

    CSDN博客:包括R语言基础.R语言数据挖掘.hadoop大数据及spark等 http://blog.csdn.net/qq_16365849 R语言及数据分析 http://blog.csdn.n ...

  6. R语言数据分析利器data.table包 —— 数据框结构处理精讲

        R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理 ...

  7. 中部:执具 | R语言数据分析(北京邮电大学)自整理笔记

    第5章工欲善其事.必先利其器 代码,是延伸我们思想最好的工具. 第6章基础编程--用别人的包和函数讲述自己的故事 6.1编程环境 1.R语言的三段论 大前提:计算机语言程序=算法+数据结构 小前提:R ...

  8. 上部:问道 | R语言数据分析(北京邮电大学)自整理笔记

    第1章 气象万千 数以等观 数据分析:发现数据背后的规律 等号的重要性,建立模型 第2章所谓学习.归类而已 2.1所谓学习,归类而已(1) ps:机器学习只是归归类? 有监督学习--分类:无监督学习- ...

  9. R语言入门系列1--数学狗还是做数据好了

    nanana,作为一个不合格的数学专业学生,脑袋不好使,又穷逼,只好学点儿实用的东西,希望能养活自己~~~ 不瞎哔哔,想做数据方面工作的时候在犹豫是学R还是学python,一点儿python基础都没有 ...

随机推荐

  1. 设计模式之组合模式(PHP实现)

    github地址:https://github.com/ZQCard/design_pattern /** 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作 ...

  2. ubuntu配置 测试环境 记录

    1  更新源 进入 /etc/apt/sources.list sudo vim进入, 更改为如下源 # See http://help.ubuntu.com/community/UpgradeNot ...

  3. util.date.js

    ylbtech-JavaScript-util: util.date.js 日期处理工具 1.A,JS-效果图返回顶部   1.B,JS-Source Code(源代码)返回顶部 1.B.1, m.y ...

  4. 文本文件打印类库(C#)

    我写了一个打印文本文件的类库,功能包含:打印预览.打印.打印时能够选择打印机.能够指定页码范围. 调用方法很easy: TextFilePrinter p = new TextFilePrinter( ...

  5. 小tip: base64:URL背景图片与web页面性能优化

    转自:http://www.zhangxinxu.com/wordpress/?p=2341 一.base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP ...

  6. Win7提示1970-01-01 000000 is not a valid data怎么办.

    1 单击屏幕右下角的时间按钮   2 选个更改日期和时间,更改日历设置   3 把短日期改成"yyyy-m-d"   4 确定即可.发现日期的表示形式变了.

  7. python——定时闹钟讲解

    自己写的闹钟, 只可以播放wav格式的音频. import time import sys soundFile = 'sound.wav' not_executed = 1 def soundStar ...

  8. Elasticsearch 2014年10月简报

    1. Elasticsearch Updates 1.1 公布了Kibana 4 Beta 1 和Beta 1.1 Kibana 4不管是在界面的布局,使用配置方法,还是底层绘制图表的方式都与Kiba ...

  9. 【转】Intellij IDEA常用配置详解

    1. IDEA内存优化 先看看你机器本身的配置而配置. \IntelliJ IDEA 8\bin\idea.exe.vmoptions -------------------------------- ...

  10. Ubuntu 下修改 Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

    在Ubuntu上安装Apache,每次重启,都会出现以下错误提示: Could not reliably determine the server’s fully qualified domain n ...