R の dt、qt、pt、rt のガイド

スチューデントの t 分布は、統計で最もよく使用される分布の 1 つです。このチュートリアルでは、 dt()qt()pt()およびrt()関数を使用して、R で Student t 分布を操作する方法について説明します。

dt

関数dt は、特定の確率変数xと自由度dfが与えられた場合のスチューデント t 分布の確率密度関数 (pdf) の値を返します。 dt を使用するための構文は次のとおりです。

dt(x, df)

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

 #find the value of the Student t distribution pdf at x = 0 with 20 degrees of freedom
dt(x = 0, df = 20)

#[1] 0.3939886

#by default, R assumes the first argument is x and the second argument is df
dt(0, 20)

#[1] 0.3939886
#find the value of the Student t distribution pdf at x = 1 with 30 degrees of freedom
dt(1, 30)

#[1] 0.2379933

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

 #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, using 20 degrees of freedom
y <- dt(x = x, df = 20)

#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"))

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

ポイント

pt関数は、特定の確率変数xと自由度dfが与えられた場合、スチューデントの t 分布の累積密度関数 (cdf) の値を返します。 pnorm を使用するための構文は次のとおりです。

pt(x, df)

簡単に言うと、 pt はスチューデントの t 分布内の指定されたx値の左側の領域を返します。特定のx値の右側の領域に興味がある場合は、引数lower.tail = FALSEを追加するだけです。

pt(x, df, lower.tail = FALSE)

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

例 1:値が -0.785、自由度が 14 の t 統計量の左側の領域を見つけます。

 pt(-0.785, 14)

#[1] 0.2227675

例 2:値が -0.785、自由度が 14 の t 統計量の右側の領域を見つけます。

 #the following approaches produce equivalent results

#1 - area to the left
1 - pt(-0.785, 14)

#[1] 0.7772325

#area to the right
pt(-0.785, 14, lower.tail = FALSE)

#[1] 0.7772325 

例 3: -0.785 の左側または 0.785 の右側に位置する 14 自由度のスチューデントの t 分布の総面積を求めます。

 pt (-0.785, 14) + pt (0.785, 14, lower.tail = FALSE)

#[1] 0.4455351

qt

関数qt は、特定の確率変数xと自由度df が与えられた場合、スチューデント t 分布の逆累積密度関数 (cdf) の値を返します。 qt を使用するための構文は次のとおりです。

qt(x, df)

簡単に言うと、 qtを使用して、スチューデントの t 分布のp 番目の分位数の t スコアを調べることができます。

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

 #find the t-score of the 99th quantile of the Student t distribution with df = 20
qt(.99, df = 20)

#[1][1]2.527977

#find the t-score of the 95th quantile of the Student t distribution with df = 20
qt(.95, df = 20)

#[1]1.724718

#find the t-score of the 90th quantile of the Student t distribution with df = 20
qt(.9, df = 20)

#[1]1.325341

qtによって求められる臨界値は、t 分布表で求められる臨界値、および逆 t 分布計算機によって求められる臨界値に対応することに注意してください。

RT

関数rt は、ベクトル長nと自由度dfを指定して、スチューデントの t 分布に従う確率変数のベクトルを生成します。 rt を使用するための構文は次のとおりです。

rt(n, df)

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

 #generate a vector of 5 random variables that follows a Student t distribution
#with df = 20
rt(n = 5, df = 20)

#[1] -1.7422445 0.9560782 0.6635823 1.2122289 -0.7052825

#generate a vector of 1000 random variables that follows a Student t distribution
#with df = 40
narrowDistribution <- rt(1000, 40)

#generate a vector of 1000 random variables that follows a Student t distribution
#with df = 5
wideDistribution <- rt(1000, 5)

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

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

広い分布が狭い分布よりもどのように広いかに注目してください。実際、広い分布の自由度は 5 であるのに対し、狭い分布では 40 であると指定しました。自由度が少ないほど、スチューデントの t 分布は広くなります。

参考文献:
R の dnorm、pnorm、qnorm、rnorm のガイド
R の dbinom、pbinom、qbinom、rbinom のガイド

コメントを追加する

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