加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何检查数据是否接近常态分布(Normality Test using R)

(2018-05-14 01:20:03)
分类: R基礎

如何检查数据是否接近常态分布 (Normality Test using R)

 

1. 使用时机: 包括相关性,回归,t检验和方差分析(ANOVA)在内的许多统计检定假定数据具有某些特征,例如需要数据为常态分布或接近常态分布。这些检定称为母数分析(parametric tests),因为它们的有效性取决于数据的分布。在使用母数分析之前,我们应该执行一些初步测试以确保数据符合检定的假设前提。如果数据违反假设前提,建议使用无母数分析(non-parametric tests)

 

2. 分析类型: 母数分析(parametric analysis)

 

3. 数据范例: 咪路调查淡水河口弹涂鱼的体长(cm),资料如下:

   14.3, 15.8, 14.6, 16.1, 12.9, 15.1, 17.3, 14.0, 14.5, 13.9, 16.2, 14.3, 14.6, 13.3, 15.5, 11.8, 14.8, 13.5, 16.3, 15.4, 15.5, 13.9, 10.7, 14.8, 12.9, 15.4

 

4. 画图看数据分布:

   第一步: 用小c将数据放入名称为Lenvector (R最基本数据结构)。用rep函数产生与数据相同数目的(26)大写F放入名称为Fishvector,再组合成名称为datdata frame

    Len <- c(14.3, 15.8, 14.6, 16.1, 12.9, 15.1, 17.3, 14.0, 14.5, 13.9, 16.2, 14.3, 14.6, 13.3, 15.5, 11.8, 14.8, 13.5, 16.3, 15.4, 15.5, 13.9, 10.7, 14.8, 12.9, 15.4)

    Fish <- rep("F", 26)

dat <- data.frame(Len, Fish)

   第二步: 安装ggplot2程序套件。

   第三步: 呼叫ggplot2程序套件备用。

    library(ggplot2)

   第四步: 画图。

    ggplot(dat, aes(x = Fish, y = Len)) +

     geom_boxplot(color = "red")+

     geom_jitter(position = position_jitter(0.05))

    # 同时画x-y散布(黑色点)图及盒图(红色box plot)

    # ggplot2程序套件geom_jitter函数让重迭(数值相同)的数据点错开,避免误判。

http://s16/mw690/0078lazCzy7krpRCHaT0f&690Test using R)" TITLE="如何检查数据是否接近常态分布(Normality Test using R)" />

5. 检查数据是否为常态分布方法一,QQ plot:

第一步: 用小c将数据放入名称为Lenvector (R最基本数据结构)

    Len <- c(14.3, 15.8, 14.6, 16.1, 12.9, 15.1, 17.3, 14.0, 14.5, 13.9, 16.2, 14.3, 14.6, 13.3, 15.5, 11.8, 14.8, 13.5, 16.3, 15.4, 15.5, 13.9, 10.7, 14.8, 12.9, 15.4)

   第二步: 安装ggpubr程序套件。

   第三步: 呼叫ggpubr程序套件备用。

    library(ggpubr)

   第四步: 阅读ggpubr程序套件中ggqqplot函数的使用说明。

    help(ggqqplot)

   第五步: 画图。

    ggqqplot(Len)

http://s8/mw690/0078lazCzy7krpTG0PZ57&690Test using R)" TITLE="如何检查数据是否接近常态分布(Normality Test using R)" />

    # 数据点在越QQ plot中越接近直线数据就越接近常态分布。

 

6. 检查数据是否为常态分布方法二:

第一步: 阅读基本模块(base)shapiro.test函数的使用说明。

help(shapiro.test)

第二步: 使用基本模块(base)shapiro.test函数检查Len中数据是否为常态分布。

shapiro.test(Len)

   第三步: 判读结果。

            Shapiro-Wilk normality test

data:  Len

W = 0.97097, p-value = 0.6485

       # p-value > 0.05,数据符合常态分布。

# p-value < 0.05,数据不符合常态分布。

 

来劲了吗? 想知道更多?? 补充资料(链接):

1. Normality (https://en.wikipedia.org/wiki/Normality)

2. Normal distribution (https://en.wikipedia.org/wiki/Normal_distribution)

3. Box plot (https://en.wikipedia.org/wiki/Box_plot)

4. Q Q plot (https://en.wikipedia.org/wiki/Q–Q_plot)

5. Shapiro–Wilk test (https://en.wikipedia.org/wiki/Shapiro–Wilk_test)

6. 关于R基础,R绘图及统计快速入门:

   a. R Tutorial: https://www.tutorialspoint.com/r/index.htm

   b. Cookbook for R: http://www.cookbook-r.com/

   c. Quick-R: https://www.statmethods.net/

   d. Statistical tools for high-throughput data analysis (STHDA): http://www.sthda.com/english/ 

   e. The Handbook of Biological Statistics: http://www.biostathandbook.com/ 

   f. An R Companion for the Handbook of Biological Statistics: http://rcompanion.org/rcompanion/index.html

7. Zar, JH. 2010. Biostatistical Analysis, Fifth Edition, Pearson.

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有