# Verificar, instalar y activar el paquete "tidyverse"if (!require(tidyverse)) {install.packages("tidyverse")}library(tidyverse)# Verificar, instalar y activar el paquete "kableExtra"if (!require(kableExtra)) {install.packages("kableExtra")}library(kableExtra)# Verificar, instalar y activar el paquete "readxl"if (!require(dplyr)) {install.packages("dplyr")}library(dplyr)# Verificar, instalar y activar el paquete "tibble"if (!require(tibble)) {install.packages("tibble")}library(tibble)
La distribución chi-cuadrada es una distribución de probabilidad continua que se utiliza ampliamente en estadística para pruebas de hipótesis y análisis de varianza. Surge principalmente cuando se suman los cuadrados de variables aleatorias normales estándar independientes.
Formalmente, si Z_1, Z_2, \ldots, Z_k son variables aleatorias independientes con distribución normal estándar N(0,1), entonces:
Se usa en la construcción de la distribución t de Student y la F de Fisher, que dependen de chi-cuadrada.
Caracteristicas principales
Es una distribución continua.
Toma solo valores positivos: x \in [0, \infty).
Depende de un único parámetro: los grados de libertad (k).
Asimétrica a la derecha para valores pequeños de k.
Conforme k aumenta, la distribución se aproxima a una normal con media k y varianza 2k.
Momentos
Media: E(\chi^{2}) = k. \
Varianza: \mathrm{Var}(\chi^{2}) = 2k. \
Moda: k - 2 ; (para k > 2). \
Curtosis: \dfrac{12}{k}.
Usos Principales en la estadistica aplicada
Prueba de bondad de ajuste (Goodness of Fit): Evalúa si los datos observados siguen una distribución teórica esperada.
Prueba de independencia en tablas de contingencia: Determina si dos variables categóricas están asociadas.
Prueba de homogeneidad de proporciones: Comprueba si varias muestras tienen la misma distribución.
Intervalos de confianza para la varianza: En una población normal, la varianza muestral se distribuye como chi-cuadrada.
Ejemplo de Uso
Supón que se tiene una muestra de tamaño n = 20 de una población normal, con varianza muestral s^{2} = 16, y se quiere construir un intervalo de confianza para la varianza poblacional \sigma^{2} al 95%.
donde los valores críticos provienen de la distribución chi-cuadrada.
Ventajas Y Limitaciones
Ventajas:
Simplicidad y aplicabilidad amplia: Es una de las pruebas más utilizadas para datos categóricos.
No requiere conocer parámetros poblacionales complejos: Se basa en frecuencias observadas y esperadas.
Fácil interpretación en tablas de contingencia: Permite evaluar independencia o asociación entre variables.
Flexibilidad: Se aplica en diferentes contextos estadísticos (bondad de ajuste, independencia, homogeneidad).
Distribución conocida: La distribución y sus valores críticos están ampliamente tabulados.
Limitaciones:
Requiere tamaño de muestra suficiente: Las frecuencias esperadas deben ser generalmente ≥ 5 por celda.
Sensibilidad a tamaños grandes de muestra: Con muestras muy grandes, diferencias pequeñas pueden resultar significativas.
No proporciona magnitud del efecto: Indica asociación, pero no mide la fuerza de la relación.
Supone independencia de las observaciones: Si las observaciones están correlacionadas, los resultados se distorsionan.
Solo se aplica a datos categóricos (frecuencias): No es adecuada para variables continuas sin agrupar.
.Familias de Curvas Ji-cudrado
Ver código
# Instalar y cargar paquetes necesarios# install.packages("ggplot2")library(ggplot2)# Definir los grados de libertad que quieres graficargrados_libertad <-c(3,4,5)# Crear una secuencia de valores para xx <-seq(0, 40, length.out =500)# Crear un data frame con las densidades para cada grado de libertaddf <-data.frame(x =rep(x, times =length(grados_libertad)),gl =factor(rep(grados_libertad, each =length(x))))# Calcular las densidadesdf$density <-dchisq(df$x, df =as.numeric(as.character(df$gl)))# Graficar usando ggplot2ggplot(df, aes(x = x, y = density, color = gl)) +geom_line(size =1) +labs(title ="Familias de curvas de la distribución Chi-cuadrado",x ="Valor de χ²",y ="Densidad de probabilidad",color ="Grados de libertad (k)" ) +theme_minimal()
3.Ejercicios
Para una distribución chi cuadrada encuentre
\chi^2_{0.025} cuando v = 15;
\chi^2_{0.01} cuando v = 7;
\chi^2_{0.05} cuando v = 24
Ver código
# a) Chi-cuadrado al 0.025 con v = 15chi_a <-qchisq(0.025, df =15, lower.tail =FALSE)# b) Chi-cuadrado al 0.01 con v = 7chi_b <-qchisq(0.01, df =7, lower.tail =FALSE)# c) Chi-cuadrado al 0.05 con v = 24chi_c <-qchisq(0.05, df =24, lower.tail =FALSE)# Mostrar resultadoschi_a
[1] 27.48839
Ver código
chi_b
[1] 18.47531
Ver código
chi_c
[1] 36.41503
3.1.Grafica
Ver código
# Cargar paquetelibrary(ggplot2)# Definir grados de libertad y niveles de significanciagrados <-c(15, 7, 24)alfa <-c(0.025, 0.01, 0.05)# Calcular valores críticoscriticos <-qchisq(alfa, df = grados, lower.tail =FALSE)# Crear rango para xx <-seq(0, 50, length.out =500)# Generar gráficos por separadofor (i inseq_along(grados)) {# Calcular densidad para el grado de libertad correspondiente df <-data.frame(x = x,density =dchisq(x, df = grados[i]) )# Crear gráfico p <-ggplot(df, aes(x = x, y = density)) +geom_line(color ="blue", size =1) +geom_vline(xintercept = criticos[i], linetype ="dashed", color ="red") +labs(title =paste("Distribución Chi-cuadrada (v =", grados[i], ")"),subtitle =paste("Valor crítico al nivel", alfa[i], "=", round(criticos[i], 3)),x =expression(chi^2),y ="Densidad de probabilidad" ) +theme_minimal()print(p) # Mostrar gráfico en la sesión}
Ver código
# Cargar paquetelibrary(ggplot2)# Definir grados de libertad y valores críticosgrados <-c(15, 7, 24)alfa <-c(0.025, 0.01, 0.05)# Calcular valores críticoscriticos <-qchisq(alfa, df = grados, lower.tail =FALSE)# Crear rango común de xx <-seq(0, 50, length.out =500)# Crear data frame con densidades para cada distribucióndf <-data.frame(x =rep(x, times =length(grados)),gl =factor(rep(grados, each =length(x))))df$density <-dchisq(df$x, df =as.numeric(as.character(df$gl)))# Graficarggplot(df, aes(x = x, y = density, color = gl)) +geom_line(size =1) +# Agregar líneas verticales para los valores críticosgeom_vline(xintercept = criticos, linetype ="dashed") +# Etiquetaslabs(title ="Distribuciones Chi-cuadrada con valores críticos",x =expression(chi^2),y ="Densidad de probabilidad",color ="Grados de libertad" ) +theme_minimal()
3.2.Ejercicio
Para una distribución chi cuadrada encuentre \chi^2_{\alpha} tal que:
P(X^2 > \chi^2_{\alpha}) = 0.99 cuando v = 4;
P(X^2 > \chi^2_{\alpha}) = 0.025 cuando v = 19;
P(37.652 < X^2 < \chi^2_{\alpha}) = 0.045 cuando v = 25.
Ver código
# a) P(X^2 > chi) = 0.99 con v = 4chi_a <-qchisq(0.99, df =4, lower.tail =FALSE)# b) P(X^2 > chi) = 0.025 con v = 19chi_b <-qchisq(0.025, df =19, lower.tail =FALSE)# c) P(37.652 < X^2 < chi) = 0.045 con v = 25# Paso 1: Calcular probabilidad acumulada hasta 37.652F_lower <-pchisq(37.652, df =25)# Paso 2: Sumar 0.045 para obtener la probabilidad acumulada hasta chitarget <- F_lower +0.045# Paso 3: Obtener chi críticochi_c <-qchisq(target, df =25, lower.tail =TRUE)# Mostrar resultadoschi_a
[1] 0.2971095
Ver código
chi_b
[1] 32.85233
Ver código
chi_c
[1] 46.92392
3.3.Graficas
Ver código
# Cargar paquetelibrary(ggplot2)# Definir grados de libertad y niveles de significancia para cada casogrados <-c(4, 19, 25)alfa <-c(0.99, 0.025, NA) # El tercero no es cola derecha directa# Calcular valores críticos# a) y b) son colas derechascriticos <-c(qchisq(0.99, df =4, lower.tail =FALSE), # a)qchisq(0.025, df =19, lower.tail =FALSE) # b))# c) Intervalo: P(37.652 < X² < chi) = 0.045F_lower <-pchisq(37.652, df =25)target <- F_lower +0.045critico_c <-qchisq(target, df =25, lower.tail =TRUE)# Añadir a la lista de críticoscriticos <-c(criticos, critico_c)# Crear rango común de xx <-seq(0, 60, length.out =500)# Crear data frame con densidades para cada distribucióndf <-data.frame(x =rep(x, times =length(grados)),gl =factor(rep(grados, each =length(x))))df$density <-dchisq(df$x, df =as.numeric(as.character(df$gl)))# Graficar las tres distribuciones juntasggplot(df, aes(x = x, y = density, color = gl)) +geom_line(size =1) +# Agregar líneas verticales para los valores críticosgeom_vline(xintercept = criticos, linetype ="dashed") +# Etiquetaslabs(title ="Distribuciones Chi-cuadrada con valores críticos",x =expression(chi^2),y ="Densidad de probabilidad",color ="Grados de libertad" ) +theme_minimal()
Ver código
# Cargar paquetelibrary(ggplot2)# --- a) P(X² > chi) = 0.99 con v = 4 ---critico_a <-qchisq(0.99, df =4, lower.tail =FALSE)x <-seq(0, 30, length.out =500)df_a <-data.frame(x = x, density =dchisq(x, df =4))p_a <-ggplot(df_a, aes(x = x, y = density)) +geom_line(color ="blue", size =1) +geom_vline(xintercept = critico_a, linetype ="dashed", color ="red") +labs(title =expression(paste("Distribución ", chi^2, " (v = 4)")),subtitle =paste("Valor crítico (cola derecha 0.99) =", round(critico_a, 3)),x =expression(chi^2),y ="Densidad" ) +theme_minimal()# --- b) P(X² > chi) = 0.025 con v = 19 ---critico_b <-qchisq(0.025, df =19, lower.tail =FALSE)x <-seq(0, 50, length.out =500)df_b <-data.frame(x = x, density =dchisq(x, df =19))p_b <-ggplot(df_b, aes(x = x, y = density)) +geom_line(color ="blue", size =1) +geom_vline(xintercept = critico_b, linetype ="dashed", color ="red") +labs(title =expression(paste("Distribución ", chi^2, " (v = 19)")),subtitle =paste("Valor crítico (cola derecha 0.025) =", round(critico_b, 3)),x =expression(chi^2),y ="Densidad" ) +theme_minimal()# --- c) P(37.652 < X² < chi) = 0.045 con v = 25 ---F_lower <-pchisq(37.652, df =25)target <- F_lower +0.045critico_c <-qchisq(target, df =25, lower.tail =TRUE)x <-seq(0, 60, length.out =500)df_c <-data.frame(x = x, density =dchisq(x, df =25))p_c <-ggplot(df_c, aes(x = x, y = density)) +geom_line(color ="blue", size =1) +geom_vline(xintercept = critico_c, linetype ="dashed", color ="red") +geom_vline(xintercept =37.652, linetype ="dotted", color ="darkgreen") +labs(title =expression(paste("Distribución ", chi^2, " (v = 25)")),subtitle =paste("Intervalo: 37.652 a", round(critico_c, 3)),x =expression(chi^2),y ="Densidad" ) +theme_minimal()# Mostrar los tres gráficosprint(p_a)
Ver código
print(p_b)
Ver código
print(p_c)
4 .Distribucion T De Student
La distribución t de Student es una distribución de probabilidad continua utilizada para realizar inferencias sobre la media de una población cuando:
El tamaño de la muestra es pequeño (n < 30).
La desviación estándar poblacional (\sigma) es desconocida.
Es una versión ajustada de la distribución normal, que incorpora la incertidumbre adicional al estimar la desviación estándar a partir de la muestra.
Relación con otras distribuciones
Con la distribución normal: A medida que los grados de libertad (v) tienden a infinito, la distribución t se aproxima a la normal estándar N(0,1). * Con la distribución chi-cuadrado: La t de Student se deriva de una combinación entre la distribución normal estándar y la distribución chi-cuadrado:
t = \frac{Z}{\sqrt{\chi^2_v / v}}
donde:
Z es una variable normal estándar.
\chi^2_v es una variable chi-cuadrado con v grados de libertad.
Características principales
Simétrica y con forma de campana (como la normal).
Media = 0.
Varianza > 1, disminuye a medida que los grados de libertad aumentan y tiende a 1 cuando v \to \infty.
Colas más gruesas que la normal, lo que implica mayor probabilidad de valores extremos en muestras pequeñas.
Determinada por los grados de libertad (v).
Momentos
Media
\mu =
\begin{cases}
0, & v > 1 \\
\text{indefinida}, & v \leq 1
\end{cases}
2. Varianza
\sigma^2 =
\begin{cases}
\frac{v}{v - 2}, & v > 2 \\
\infty, & 1 < v \leq 2 \\
\text{indefinida}, & v \leq 1
\end{cases}
3. Asimetría (Skewness)
\text{Asimetría} = 0, \quad v > 3
Para v \leq 3, no está definida, ya que depende de momentos superiores que divergen.
4. Curtosis (Exceso de curtosis)
\text{Curtosis (exceso)} =
\begin{cases}
\frac{6}{v - 4}, & v > 4 \\
\infty, & 2 < v \leq 4 \\
\text{indefinida}, & v \leq 2
\end{cases}
Se compara este valor con la distribución t de Student con v = 14 grados de libertad para decidir si hay diferencia significativa.
Ventajas
Permite realizar inferencias con muestras pequeñas.
Se ajusta a la incertidumbre adicional generada por estimar la desviación estándar.
Es la base de muchas pruebas estadísticas fundamentales.
Limitaciones
Menos precisa para muestras muy pequeñas si no se cumplen supuestos de normalidad.
Supone que la muestra proviene de una población normal; si esta condición no se cumple, los resultados pueden ser inexactos.
No es adecuada cuando la desviación estándar poblacional es conocida (en ese caso se usa la distribución normal).
Ver código
# Libreríaslibrary(ggplot2)library(dplyr)# Rango del eje Xx <-seq(-4, 4, length.out =500)# Definimos grados de libertaddf_values <-c(3, 5, 10)# Generamos los datos para cada curva tt_data <-data.frame(x =rep(x, times =length(df_values)),df =factor(rep(df_values, each =length(x))))# Calculamos densidad de cada t-studentt_data$y <-dt(t_data$x, df =as.numeric(as.character(t_data$df)))# Datos para la normal estándarnormal_data <-data.frame(x = x,y =dnorm(x),df ="Normal")# Unimos todoall_data <-bind_rows( t_data, normal_data)# Graficamosggplot(all_data, aes(x = x, y = y, color = df)) +geom_line(size =1.2) +theme_minimal(base_size =14) +labs(title ="Familias de curvas t-Student vs Normal estándar",x ="Valores",y ="Densidad",color ="Distribución" ) +theme(legend.position ="bottom" )
4.1 .Ejercicios
Encuentre P(T \leq 2.365) cuando v = 7.
Encuentre P(T > 1.318) cuando v = 24.
Encuentre P(-1.356 < T < 2.179) cuando v = 12.
Encuentre P(T > -2.567) cuando v = 17.
Ver código
# a) P(T <= 2.365) con v = 7p_a <-pt(2.365, df =7)# b) P(T > 1.318) con v = 24p_b <-pt(1.318, df =24, lower.tail =FALSE)# c) P(-1.356 < T < 2.179) con v = 12p_c <-pt(2.179, df =12) -pt(-1.356, df =12)# d) P(T > -2.567) con v = 17# Ojo: como el límite es negativo, usamos la simetría:p_d <-pt(-2.567, df =17, lower.tail =FALSE)# Mostrar resultadosp_a
[1] 0.9750138
Ver código
p_b
[1] 0.09997295
Ver código
p_c
[1] 0.8749748
Ver código
p_d
[1] 0.9900014
5 .Graficas
Ver código
# Cargar paquetelibrary(ggplot2)# Definir grados de libertad y límites para cada casogrados <-c(7, 24, 12, 17)limites <-list(c(-Inf, 2.365), # a) P(T <= 2.365)c(1.318, Inf), # b) P(T > 1.318)c(-1.356, 2.179), # c) P(-1.356 < T < 2.179)c(-2.567, Inf) # d) P(T > -2.567))# Crear rango común de x para t-Studentx <-seq(-4, 4, length.out =500)# Generar gráficos por separadofor (i inseq_along(grados)) {# Calcular densidad para cada distribución t df <-data.frame(x = x,density =dt(x, df = grados[i]) )# Crear gráfico sombreando el área correspondiente p <-ggplot(df, aes(x = x, y = density)) +geom_line(color ="blue", size =1) +geom_area(data =subset(df, x >= limites[[i]][1] & x <= limites[[i]][2]),aes(y = density), fill ="lightblue", alpha =0.5) +geom_vline(xintercept = limites[[i]], linetype ="dashed", color ="red") +labs(title =paste("Distribución t (v =", grados[i], ")"),subtitle =paste("Intervalo sombreado:", limites[[i]][1], "a", limites[[i]][2]),x ="t",y ="Densidad de probabilidad" ) +theme_minimal()print(p) # Mostrar gráfico}
5.1 .Distribución F de Fisher-Snedecor
La distribución F es una distribución continua que surge principalmente cuando se comparan dos varianzas muestrales o se analiza la relación entre la variabilidad explicada y no explicada en modelos estadísticos (como en el ANOVA y la regresión lineal). Fue desarrollada por Ronald Fisher y es una de las distribuciones fundamentales en la inferencia estadística.
Sea:
v_1 y v_2 grados de libertad, respectivamente.
La variable aleatoria:
F = \frac{X / v_1}{Y / v_2}
sigue una distribución F con parámetros v_1 y v_2, llamados grados de libertad del numerador y denominador, respectivamente.
Caracteristicas principales
Dominio: 0 F≥0 (no toma valores negativos).
Asimetría: Es asimétrica hacia la derecha, aunque se vuelve más simétrica conforme aumentan los grados de libertad.
Análisis de varianza (ANOVA): Contrastar si varias medias poblacionales son iguales.
Pruebas de hipótesis sobre varianzas: Evaluar si dos poblaciones tienen la misma varianza.
Modelos de regresión: Para verificar la significancia global de un modelo.
Caracteristicas importantes
No simétrica Solo tiende a la simetría para grados de libertad grandes.
Relación con su recíproco:
F_{v_1, v_2} = \frac{1}{F_{v_2, v_1}}
Valores críticos: Se utilizan para determinar regiones de rechazo en pruebas F.
Ejemplo de Uso
Supón que un investigador quiere saber si tres métodos de enseñanza (A, B y C) producen diferencias significativas en el rendimiento de los estudiantes. Se toman muestras aleatorias de cada método y se calculan sus medias y varianzas.
H₀: Las medias de los tres métodos son iguales.
H₁: Al menos una de las medias es diferente.
Estadístico F
F = \frac{\text{Varianza entre grupos}}{\text{Varianza dentro de los grupos}}
Si F es mayor que el valor crítico obtenido de la distribución F para los grados de libertad correspondientes
v_1 = k - 1, v_2 = N - k,
se rechaza H_0.
Por ejemplo:
v1 =2 (3 grupos – 1)
𝑣2=27v2 =27 (30 estudiantes – 3 grupos)
Nivel de significancia: α=0.05 α=0.05
Si el valor calculado es:
F = 5.78 \quad \text{y el valor crítico es} \quad F_{0.05,2,27} = 3.35
Como
F = 5.78 > 3.35,
se rechaza H_0 \; \rightarrow Hay evidencia de que al menos un método es diferente.
Ventajas Y Limites
Ventajas:
Fundamental para pruebas de hipótesis: Especialmente en ANOVA, regresión y comparación de varianzas.
Flexible: Se adapta a diferentes grados de libertad según el problema.
Amplio uso en estadística inferencial: Es la base de muchos métodos de comparación entre grupos.
Permite análisis de modelos complejos: Como modelos lineales generales.
Limites:
Sensibilidad a supuestos: Requiere que los datos provengan de poblaciones normales y con varianzas homogéneas (homocedasticidad).
No simétrica: Difícil de interpretar intuitivamente para quienes esperan distribuciones simétricas como la normal.
Poco robusta a valores atípicos: Los outliers pueden distorsionar los resultados de la prueba F.
Interpretación limitada: Solo indica si existen diferencias, no cuál grupo es diferente (para eso se necesitan pruebas post-hoc).
Ver código
# Cargar paqueteslibrary(ggplot2)# Definir grados de libertad para el numerador y denominadorv1 <-c(2, 5) # grados de libertad del numeradorv2 <-c(10, 15) # grados de libertad del denominador# Crear combinaciones de pares (v1, v2)grados <-expand.grid(v1 = v1, v2 = v2)# Crear un rango para x (valores de F)x <-seq(0, 5, length.out =500)# Construir el data frame con densidades para cada combinacióndf <-do.call(rbind, apply(grados, 1, function(g) {data.frame(x = x,density =df(x, df1 = g["v1"], df2 = g["v2"]),v1 =as.factor(g["v1"]),v2 =as.factor(g["v2"]) )}))# Crear la gráficaggplot(df, aes(x = x, y = density, color =interaction(v1, v2))) +geom_line(size =1) +labs(title ="Familias de curvas F de Fisher",subtitle ="Variando grados de libertad del numerador (v1) y denominador (v2)",x ="Valor F",y ="Densidad de probabilidad",color ="v1-v2" ) +theme_minimal()
5.2 .Ejercicio
f_{0.05} con v_1 = 7 y v_2 = 15;
f_{0.05} con v_1 = 15 y v_2 = 7;
f_{0.01} con v_1 = 24 y v_2 = 19;
f_{0.95} con v_1 = 19 y v_2 = 24;
f_{0.99} con v_1 = 28 y v_2 = 12.
Ver código
# Valores críticos de la distribución F# a) f_0.05 con v1 = 7, v2 = 15f_a <-qf(0.05, df1 =7, df2 =15, lower.tail =FALSE)# b) f_0.05 con v1 = 15, v2 = 7f_b <-qf(0.05, df1 =15, df2 =7, lower.tail =FALSE)# c) f_0.01 con v1 = 24, v2 = 19f_c <-qf(0.01, df1 =24, df2 =19, lower.tail =FALSE)# d) f_0.95 con v1 = 19, v2 = 24f_d <-qf(0.95, df1 =19, df2 =24, lower.tail =FALSE)# e) f_0.99 con v1 = 28, v2 = 12f_e <-qf(0.99, df1 =28, df2 =12, lower.tail =FALSE)# Mostrar resultadosf_a
[1] 2.706627
Ver código
f_b
[1] 3.51074
Ver código
f_c
[1] 2.924866
Ver código
f_d
[1] 0.4730049
Ver código
f_e
[1] 0.3453181
Ver código
# Cargar libreríalibrary(ggplot2)# Definir grados de libertad y niveles de significanciav1 <-c(7, 15, 24, 19, 28)v2 <-c(15, 7, 19, 24, 12)alfa <-c(0.05, 0.05, 0.01, 0.05, 0.01)criticos <-qf(alfa, df1 = v1, df2 = v2, lower.tail =FALSE)# Rango de Fx <-seq(0, 5, length.out =500)# Construir data frame con todas las densidadesdf <-do.call(rbind, lapply(1:length(v1), function(i) {data.frame(x = x,density =df(x, df1 = v1[i], df2 = v2[i]),label =paste0("v1=", v1[i], ", v2=", v2[i]),critico = criticos[i] )}))# Graficar todas las curvas F en un mismo gráficoggplot(df, aes(x = x, y = density, color = label)) +geom_line(size =1) +geom_vline(aes(xintercept = critico, color = label),linetype ="dashed") +labs(title ="Familia de distribuciones F de Fisher",subtitle ="Curvas F con sus valores críticos",x ="F",y ="Densidad de probabilidad",color ="Grados de libertad" ) +theme_minimal()
Ver código
# Cargar libreríalibrary(ggplot2)# Definir grados de libertad y niveles de significanciav1 <-c(7, 15, 24, 19, 28)v2 <-c(15, 7, 19, 24, 12)alfa <-c(0.05, 0.05, 0.01, 0.05, 0.01) # ajustado para representación visualcriticos <-qf(c(0.05,0.05,0.01,0.05,0.01), df1 = v1, df2 = v2, lower.tail =FALSE)# Rango común de Fx <-seq(0, 5, length.out =500)# Generar gráficos por separadofor (i inseq_along(v1)) {# Calcular densidad para cada distribución F df <-data.frame(x = x,density =df(x, df1 = v1[i], df2 = v2[i]) )# Crear gráfico con área sombreada para la región crítica p <-ggplot(df, aes(x = x, y = density)) +geom_line(color ="blue", size =1) +geom_area(data =subset(df, x >= criticos[i]),aes(y = density), fill ="lightblue", alpha =0.5) +geom_vline(xintercept = criticos[i], linetype ="dashed", color ="red") +labs(title =paste("Distribución F (v1 =", v1[i], ", v2 =", v2[i], ")"),subtitle =paste("Valor crítico al nivel =", round(criticos[i], 3)),x ="F",y ="Densidad de probabilidad" ) +theme_minimal()print(p)}
5.3 Quarto
Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.
## Running Code
When you click the **Render** button a document will be generated that includes both content and the output of embedded code. You can embed code like this:
::: {.cell layout-align="center"}
```{.r .cell-code}
1 + 1
[1] 2
:::
You can add options to executable code like this
[1] 4
The echo: false option disables the printing of code (only output is displayed). ````
Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy D’Agostino McGowan, Romain François, Garrett Grolemund, et al. 2019. «Welcome to the tidyverse» 4: 1686. https://doi.org/10.21105/joss.01686.