美文网首页
dnorm pnorm qnorm rnorm详解

dnorm pnorm qnorm rnorm详解

作者: 多啦A梦詹 | 来源:发表于2020-02-22 15:10 被阅读0次

    dnorm 返回值是正态分布概率密度函数值,比如dnorm(z)则表示:标准正态分布密度函数f(x)在x=z处的函数值.

    dnorm(0, mean = 0, sd = 1)
    
    ## [1] 0.3989423
    
    dnorm(0)
    
    ## [1] 0.3989423
    
    dnorm(2, mean = 5, sd = 3)
    
    ## [1] 0.08065691
    
    z_scores <- seq(-3, 3, by = .1)
    z_scores
    
    ##  [1] -3.0 -2.9 -2.8 -2.7 -2.6 -2.5 -2.4 -2.3 -2.2 -2.1 -2.0 -1.9
    ## [13] -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2 -1.1 -1.0 -0.9 -0.8 -0.7
    ## [25] -0.6 -0.5 -0.4 -0.3 -0.2 -0.1  0.0  0.1  0.2  0.3  0.4  0.5
    ## [37]  0.6  0.7  0.8  0.9  1.0  1.1  1.2  1.3  1.4  1.5  1.6  1.7
    ## [49]  1.8  1.9  2.0  2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9
    ## [61]  3.0
    
    dvalues <- dnorm(z_scores)
    dvalues
    
    ##  [1] 0.004431848 0.005952532 0.007915452 0.010420935 0.013582969
    ##  [6] 0.017528300 0.022394530 0.028327038 0.035474593 0.043983596
    ## [11] 0.053990967 0.065615815 0.078950158 0.094049077 0.110920835
    ## [16] 0.129517596 0.149727466 0.171368592 0.194186055 0.217852177
    ## [21] 0.241970725 0.266085250 0.289691553 0.312253933 0.333224603
    ## [26] 0.352065327 0.368270140 0.381387815 0.391042694 0.396952547
    ## [31] 0.398942280 0.396952547 0.391042694 0.381387815 0.368270140
    ## [36] 0.352065327 0.333224603 0.312253933 0.289691553 0.266085250
    ## [41] 0.241970725 0.217852177 0.194186055 0.171368592 0.149727466
    ## [46] 0.129517596 0.110920835 0.094049077 0.078950158 0.065615815
    ## [51] 0.053990967 0.043983596 0.035474593 0.028327038 0.022394530
    ## [56] 0.017528300 0.013582969 0.010420935 0.007915452 0.005952532
    ## [61] 0.004431848
    
    plot(dvalues, # Plot where y = values and x = index of the value in the vector
         xaxt = "n", # Don't label the x-axis
         type = "l", # Make it a line plot
         main = "pdf of the Standard Normal",
         xlab= "Z-score") 
    # These commands label the x-axis
    axis(1, at=which(dvalues == dnorm(0)), labels=c(0))
    axis(1, at=which(dvalues == dnorm(1)), labels=c(-1, 1))
    axis(1, at=which(dvalues == dnorm(2)), labels=c(-2, 2))
    
    unnamed-chunk-1-1.png

    pnorm 返回值是正态分布的分布函数值,比如pnorm(z)等价于P[X ≤ z].

    pnorm(0)
    
    ## [1] 0.5
    
    pnorm(2)
    
    ## [1] 0.9772499
    
    pnorm(2, mean = 5, sd = 3)
    
    ## [1] 0.1586553
    
    pnorm(2, mean = 5, sd = 3, lower.tail = FALSE)
    
    ## [1] 0.8413447
    
    1 - pnorm(2, mean = 5, sd = 3, lower.tail = FALSE)
    
    ## [1] 0.1586553
    
    pvalues <- pnorm(z_scores)
    
    # Now we'll plot these values
    plot(pvalues, # Plot where y = values and x = index of the value in the vector
         xaxt = "n", # Don't label the x-axis
         type = "l", # Make it a line plot
         main = "cdf of the Standard Normal",
         xlab= "Quantiles",
         ylab="Probability Density") 
    
    # These commands label the x-axis
    axis(1, at=which(pvalues == pnorm(-2)), labels=round(pnorm(-2), 2))
    axis(1, at=which(pvalues == pnorm(-1)), labels=round(pnorm(-1), 2))
    axis(1, at=which(pvalues == pnorm(0)), labels=c(.5))
    axis(1, at=which(pvalues == pnorm(1)), labels=round(pnorm(1), 2))
    axis(1, at=which(pvalues == pnorm(2)), labels=round(pnorm(2), 2))
    
    unnamed-chunk-2-1.png

    qnorm 返回值是给定概率p后的下分位点.

    qnorm(.5)
    
    ## [1] 0
    
    qnorm(.96)
    
    ## [1] 1.750686
    
    qnorm(.99)
    
    ## [1] 2.326348
    
    pnorm(qnorm(0))
    
    ## [1] 0
    
    qnorm(pnorm(0))
    
    ## [1] 0
    
    # This is for getting two graphs next to each other
    oldpar <- par()
    par(mfrow=c(1,2))
    
    # Let's make a vector of quantiles: from 0 to 1 by increments of .05
    quantiles <- seq(0, 1, by = .05)
    quantiles
    
    ##  [1] 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55
    ## [13] 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00
    
    qvalues <- qnorm(quantiles)
    qvalues
    
    ##  [1]       -Inf -1.6448536 -1.2815516 -1.0364334 -0.8416212
    ##  [6] -0.6744898 -0.5244005 -0.3853205 -0.2533471 -0.1256613
    ## [11]  0.0000000  0.1256613  0.2533471  0.3853205  0.5244005
    ## [16]  0.6744898  0.8416212  1.0364334  1.2815516  1.6448536
    ## [21]        Inf
    
    plot(qvalues,
         type = "l", # We want a line graph
         xaxt = "n", # No x-axis
         xlab="Probability Density",
         ylab="Z-scores")
    
    # Same pnorm plot from before
    plot(pvalues, # Plot where y = values and x = index of the value in the vector
         xaxt = "n", # Don't label the x-axis
         type = "l", # Make it a line plot
         main = "cdf of the Standard Normal",
         xlab= "Quantiles",
         ylab="Probability Density") 
    
    # These commands label the x-axis
    axis(1, at=which(pvalues == pnorm(-2)), labels=round(pnorm(-2), 2))
    axis(1, at=which(pvalues == pnorm(-1)), labels=round(pnorm(-1), 2))
    axis(1, at=which(pvalues == pnorm(0)), labels=c(.5))
    axis(1, at=which(pvalues == pnorm(1)), labels=round(pnorm(1), 2))
    axis(1, at=which(pvalues == pnorm(2)), labels=round(pnorm(2), 2))
    
    unnamed-chunk-3-1.png
    par(oldpar)
    

    rnorm 返回值是n个正态分布随机数构成的向量.

    set.seed(10 - 1 - 2015)
    rnorm(5)
    
    ## [1] -0.7197035 -1.4442137 -1.0120381  1.4577066 -0.1212466
    
    set.seed(10 - 1 - 2015)
    rnorm(5)
    
    ## [1] -0.7197035 -1.4442137 -1.0120381  1.4577066 -0.1212466
    
    n10 <- rnorm(10, mean = 70, sd = 5)
    n100 <- rnorm(100, mean = 70, sd = 5)
    n10000 <- rnorm(10000, mean = 70, sd = 5)
    n10
    
    ##  [1] 54.70832 72.89000 70.27049 69.16508 72.97937 67.91004
    ##  [7] 67.77183 72.29231 74.33411 63.57151
    
    # This is for getting two graphs next to each other
    oldpar <- par()
    par(mfrow = c(1, 3))
    
    # The breaks argument specifies how many bars are in the
    # histogram
    hist(n10, breaks = 5)
    hist(n100, breaks = 20)
    hist(n10000, breaks = 100)
    
    unnamed-chunk-4-1.png
    par(oldpar)
    

    参考 http://seankross.com/notes/dpqr/

    相关文章

      网友评论

          本文标题:dnorm pnorm qnorm rnorm详解

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