R の dnorm、pnorm、qnorm、rnorm のガイド


正規分布は、統計で最もよく使用される分布です。このチュートリアルでは、関数dnormpnormrnorm 、およびqnormを使用して R で正規分布を使用する方法を説明します。

毒々しい

dnorm関数は、確率変数x 、母集団平均μ 、および母集団標準偏差σが与えられた場合に、正規分布の確率密度関数 (pdf) の値を返します。 dnorm を使用するための構文は次のとおりです。

dnorm(x, 平均, sd)

次のコードは、動作中のdnormの例をいくつか示しています。

 #find the value of the standard normal distribution pdf at x=0
dnorm(x=0, mean=0, sd=1)
#[1]0.3989423

#by default, R uses mean=0 and sd=1
dnorm(x=0)
#[1]0.3989423

#find the value of the normal distribution pdf at x=10 with mean=20 and sd=5
dnorm(x=10, mean=20, sd=5)
#[1]0.01079819

通常、正規分布を使用して確率に関する問題を解決しようとするときは、 dnormの代わりにpnormを使用することがよくあります。ただし、 dnormの便利な応用は、R で正規分布プロットを作成することです。次のコードは、これを行う方法を示しています。

 #Create a sequence of 100 equally spaced numbers between -4 and 4
x <- seq(-4, 4, length=100)

#create a vector of values that shows the height of the probability distribution
#for each value in x
y <- dnorm(x)

#plot x and y as a scatterplot with connected lines (type = "l") and add
#an x-axis with custom labels
plot(x,y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "")
axis(1, at = -3:3, labels = c("-3s", "-2s", "-1s", "mean", "1s", "2s", "3s"))

これにより、次のプロットが生成されます。

プノルム

関数pnormは、確率変数q 、母平均μ 、母標準偏差σが与えられた場合に、正規分布の累積密度関数 (cdf) の値を返します。 pnorm を使用するための構文は次のとおりです。

pnorm(q, 平均, sd)

簡単に言えば、 pnorm は正規分布における指定された値xの左側の領域を返します。特定のq値の右側の領域に興味がある場合は、引数lower.tail = FALSEを追加するだけです。

pnorm(q, 平均, sd, lower.tail = FALSE)

次の例は、pnorm を使用していくつかの確率の問題を解く方法を示しています。

例 1:特定の学校の男性の身長が、平均標準偏差

 #find percentage of males that are taller than 74 inches in a population with
#mean = 70 and sd = 2
pnorm(74, mean=70, sd=2, lower.tail=FALSE)

# [1]0.02275013

この学校では、男性の 2,275% が身長 74 インチ以上です。

例 2:特定の種のカワウソの体重が平均標準偏差で正規分布すると仮定します。

 #find percentage of otters that weight less than 22 lbs in a population with
#mean = 30 and sd = 5
pnorm(22, mean=30, sd=5)

# [1]0.05479929

このカワウソ種の約 5.4799% は体重が 22 ポンド未満です。

例 3:特定の地域の植物の高さが平均標準偏差

 #find percentage of plants that are less than 14 inches tall, then subtract the
#percentage of plants that are less than 10 inches tall, based on a population
#with mean = 13 and sd = 2
pnorm(14, mean=13, sd=2) - pnorm(10, mean=13, sd=2)

# [1]0.6246553

この地域の植物の約 62.4655% は高さ 10 ~ 14 インチです。

qnorm

qnorm関数は、確率変数p 、母集団平均μ 、母標準偏差σが与えられた場合に、正規分布の逆累積密度関数 (cdf) の値を返します。 qnorm を使用するための構文は次のとおりです。

qnorm (p、平均、sd)

簡単に言うと、 qnormを使用して、正規分布のp 番目の分位数の Z スコアを調べることができます。

次のコードは、 qnormの動作例をいくつか示しています。

 #find the Z-score of the 99th quantile of the standard normal distribution 
qnorm(.99, mean=0, sd=1)
#[1]2.326348

#by default, R uses mean=0 and sd=1
qnorm(.99)
#[1]2.326348

#find the Z-score of the 95th quantile of the standard normal distribution
qnorm(.95)
#[1]1.644854

#find the Z-score of the 10th quantile of the standard normal distribution
qnorm(.10)
#[1]-1.281552

ノルム

関数rnormは、ベクトル長n 、母集団平均μ 、母標準偏差σを指定して正規分布確率変数のベクトルを生成します。 rnorm を使用するための構文は次のとおりです。

rnorm(n, 平均, sd)

次のコードは、 rnormの動作例をいくつか示しています。

 #generate a vector of 5 normally distributed random variables with mean=10 and sd=2
five <- rnorm(5, mean = 10, sd = 2)
five
# [1] 10.658117 8.613495 10.561760 11.123492 10.802768

#generate a vector of 1000 normally distributed random variables with mean=50 and sd=5
narrowDistribution <- rnorm(1000, mean = 50, sd = 15)

#generate a vector of 1000 normally distributed random variables with mean=50 and sd=25
wideDistribution <- rnorm(1000, mean = 50, sd = 25)

#generate two histograms to view these two distributions side by side, specify
#50 bars in histogram and x-axis limits of -50 to 150
par(mfrow=c(1, 2)) #one row, two columns
hist(narrowDistribution, breaks=50, xlim=c(-50, 150))
hist(wideDistribution, breaks=50, xlim=c(-50, 150))

これにより、次のヒストグラムが生成されます。

広い分布が狭い分布よりもはるかに広いことに注目してください。実際、広い分布では標準偏差が 25 であるのに対し、狭い分布では標準偏差が 15 にすぎないと指定しました。また、両方のヒストグラムが平均値 50 付近に集中していることにも注意してください。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です