So zeichnen sie einfach eine chi-quadrat-verteilung in r auf


Um ein Dichtediagramm für eine Chi-Quadrat-Verteilung in R zu erstellen, können wir die folgenden Funktionen verwenden:

  • dchisq() , um die Wahrscheinlichkeitsdichtefunktion zu erstellen
  • Curve() zum Zeichnen der Wahrscheinlichkeitsdichtefunktion

Um den Plot zu erstellen, müssen wir lediglich die Freiheitsgrade für dchisq() sowie die Ausgangs- und Rückpunkte für Curve() angeben.

Der folgende Code veranschaulicht beispielsweise, wie ein Dichtediagramm für eine Chi-Quadrat-Verteilung mit 10 Freiheitsgraden erstellt wird, wobei die x-Achse des Diagramms zwischen 0 und 40 liegt:

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

Bearbeiten des Dichtediagramms

Wir können das Dichtediagramm auch bearbeiten, indem wir einen Titel hinzufügen, die Beschriftung der Y-Achse ändern, die Linienbreite erhöhen und die Linienfarbe ändern:

 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

Füllen Sie das Dichtediagramm aus

Zusätzlich zum Erstellen des Dichtediagramms können wir einen Teil des Diagramms mithilfe der Funktion „polygon()“ basierend auf einem Start- und Endwert füllen.

Der folgende Code zeigt, wie der Dichteteil des Diagramms für x-Werte zwischen 10 und 40 ausgefüllt wird:

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

Der folgende Code zeigt, wie der Dichteteil des Diagramms für x-Werte zwischen 0 und 10 ausgefüllt wird:

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

Der folgende Code veranschaulicht, wie der Teil des Dichtediagramms für x-Werte außerhalb der zentralen 95 % der Verteilung ausgefüllt wird:

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

Abschließend veranschaulicht der folgende Code, wie der Teil des Dichtediagramms für x-Werte ausgefüllt wird, die innerhalb der zentralen 95 % der Verteilung liegen:

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert