R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

============================================

SCRIPT DE ANALISIS ESTADISTICO DESCRIPTIVO EN R

Autor: Jaime | Proyecto Clínico - EdadPaciente

============================================

——————————————–

CARGA DE PAQUETES

——————————————–

if (!require(readxl)) install.packages(“readxl”) if (!require(moments)) install.packages(“moments”) if (!require(outliers)) install.packages(“outliers”)

library(readxl) library(moments) library(outliers)

——————————————–

CARGA DE DATOS

——————————————–

Usa file.choose() si no recuerdas la ruta

datos <- read_excel(file.choose(), sheet = “Globho.com”)

Simulación de ejemplo para continuar script

datos <- BASE_SEMANA_3_CON_FORMULAS

Si ya cargaste los datos y los tienes en otra variable:

datos <- BASE_SEMANA_3_CON_FORMULAS

——————————————–

MEDIDAS DE TENDENCIA CENTRAL

——————————————–

media <- mean(datos\(EdadPaciente, na.rm = TRUE) mediana <- median(datos\)EdadPaciente, na.rm = TRUE) moda <- names(which.max(table(datos$EdadPaciente)))

cat(“Media:”, media, “”) cat(“Mediana:”, mediana, “”) cat(“Moda:”, moda, “”)

——————————————–

MEDIDAS DE POSICIÓN

——————————————–

cuartiles <- quantile(datos\(EdadPaciente, na.rm = TRUE) deciles <- quantile(datos\)EdadPaciente, probs = seq(0.1, 0.9, 0.1), na.rm = TRUE) percentiles <- quantile(datos$EdadPaciente, probs = seq(0.01, 0.99, 0.01), na.rm = TRUE)

——————————————–

MEDIDAS DE DISPERSIÓN

——————————————–

rango <- range(datos\(EdadPaciente, na.rm = TRUE) varianza <- var(datos\)EdadPaciente, na.rm = TRUE) desv_std <- sd(datos$EdadPaciente, na.rm = TRUE) coef_var <- (desv_std / media) * 100

Covarianza y correlación

covarianza <- cov(datos\(EdadPaciente, datos\)Diagnosticonumero, use = “complete.obs”) correlacion <- cor(datos\(EdadPaciente, datos\)Diagnosticonumero, use = “complete.obs”)

——————————————–

MEDIDAS DE FORMA

——————————————–

asimetria <- skewness(datos\(EdadPaciente, na.rm = TRUE) curtosis <- kurtosis(datos\)EdadPaciente, na.rm = TRUE) curtosis_excedente <- curtosis - 3

Interpretación asimetría

if (!is.na(asimetria)) { if (asimetria > 0) { cat(“Asimetría positiva: cola derecha más larga”) } else if (asimetria < 0) { cat(“Asimetría negativa: cola izquierda más larga”) } else { cat(“Distribución simétrica”) } }

Interpretación curtosis

if (!is.na(curtosis_excedente)) { if (curtosis_excedente > 0) { cat(“Leptocúrtica: colas pesadas, alta concentración central”) } else if (curtosis_excedente < 0) { cat(“Platicúrtica: colas ligeras, distribución aplanada”) } else { cat(“Mesocúrtica: forma normal”) } }

——————————————–

GRAFICOS

——————————————–

Histograma

hist(datos$EdadPaciente, breaks = 20, col = “lightblue”, main = “Histograma de EdadPaciente”, xlab = “Edad”, ylab = “Frecuencia”)

Gráfico de barras - Top 10 edades

top10 <- head(sort(table(datos$EdadPaciente), decreasing = TRUE), 10) barplot(top10, col = “tomato”, las = 2, main = “Top 10 Edades Más Frecuentes”, ylab = “Frecuencia”)

Boxplot

boxplot(datos$EdadPaciente, main = “Boxplot de EdadPaciente”, ylab = “Edad”, col = “lightgreen”, border = “darkgreen”)

——————————————–

OUTLIERS UNIVARIADOS

——————————————–

Q1 <- quantile(datos\(EdadPaciente, 0.25, na.rm = TRUE) Q3 <- quantile(datos\)EdadPaciente, 0.75, na.rm = TRUE) IQR_val <- Q3 - Q1 lim_inf <- Q1 - 1.5 * IQR_val lim_sup <- Q3 + 1.5 * IQR_val outliers <- datos\(EdadPaciente[datos\)EdadPaciente < lim_inf | datos$EdadPaciente > lim_sup] length(outliers)

——————————————–

OUTLIERS MULTIVARIADOS: MAHALANOBIS

——————————————–

vars <- na.omit(datos[, c(“EdadPaciente”, “Diagnosticonumero”)]) mahal <- mahalanobis(vars, colMeans(vars), cov(vars)) umbral <- qchisq(0.95, df = ncol(vars)) outliers_mahal <- which(mahal > umbral) length(outliers_mahal)

Visualizar Mahalanobis

plot(mahal, pch = 19, col = ifelse(mahal > umbral, “red”, “black”), main = “Distancia de Mahalanobis”, ylab = “Distancia”, xlab = “Observación”) abline(h = umbral, col = “blue”, lty = 2)

——————————————–

TEST DE GRUBBS

——————————————–

grubbs.test(na.omit(datos$EdadPaciente))