美文网首页
R - 生成数据

R - 生成数据

作者: Waste_Land | 来源:发表于2015-01-17 13:14 被阅读804次

    正态分布函数dnorm()、pnorm()、qnorm()和rnorm()的使用方法:
    密度函数: dnorm(x, mean=0, sd=l, log=FALSE)
    分布函数: pnorm(q, mean=0, sd=l, lower.tail=TRUE, log.p=FALSE)
    计算下分位点: qnorm(p, mean=0, sd=l, lower.tail=TRUE, log.p=FALSE)
    产生随机数: rnorm(n,mean=0,sd=l)

    说明:

    • log.p是逻辑变量,当它为真(TRUE)时,函数的返回值是对数正态分布.
    • lower.tail是逻辑变量,当它为真(TRUE,缺省值)时,分布函数的计算公式为F(z)=P{X≤z},FALSE时,分布函数的计算公式为F(z)=P{X>z}.

    例如:
    > dnorm(2,0,1)
    [1] 0.05399097
    > pnorm(0,0,1)
    [1] 0.5

    其他的分布函数也有类似的用法:

    分布函数或分布律 R中的名称 附加参数
    beta beta shapel, shape2, ncp
    binomial binom size, prob
    Cauchy cauchy location, scale
    chi-squared chisq df, ncp
    exponential exp rate
    F f dfl, df2, ncp
    gamma gamma shape, scale
    geometric geom prob
    hypergeometric hyper m, n, k
    log-normal lnorm meanlog, sdlog
    logistic logis location, scale
    negative binomial nbinom size, prob
    normal norm mean, sd
    Poisson pois lambda
    Student's t t df, ncp
    uniform unif min, max
    Weibull weibull shape, scale
    Wilcoxon wilcox m, n

    不同的前缀表示不同的意义:

        d-概率密度函数或分布律;
        p-分布函数F(x);
        q-分布函数的反函数,即给定概率p后,求其下分位点;
        r-仿真(产生相同分布的随机数)
    

    图像

    直方图hist(x)

    完整的格式是:

        hist(x, breaks = "Sturges", freq = NULL, probability = !freq,include.lowest = TRUE, right = TRUE,density = NULL, angle = 45, col = NULL, border = NULL,main = paste("Histogram of" , xname),xlim = range(breaks), ylim = NULL,xlab = xname, ylab,axes = TRUE, plot = TRUE,labels = FALSE,nclass = NULL, ...)
    

    经验分布

        ecdf(x)
        plot(y, ..., ylab="Fn(x)", verticals = FALSE,col.01line = "gray70")
    

    说明:

    • 其中,在函数ecdf()中的x是由观察值得到的数值型向量,而在函数plot()中的x是由函数ecdf()生成的向量.verticals是逻辑变量,当verticals=TRUE表示画竖线;否则(FALSE,缺省值)不画坚线.

    例题:15位学生的体重数据w,建立一个脚本

        w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
        plot(ecdf(w),verticals=TRUE,do.p=FALSE) #do.p是逻辑变量=FALSE表示不画点处的记号x=44:78
        lines(x,pnorm(x,mean(w),sd(w)))
    

    QQ图

    在R软件中,函数qqnorm()和qqline()提供了画正态QQ图和相应直线的方法。例如:绘制学生体重数据的qq图:

        w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
        qqnorm(w);qqline(w)
    

    茎叶图、箱线图及五数总括

    茎叶图

    与直方图比较,茎叶图更能细致地看出数据分布的结构,下面用具体的例子来说明茎叶图的意义.
    例:对某班学生的体重做出其茎叶图,
    在R软件中,用stem()函数作茎叶图

        > w =c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
        > stem(w)
    

    stem()函数的使用方法是:

        stem(x, scale=1,width=80, atom=le-08)
    

    其中x是数据向量. scale控制绘出茎叶图的长度. width绘图的宽度.atom是容差,如果选择scale=2,即将10个个位数俞成两段,0~4为一段,5~9为另一段。

    箱线图boxplot(x)

    如仍对上述体重数据w作图。
    此外boxplot还有以下两种用法:

        boxplot(formula, data = NULL, ..., subset, na.action = NULL)
        boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,notch = FALSE, outline = TRUE, names, plot = TRUE,border = par("fg"), col = NULL, log = "",pars = list(boxwex = 0.8, staplewex = 0.5,outwex = 0.5),horizontal = FALSE, add = FALSE, at = NULL)
    

    五数总括

    在探索性数据分析中,能反映数据重要特征的五个数:中位数,下四分位数,上四分位数,最小值mim和最大值max.在R软件中,函数fivenum()计算样本的五数总括,使用格式为

        fivenum(x, na.rm=TRUE)
    

    其中x是样本数据,na. rm是逻辑变量,当na.rm=TRUE(缺省值)时,在计算五数总括之前,所有的NA和NAN数据将被去掉。

    例:学生考试成绩的五数总括

        > x<-c(25, 45, 50, 54, 55, 61, 64, 68, 72, 75, 75,78, 79, 81, 83, 84, 84, 84, 85, 86, 86, 86,87, 89, 89, 89, 90, 91, 91, 92, 100)
        > fivenum(x)
        [1] 25 70 84 88 100
    

    正态性检验与分布拟合检验

    正态性W检验方法

    利用Shapiro-Wilk(夏皮罗一威尔克)W统计量作正态性检验,因此称这种检验方法为正态W检验方法,函数shapiro .test()提供W统计量和相应的p值,当p值小于某个显著性水平Q(比如0.05),则认为样本为不是来自正态分布的总体;否则承认样本来自正态分布的总体。

        shapiro.test (x)
        >w=c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
        >shapiro.test(w)
        Shapiro-Wilk normality test
        data: w
        W = 0.9686, p-value = 0.8371
    

    p值为0.8371>0.05,因此,认为来自正态分布的总体.

    相关文章

      网友评论

          本文标题:R - 生成数据

          本文链接:https://www.haomeiwen.com/subject/cntqxttx.html