R语言之书笔记:常见的概率分布

Python011

R语言之书笔记:常见的概率分布,第1张

两种可能结果的离散随机变量概率分布 ,失败是0,成功是1,p是成功的概率

dbinorm() :提供任何有效x的概率质量函数

pbinom() :提供累积概率分布,求结果成功q次及q次以下的累积概率,给定分位数值q,输出累积概率p

qbinom() :累积概率分布的逆( pbinom() 的逆),给定累积概率p,输出分位数值q

rbinom() :产生n个服从二项分布的随机数

3. dpois() , ppois() , qpois() , rpois()

dt() , pt() , qt() , rt()

r语言中qt函数是分位数函数的自由度

r提供工具来计算累计分布函数p(cummulative distribution function CDF),概率密度函数d和分位数函数q,另外在各种概率分布前加r表示产生随机序列。

R语言的特点

R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:

1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。

2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如SPSS、SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。

ks.test()实现了KS检验,可以检验任意样本是不是来自给定的连续分布。你这里的用法就是:ks.test(data,pt,df=df) #data是样本的数据,df是要检验的t分布的自由度我们可以用很多方法分析一个单变量数据集的分布。最简单的办法就是直接看数字。利用函数summary 和fivenum 会得到两个稍稍有点差异的汇总信息。此外,stem(\茎叶"图)也会反映整个数据集的数字信息。>attach(faithful)>summary(eruptions)Min. 1st Qu. Median Mean 3rd Qu. Max.1.600 2.163 4.000 3.488 4.454 5.100>fivenum(eruptions)[1] 1.6000 2.1585 4.0000 4.4585 5.1000>stem(eruptions)The decimal point is 1 digit(s) to the left of the |16 | 07035555558818 | 00002223333333557777777788882233577788820 | 0000222337880003577822 | 000233557802357824 | 0022826 | 2328 | 08030 | 732 | 233734 | 25007736 | 000082357738 | 233333558222557740 | 000000335778888800223355557777842 | 0333555577880023333355557777844 | 0222233555778000000002333335777888846 | 000023335770000002357848 | 0000002233580033350 | 0370茎叶图和柱状图相似,R 用函数hist 绘制柱状图。>hist(eruptions)>## 让箱距缩小,绘制密度图>hist(eruptions, seq(1.6, 5.2, 0.2), prob=TRUE)>lines(density(eruptions, bw=0.1))>rug(eruptions) # 显示实际的数据点更为精致的密度图是用函数density 绘制的。在这个例子中,我们加了一条由density 产生的曲线。你可以用试错法(trial-and-error)选择带宽bw(bandwidth)因为默认的带宽值让密度曲线过于平滑(这样做常常会让你得到非常有\意思"的密度分布)。(现在已经有一些自动的带宽挑选方法2,在这个例子中bw = "SJ"给出的结果不错。)我们可以用函数ecdf 绘制一个数据集的经验累积分布(empirical cumulativedistribution)函数。>plot(ecdf(eruptions), do.points=FALSE, verticals=TRUE)显然,这个分布和其他标准分布差异很大。那么右边的情况怎么样呢,就是火山爆发3分钟后的状况?我们可以拟合一个正态分布,并且重叠前面得到的经验累积密度分布。>long <- eruptions[eruptions >3]>plot(ecdf(long), do.points=FALSE, verticals=TRUE)>x <- seq(3, 5.4, 0.01)>lines(x, pnorm(x, mean=mean(long), sd=sqrt(var(long))), lty=3)分位比较图(Quantile-quantile (Q-Q) plot)便于我们更细致地研究二者的吻合程度。par(pty="s") # 设置一个方形的图形区域qqnorm(long)qqline(long)上述命令得到的QQ图表明二者还是比较吻合的,但右侧尾部偏离期望的正态分布。我们可以用t 分布获得一些模拟数据以重复上面的过程x <- rt(250, df = 5)qqnorm(x)qqline(x)这里得到的QQ图常常会出现偏离正态期望的长尾区域(如果是随机样本)。我们可以用下面的命令针对特定的分布绘制Q-Q图qqplot(qt(ppoints(250), df = 5), x, xlab = "Q-Q plot for t dsn")qqline(x)最后,我们可能需要一个比较正规的正态性检验方法。R提供了Shapiro-Wilk 检验>shapiro.test(long)Shapiro-Wilk normality testdata: longW = 0.9793, p-value = 0.01052和Kolmogorov-Smirnov 检验>ks.test(long, "pnorm", mean = mean(long), sd = sqrt(var(long)))One-sample Kolmogorov-Smirnov testdata: longD = 0.0661, p-value = 0.4284alternative hypothesis: two.sided(注意一般的统计分布理论(distribution theory)在这里可能无效,因为我们用同样的样本对正态分布的参数进行估计的。)转载于: http://www.biostatistic.net/thread-2413-1-1.html