← R EspañolChapter 10 of 13

Estadística Básica

## Objetivos de Aprendizaje - Calcular estadísticas descriptivas - Realizar correlación y regresión - Comprender fundamentos de pruebas de hipótesis - Realizar t-tests y ANOVA ## Estadísticas Descriptivas ### Tendencia Central ```r x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # Media - promedio mean(x) # 5.5 # Mediana - valor del medio median(x) # 5.5 # Para número impar de valores y <- c(1, 2, 3, 4, 5) median(y) # 3 ``` ### Dispersión ```r x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # Varianza var(x) # 9.166667 # Desviación estándar sd(x) # 3.02765 # Rango range(x) # 1 10 max(x) - min(x) # 9 # Rango intercuartílico quantile(x, 0.75) - quantile(x, 0.25) # 5 # Varianza y SD para población var(x) * (length(x) - 1) / length(x) # 8.25 (varianza poblacional) ``` ### Cuantiles ```r x <- 1:100 # Cuartiles quantile(x) # 0% 25% 50% 75% 100% # 1 26 50 75 100 quantile(x, probs = c(0.1, 0.9)) # Percentiles 10 y 90 # Mediana (percentil 50) median(x) # 50.5 quantile(x, 0.5) # 50.5 ``` ### Resumen ```r # Resumen rápido summary(x) # Min/Max min(x) # 1 max(x) # 10 # Suma sum(x) # 5050 ``` ## Análisis de Frecuencia ### Tablas ```r # Frecuencia simple x <- c("A", "B", "A", "C", "B", "A") table(x) # x # A B C # 3 2 1 # Proporciones prop.table(table(x)) # x # A B C # 0.5 0.333333 0.166667 ``` ### Tabla Cruzada ```r df <- data.frame( genero = c("M", "F", "M", "F", "M"), respuesta = c("Sí", "No", "Sí", "Sí", "No") ) table(df$genero, df$respuesta) # No Sí # F 1 1 # M 1 2 # Usando table() with(df, table(genero, respuesta)) # Proporciones prop.table(table(df$genero, df$respuesta), margin = 1) # proporciones de fila prop.table(table(df$genero, df$respuesta), margin = 2) # proporciones de columna ``` ## Correlación ### Correlación de Pearson ```r # Dos variables x <- c(1, 2, 3, 4, 5) y <- c(2, 4, 3, 5, 6) cor(x, y) # 0.949 cor.test(x, y) # En dataframe df <- data.frame(x = 1:10, y = 2 * (1:10) + rnorm(10)) cor(df) ``` ### Métodos de Correlación ```r x <- c(1, 2, 3, 4, 5) y <- c(5, 4, 3, 2, 1) # Pearson (lineal) cor(x, y) # -1 # Spearman (rango) cor(x, y, method = "spearman") # -1 # Kendall (rango) cor(x, y, method = "kendall") # -1 ``` ### Matriz de Correlación ```r df <- mtcars[, c("mpg", "disp", "hp", "wt")] cor(df) ``` ## Regresión Lineal ### Regresión Lineal Simple ```r # Crear datos df <- data.frame( x = c(1, 2, 3, 4, 5), y = c(2.1, 4.3, 5.8, 8.2, 10.5) ) # Ajustar modelo modelo <- lm(y ~ x, data = df) # Resumen summary(modelo) # Coeficientes coef(modelo) # (Intercept) x # 0.26 2.04 # Valores predichos fitted(modelo) # Residuos residuals(modelo) ``` ### Regresión Lineal Múltiple ```r df <- mtcars[, c("mpg", "disp", "hp", "wt")] modelo <- lm(mpg ~ disp + hp + wt, data = df) summary(modelo) ``` ### Fórmulas de Modelos ```r # y depende de x lm(y ~ x, data = df) # y depende de x1 y x2 lm(y ~ x1 + x2, data = df) # y depende de x y x al cuadrado lm(y ~ x + I(x^2), data = df) # y depende de todas las demás variables lm(y ~ ., data = df) # Interacción lm(y ~ x1 * x2, data = df) # Sin intercepto lm(y ~ -1 + x, data = df) ``` ### Predicción ```r # Nuevos datos nuevos_datos <- data.frame(x = c(6, 7, 8)) # Predecir predict(modelo, newdata = nuevos_datos) ``` ## Pruebas de Hipótesis ### t-test de Una Muestra ```r # t-test de una muestra (probar si media equals mu) x <- c(98, 102, 95, 100, 99, 101, 97, 103, 100, 99) # Probar si media = 100 t.test(x, mu = 100) ``` ### t-test de Dos Muestras ```r # Dos grupos independientes grupo1 <- c(85, 90, 92, 88, 91) grupo2 <- c(78, 82, 85, 79, 84) # t-test de dos muestras t.test(grupo1, grupo2) # t-test pareado (mismos sujetos) antes <- c(100, 102, 98, 105, 101) despues <- c(95, 98, 92, 99, 96) t.test(antes, despues, paired = TRUE) ``` ### ANOVA ```r # ANOVA de un factor df <- data.frame( grupo = rep(c("A", "B", "C"), each = 5), valor = c(10, 12, 11, 13, 12, 20, 22, 21, 19, 23, 30, 28, 31, 29, 32) ) resultado_anova <- aov(valor ~ grupo, data = df) summary(resultado_anova) ``` ### Prueba Chi-Cuadrado ```r # Frecuencias observadas observado <- matrix(c(30, 20, 25, 25), nrow = 2) # Prueba chi-cuadrado chisq.test(observado) # Esperado vs observado resultado_chi <- chisq.test(observado) resultado_chi$expected # Frecuencias esperadas resultado_chi$observed # Observado (igual que entrada) resultado_chi$residuals # Residuos de Pearson ``` ## Intervalos de Confianza ### IC de t-distribución ```r x <- c(98, 102, 95, 100, 99, 101, 97, 103, 100, 99) # Intervalo de confianza del 95% t.test(x)$conf.int # [1] 97.158 102.042 # attr(,"conf.level") # [1] 0.95 # IC del 99% t.test(x, conf.level = 0.99)$conf.int ``` ### IC Bootstrap ```r # Intervalo de confianza bootstrap library(boot) # Función boot boot_mean <- function(data, indices) { mean(data[indices]) } # Bootstrap boot_result <- boot(x, boot_mean, R = 1000) boot.ci(boot_result, type = "perc") ``` ## Pruebas de Normalidad ### Prueba de Shapiro-Wilk ```r x <- rnorm(100, mean = 5, sd = 2) # Probar normalidad shapiro.test(x) # p-value > 0.05 significa normal ``` ### Evaluación Visual ```r # Gráfico Q-Q qqnorm(x) qqline(x) # Histograma con curva normal hist(x, prob = TRUE) curve(dnorm(x, mean = mean(x), sd = sd(x)), add = TRUE) ``` ## Pruebas No Paramétricas ### Prueba U de Mann-Whitney ```r # Alternativa no paramétrica a t-test grupo1 <- c(85, 90, 92, 88, 91) grupo2 <- c(78, 82, 85, 79, 84) wilcox.test(grupo1, grupo2) ``` ### Prueba de Kruskal-Wallis ```r # Alternativa no paramétrica a ANOVA df <- data.frame( grupo = rep(c("A", "B", "C"), each = 5), valor = c(10, 12, 11, 13, 12, 20, 22, 21, 19, 23, 30, 28, 31, 29, 32) ) kruskal.test(valor ~ grupo, data = df) ``` ## Referencia de Funciones Estadísticas | Función | Propósito | |---------|-----------| | mean() | Media aritmética | | median() | Valor mediano | | sd() | Desviación estándar | | var() | Varianza | | cov() | Covarianza | | cor() | Correlación | | cov2cor() | Matriz de correlación | | lm() | Regresión lineal | | predict() | Predicciones | | t.test() | T-test | | aov() | ANOVA | | chisq.test() | Prueba chi-cuadrado | | shapiro.test() | Prueba de normalidad | | wilcox.test() | U de Mann-Whitney | | kruskal.test() | Kruskal-Wallis | ## Resumen de Estadística - Estadísticas descriptivas: mean, median, sd, var, quantile, summary - Análisis de frecuencia: table(), prop.table() - Correlación: cor() para relaciones lineales - Regresión: lm() para modelos lineales, predict() para nuevos datos - t-test: una muestra, dos muestras, pareado - ANOVA: aov() para comparar múltiples grupos - Chi-cuadrado: chisq.test() para datos categóricos - Pruebas no paramétricas cuando los datos no son normales - Siempre verificar supuestos antes de probar

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →