R でカイ二乗分布を簡単にプロットする方法


R のカイ二乗分布の密度プロットを作成するには、次の関数を使用できます。

  • dchisq()は確率密度関数を作成します
  • Curve()による確率密度関数のプロット

プロットを作成するために必要なのは、 dchisq()自由度と、 Curve()アウト点とバック点を指定することだけです。

たとえば、次のコードは、プロットの x 軸が 0 ~ 40 である、自由度 10 のカイ二乗分布の密度プロットを作成する方法を示しています。

 curve(dchisq(x, df = 10), from = 0, to = 40)

密度プロットの編集

タイトルの追加、Y 軸ラベルの変更、線の幅の増加、線の色の変更によって密度プロットを編集することもできます。

 curve(dchisq(x, df = 10), from = 0, to = 40,
      main = 'Chi-Square Distribution (df = 10)', #add title
      ylab = 'Density', #change y-axis label
      lwd = 2, #increase line width to 2
      col = 'steelblue') #change line color to steelblue

密度プロットを埋める

密度プロットの作成に加えて、開始値と終了値に基づいて、 polygon()関数を使用してプロットの一部を塗りつぶすことができます。

次のコードは、10 ~ 40 の x 値のプロットの密度部分を埋める方法を示しています。

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#create vector of x values
x_vector <- seq(10, 40)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in portion of the density plot from 0 to 40
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

次のコードは、0 から 10 までの x 値のプロットの密度部分を埋める方法を示しています。

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#create vector of x values
x_vector <- seq( 0, 10 )

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in portion of the density plot from 0 to 10
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

次のコードは、分布の中心 95% の外側のx 値の密度プロットの部分を埋める方法を示しています。

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#find upper and lower values for middle 95% of distribution
lower95 <- qchisq(.025, 10)
upper95 <- qchisq(.975, 10)

#create vector of x values
x_lower95 <- seq(0, lower95)

#create vector of chi-square density values
p_lower95 <- dchisq(x_lower95, df = 10)

#fill in portion of the density plot from 0 to lower 95% value
polygon(c(x_lower95, rev(x_lower95)), c(p_lower95, rep(0, length(p_lower95))),
        col = adjustcolor('red', alpha=0.3), border = NA)

#create vector of x values
x_upper95 <- seq(upper95, 40)

#create vector of chi-square density values
p_upper95 <- dchisq(x_upper95, df = 10)

#fill in portion of the density plot for upper 95% value to end of plot
polygon(c(x_upper95, rev(x_upper95)), c(p_upper95, rep(0, length(p_upper95))),
        col = adjustcolor('red', alpha=0.3), border = NA)

最後に、次のコードは、分布の中心 95%内にある x 値の密度プロットの部分を埋める方法を示しています。

 #create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#find upper and lower values for middle 95% of distribution
lower95 <- qchisq(.025, 10)
upper95 <- qchisq(.975, 10)

#create vector of x values
x_vector <- seq(lower95, upper95)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in density plot
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

コメントを追加する

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