Как легко построить распределение хи-квадрат в R


Чтобы создать график плотности для распределения хи-квадрат в R, мы можем использовать следующие функции:

  • dchisq() для создания функции плотности вероятности
  • curve() для построения функции плотности вероятности

Все, что нам нужно сделать, чтобы создать график, это указать степени свободы для dchisq() вместе с точками входа и выхода для кривой() .

Например, следующий код иллюстрирует, как создать график плотности для распределения хи-квадрат с 10 степенями свободы, где ось x графика находится в диапазоне от 0 до 40:

curve(dchisq(x, df = 10), from = 0, to = 40)
График распределения хи-квадрат в R с 5 степенями свободы

Изменение графика плотности

Мы также можем изменить график плотности, добавив заголовок, изменив метку оси 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 
График плотности хи-квадрат в R

Заполнение графика плотности

В дополнение к созданию графика плотности мы можем заполнить часть графика с помощью функции polygon() на основе начального и конечного значения.

Следующий код иллюстрирует, как заполнить часть графика плотности для значений x в диапазоне от 10 до 40:

#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) 
График распределения хи-квадрат в R с заполненными значениями

Следующий код иллюстрирует, как заполнить часть графика плотности для значений x в диапазоне от 0 до 10:

#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) 
Распределение хи-квадрат с графиком 10 степеней свободы

Следующий код иллюстрирует, как заполнить часть графика плотности для значений x, лежащих за пределами средних 95% распределения:

#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, лежащих внутри средних 95% распределения:

#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) 
Среднее распределение хи-квадрат 95%
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.