HOWTO · R

R における T 分布

このチュートリアルでは、R で t 分布を実行する方法を示します。

このページの内容

t 分布は、サンプル サイズが小さく、標準偏差が不明な正規分布母集団を抽出するために使用される確率分布です。 このチュートリアルでは、R で t 分布を実行する方法を示します。

R におけるスチューデントの T 分布

通常、スチューデントの t 分布として知られる t 分布には、t 分布のさまざまな操作を実行するための複数の関数があります (たとえば、dtpt、および qt)。

dt() を使用して、特定の確率変数を使用して t 分布の PDF の確率密度関数を求める場合、1つの分位ベクトルともう 1つの自由度の 2つのパラメーターを使用します。 構文は dt(x, df) です。

pt() 関数は、t 分布の CDF の累積分布関数を取得します。

これは 3つのパラメーターをとります。1つ目は分位ベクトル、2つ目は自由度、3つ目は lower.trail で、true または false のいずれかになります。 構文は pt(q, df, lower.tail = TRUE) です。

qt() 関数は、t 分布の逆累積密度関数を取得します。

3つのパラメーターを取ります。 1つ目は確率のベクトル、2つ目は自由度、3つ目は lower.trail です。 構文は qt(p, df, lower.tail = TRUE) です。

R でスチューデント t 分布を実行するための段階的なプロセスを次に示します。

  • まず、自由度を設定します。
  • 次に、スチューデント t 分布の密度関数をプロットします。
  • 密度関数をプロットするには、まずベクトル分位数を作成し、次に dt() メソッドを使用して t 分布の値を見つけ、最後にその値を使用してスチューデント t 分布の密度関数をプロットします。
  • ここで、pt() メソッドを使用して t 分布の累積分布関数を取得し、qt() 関数を使用して t 分布の逆累積密度関数を取得します。

プロセスがわかったら、R でスチューデント t 分布を実装してみましょう。x=1 での自由度 50 での t 分布の値を見つけてみましょう。

例を参照してください:

# value of t-distribution probality density function at x=1 and df = 50
dt(x = 1, df = 50)

上記のコードは、x=1 および df = 50 での t 分布確率密度関数の値を示します。 出力を参照してください:

[1] 0.2395711

それでは、pt() メソッドを使用して、t 分布の p 値と信頼区間を見つけてみましょう。 例を参照してください:

# area to the right of a t-statistic with the value of 3.1 quantile and 30 degrees of freedom
pt(q = 3.1, df = 30, lower.tail = FALSE)

上記のコードは、メソッド pt を使用して、3.1 分位数と 30 自由度の値を持つ t 統計量の右側の領域を見つけます。 出力を参照してください:

[1] 0.002092242

ここでの片側 p 値は 0.2% であることがわかりました。 両側 50% 信頼区間を構築したい場合は、qt() 関数を使用して、50% 信頼の t スコアと t 値を見つけることができます。

# value in each tail is 0.2% and confidence is 50%, we will find 0.2th percentile of t-distribution with 30 degrees of freedom
qt(p = 0.002, df = 30, lower.tail = TRUE)

qt は 50% の信頼区間の臨界値として使用できる t 値を見つけます。 出力を参照してください:

[1] -3.117682

次に、自由度が異なる確率密度関数を比較してみましょう。 これは、自由度の数が大きいほど、プロットが正規分布に近づくことを示すためです。

例を参照してください:

# vector of 200 values between -9 and 9
a <- seq(-9, 9, length = 200)

# Degrees of freedom with maximum 50 degrees
df = c(1,5,15,50)

#plot line colors
colour = c("blue", "red", "green", "orange","pink")

# the normal distribution
plot(a, dnorm(a), type = "l", lty = 2, xlab = "T-value", ylab = "Density",
     main = "The t-distributions Comparison", col = "darkblue")

# Adding t-distributions to the plot
for (i in 1:4){
  lines(a, dt(a, df[i]), col = colour[i])
}

# Adding legend
legend("topright", c("df = 1", "df = 5", "df = 15", "df = 50", "Normal"),
       col = colour, title = "T-distributions", lty = c(1,1,1,1,2))

上記のコードは、異なる自由度の t 分布の比較プロットを表示します。 プロットを参照してください。

T分布の比較