Як легко побудувати розподіл хі-квадрат у r
Щоб створити графік щільності для розподілу хі-квадрат у R, ми можемо використати такі функції:
- dchisq() для створення функції щільності ймовірності
- Curve() для побудови функції щільності ймовірності
Усе, що нам потрібно зробити, щоб створити діаграму, це вказати ступені свободи для dchisq() , а також вихідну та задню точки для curve() .
Наприклад, наведений нижче код ілюструє, як створити графік щільності для розподілу хі-квадрат із 10 ступенями свободи, де вісь х на графіку знаходиться між 0 і 40:
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() на основі початкового та кінцевого значення.
Наступний код демонструє, як заповнити частину графіка щільності для значень 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)
Наступний код демонструє, як заповнити частину графіка щільності для значень 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)
Наступний код ілюструє, як заповнити частину графіка щільності для значень 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)
Нарешті, наступний код ілюструє, як заповнити частину графіка щільності для значень 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)