QQPlot图的结构

Python017

QQPlot图的结构,第1张

(1)若是检验一组数据是否来自某个分布,分布函数为F(x),通常图的纵坐标为排好序的实际数据(次序统计量:x(1)<x(2)<....<x(n)),可以称之为经验分位点。横坐标为这些数据的理论分位点,所谓理论分位点是这样得到的,先算出各个排好序的数据对应的百分比p(i),即第i个数据x(i)为p(i)分位数,其中p(i)=(i-0.5)/n,这里p(i)有很多种算法,有的定义为i/(n+1)等等,则x(i)对应的理论分位点为F^(-1)(p(i))=F^(-1)((i-0.5)/n),这也就是纵坐标的值。其中为什么不把p(i)定义为i/n呢?有解释说,若这样定义,则最大的那个数对应的p(n)=1,这样很多分布函数的F^(-1)=infinity,这样无法在坐标上表示出来,所以稍作修改。QQ图的横纵坐标定义好后,则可在图上做出散点图来,然后再在图上添加一条直线,这条直线就是用于做参考的,看散点是否落在这条线的附近。直线由四分之一分位点和四分之三分位点这两点确定的,四分之一分位点的坐标中横坐标为实际数据的四分之一分位点(quantile(data,0.25)),纵坐标为理论分布的四分之一分位点(qF(0.25)),四分之三分位点类似,这两点就刚好确定了QQ图中的直线。

(2)若是检验两组数据是否来自同一个分布函数F(x),则直接将两组数据的各自的理论分位点当作横纵坐标,然后看是否在一条直线的附近。此种方法对于两组数据数量不一致的时候,需要用插值法,将数据少的那组数据通过插值的方法补齐。在R中qqplot就在进行这件事情。或者将两个QQ图放在一起,将两组数据用不同的颜色标识,看两组数据是否离得很近。

首先将上述两个数据表读入R中,并合并在一起。

t检验的一个重要前提就是数据必须符合正态分布模型。因此在执行t检验之前必须验证数据分布的正态性。若数据不符合正态分布,则t检验将无法适用于该数据(此时可以考虑转化数据,或者使用非参数的检验方法)。验证数据是否符合正态分布的方法很多,以下展示两种常见方法。

以下使用car包中的qqPlot(),绘制QQ图查看数值分布。结果中,横坐标是标准的正态分布值,纵坐标是我们数据的值。如果两者基本相等,或者说所有的点都离直线很近,落在置信区间内(图中虚线部分,默认展示95%置信区间),即表明正态性假设符合得很好。

Shapiro-Wilk类似于线性回归的方法,是检验其于回归曲线的残差,据此验证数据分布的正态性。R中提供了可用于执行Shapiro-Wilk检验的函数shapiro.test(),原假设(或称零假设)为数据集符合正态分布,若结果中p值大于0.05,则接受原假设,数据分布符合正态性。

综上,我们的数据分布通过了正态假设检验,即可执行t检验。可分为独立样本的t检验与非独立样本的t检验。

如果样本间是相互独立的,可选用独立样本t检验。R语言t检验函数t.test()中默认两组间相互独立(默认参数paired = FALSE),执行独立样本的t检验。同时需注意,在R中的t检验默认假定方差不相等(默认参数var.equal = FALSE),并使用Welsh的修正自由度;可以通过参数“var.equal = TRUE”假定方差相等,并使用合并方差估计。此外,t.test()默认的备择假设是双侧的(默认参数alternative = 'two.sided'),即执行双侧检验;可分别使用“alternative = 'less'”或“alternative = 'greater'”执行单侧t检验。

我们执行了一个假设方差不相等的双侧检验,如下示例。

如果样本间并非相互独立的,可选用非独立样本t检验。例如,非独立组设计(dependent groups design),前-后测设计(per-post design),或重复测量设计(repeated measures design)等。

此时在t.test()中设定参数“paired = TRUE”即可执行非独立样本的t检验,如下示例,同样为假设方差不相等的双侧检验。

r语言让横坐标显示日期:使用低级绘图命令,如points(x,y)、lines(x,y)、text(x,y)等比如利用plot(2,3)做了个点图,再用points(1,2),则在(1,2)加了个点,变成2个点在一张图上。

首先你把横轴纵轴要打的东西分别放在2个向量month和salesmonth<-paste(5,1:31,sep="/")sales<-sample(100,31) #我随机从1到100里抽31个数然后你把plot(1:31,sales,xaxt="n",xlab="Each day")打出来 xaxt="n"就是先不显示x的刻度。

安装包:

1、通过选择菜单:程序包->安装程序包->在弹出的对话框中,选择你要安装的包,然后确定。

2、使用命令install.packages("package_name","dir")package_name:是指定要安装的包名,请注意大小写。

dir:包安装的路径。默认情况下是安装在..\library 文件夹中的。可以通过本参数来进行修改,来选择安装的文件夹。