Aspectos generales de R

Qué es R y cuándo se podría implementar

es un lenguaje de programación y un entorno de software libre utilizado principalmente para el análisis estadístico, la minería de datos y la visualización gráfica. Fue creado por Ross Ihaka y Robert Gentleman en la Universidad de Auckland, Nueva Zelanda, y es ampliamente utilizado en el ámbito académico, la investigación y la industria.

Cuándo Implementar R:

La implementación de R es adecuada en situaciones donde se necesita:

-Análisis Estadístico Avanzado: Cuando el análisis requiere técnicas estadísticas complejas y personalizadas.

-Visualización de Datos: Para crear gráficos detallados y personalizables que faciliten la interpretación de los datos.

-Manejo de Grandes Conjuntos de Datos: Ideal para trabajar con datos extensos que requieren manipulación y análisis eficiente.

-Reproducibilidad y Transparencia: En proyectos donde la reproducibilidad del análisis es crucial, como en la investigación académica.

-Extensibilidad: Cuando se requiere un entorno flexible que permita la integración de nuevas herramientas y metodologías a través de paquetes adicionales.

Explicar cómo genero un script

Generar un script en R es un proceso sencillo que implica escribir y guardar un conjunto de instrucciones en un archivo de texto. Aquí te explico los pasos básicos para crear y ejecutar un script en R:

1.Instalación de R y RStudio (opcional pero recomendado):

-R: Descarga e instala R desde el sitio oficial de CRAN.

-RStudio: Aunque no es obligatorio, RStudio es un entorno de desarrollo integrado (IDE) muy popular que facilita la escritura y ejecución de scripts en R.

2.Abrir RStudio o tu editor de texto favorito:

Si estás usando RStudio, abre el programa. Si prefieres otro editor de texto, como Notepad++ o Visual Studio Code, ábrelo.

3. Crear un nuevo script:

-En RStudio, puedes crear un nuevo script seleccionando File > New File > R Script. Esto abrirá un nuevo archivo de script en el editor.

-En otros editores de texto, simplemente abre un nuevo archivo y asegúrate de guardarlo con la extensión .R.

4.Escribir el código:

Escribe el código R en el archivo. Por ejemplo, podrías comenzar con un script simple que suma dos números y muestra el resultado:

a <- 9
b <- 8
suma <- a + b
print(suma)
## [1] 17

5.Guardar el script:

Guarda el archivo con un nombre descriptivo y la extensión .R. Por ejemplo, mi_primer_script.R.

6.Ejecutar el script:

-En RStudio, puedes ejecutar el script completo seleccionando Code > Run Region > Run All, o presionando Ctrl + Shift + Enter.

-Si prefieres ejecutar el script desde la consola R, usa el comando source(“ruta/al/archivo/mi_primer_script.R”), donde ruta/al/archivo/ es la ruta al archivo en tu sistema.

QUE ES UN VECTOR?

En matemáticas y programación, un vector es una secuencia ordenada de números, también conocidos como elementos o componentes. Los vectores se utilizan para representar magnitudes que tienen tanto magnitud como dirección.

Vector numérico

Un vector numérico es una secuencia de números. Por ejemplo, el vector que representa las primeras cinco potencias.

vector_numerico <- c(2, 9, 1, 13, 7)
print(vector_numerico)
## [1]  2  9  1 13  7

vector caracteres

Un vector de caracteres contiene cadenas de texto. Por ejemplo, un vector que contiene los nombres de los días de la semana.

vector_caracteres <- c("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo")
print(vector_caracteres)
## [1] "Lunes"     "Martes"    "Miercoles" "Jueves"    "Viernes"   "Sabado"   
## [7] "Domingo"

vector logico

Un vector lógico contiene valores de verdad (TRUE o FALSE). Por ejemplo, un vector que indica si los números del 1 al 5 son pares.

vector_logico <- c(FALSE, TRUE, FALSE, TRUE, FALSE)
print(vector_logico)
## [1] FALSE  TRUE FALSE  TRUE FALSE

Cuáles son las funciones más comunes

hay una amplia variedad de funciones que se utilizan comúnmente para manipulación de datos, análisis estadístico, visualización y más. Aquí te presento algunas de las funciones más comunes y útiles, junto con breves descripciones y ejemplos de cómo usarlas.

1. ¿Qué es una función de R?

Las funciones en R se caracterizan por un nombre corto y que dé una idea de lo que hace la función. Los elementos que pueden ingresar (inputs) a la función se llaman parámetros o argumentos y se ubican dentro de paréntesis, el cuerpo de la función se ubica dentro de llaves y es ahí donde se procesan los inputs para convertirlos en outputs, a continuación se muestra la estructura general de una función.

A continuación se presenta un ejemplo de cómo usar la función mean para calcular un promedio.

notas <- c(4.0, 1.3, 3.8, 2.0)  # Notas de un estudiante
mean(notas)
## [1] 2.775

2.Asignación en R

En R se pueden hacer asignación de varias formas, a continuación se presentan los operadores disponibles para tal fin.

<- este es el operador de asignación a izquierda, es el más usado y recomendado.

-> este es el operador de asignación a derecha, no es frecuente su uso.

= el símbolo igual sirve para hacer asignaciones pero NO se recomienda usarlo.

<<- este es un operador de asignación global y sólo debe ser usado por usuarios avanzados.

a <- 5.3 
4.6 -> b 
age = 25

3. Operadores

En R se pueden hacer diversas operaciones usando operadores binarios. Este tipo de operadores se denomina binarios porque actuan entre dos objetos, a continuación el listado. Los operadores binarios son también funciones.

+ operador binario para sumar.

3+17
## [1] 20

- operador binario para restar.

30-98
## [1] -68

* operador binario para multiplicar.

a <- c(1, 3, 2)
b <- c(2, 0, 1) 
a*b
## [1] 2 0 2

/ operador binario para dividir.

a/b
## [1] 0.5 Inf 2.0

^ operador binario para potencia.

a^b
## [1] 1 1 2

%/% operador binario para obtener el cociente en una división (número entero).

8 %/% 2
## [1] 4

%% operador binario para obtener el residuo en una división.

12 %% 3 
## [1] 0

4. Pruebas lógicas

En R se puede verificar si un objeto cumple una condición dada, a continuación el listado de las pruebas usuales.

< para saber si un número es menor que otro. > para saber si un número es mayor que otro. == para saber si un número es igual que otro. <= para saber si un número es menor o igual que otro. >= para saber si un número es mayor o igual que otro.

A continuación se presentan ejemplos de cómo usar las anteriores funciones.

5 < 12  # ¿Será 5 menor que 12?
## [1] TRUE
# Comparando objetos
x <- 7
y <- 20 / 4
x == y  # ¿Será x igual a y?
## [1] FALSE
# Usando vectores
a <- c(1, 5, 2)
b <- c(2, 8, 3)
a > b  # Comparación término a término
## [1] FALSE FALSE FALSE

5. Operadores lógicos

En R están disponibles los operadores lógicos negación, conjunción y disyunción. A continuación el listado de los operadores entre los elementos x e y.

- !x: negacion de x

x <- c(5, 1.5, 2, 3, 2)
!(x < 2.5)
## [1]  TRUE FALSE FALSE  TRUE FALSE

_ x & y : conjunto entre x e y

x <- c(5, 8, 9)  
y <- c(4, 6, 3)

x < 4 
## [1] FALSE FALSE FALSE

-x | y: disyuncion entre x e y

6.Funciones sobre vectores

En R podemos destacar las siguientes funciones básicas sobre vectores numéricos.

min:

para obtener el mínimo de un vector.

myvec <- c(5, 3, 2, 1, 2, 0, NA, 0, 9, 6)
myvec
##  [1]  5  3  2  1  2  0 NA  0  9  6
min(myvec)
## [1] NA

max:

para obtener el máximo de un vector.

max(myvec, na.rm=T) 
## [1] 9

length:

para determinar la longitud de un vector. #### range: para obtener el rango de valores de un vector, entrega el mínimo y máximo.

range(myvec, na.rm=T)
## [1] 0 9

sum:

entrega la suma de todos los elementos del vector.

sum(myvec, na.rm=T)
## [1] 28

prod:

multiplica todos los elementos del vector.

prod(myvec, na.rm=T) 
## [1] 0

which.min:

nos entrega la posición en donde está el valor mínimo del vector.

which.min(myvec) 
## [1] 6

which.max:

nos da la posición del valor máximo del vector.

which.max(myvec)
## [1] 9

rev:

invierte un vector.

7. Funciones matemáticas

Otras funciones básicas muy utilizadas en estadística son: sin, cos, tan, asin, acos, atan, atan2, log, logb, log10, exp, sqrt, abs. A continuación algunos ejemplos de las anteriores funciones.

angulos <- c(0, pi/4, pi)
sin(angulos)
## [1] 0.000000e+00 7.071068e-01 1.224606e-16
tan(angulos)
## [1]  0.000000e+00  1.000000e+00 -1.224647e-16
log(100)
## [1] 4.60517
logb(125, base=5)
## [1] 3
exp(2)
## [1] 7.389056
exp(1:3)
## [1]  2.718282  7.389056 20.085537
27 ^ (1/3)
## [1] 3
sqrt(49) 
## [1] 7

Función seq

En R podemos crear secuencias de números de una forma sencilla usando la función seq, la estructura de esta función es:

Los argumentos de esta función son:

-from: valor de inicio de la secuencia. -to: valor de fin de la secuencia, no siempre se alcanza. -by: incremento de la secuencia. -length.out: longitud deseado de la secuencia.

seq(from=0, to=1, length.out = 11)
##  [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

Explicar cuáles son los Gráficos básicos, ventanas de R, personalizar, exportar.

Los gráficos básicos en R son una herramienta fundamental para visualizar datos y explorar patrones y tendencias. Aquí tienes una explicación sobre los gráficos básicos, las ventanas de R, cómo personalizarlos y cómo exportarlos:

Gráficos básicos en R:

Los gráficos básicos en R se crean utilizando funciones gráficas incorporadas, como plot(), hist(), boxplot(), entre otras. Estas funciones pueden usarse para crear una variedad de tipos de gráficos, como gráficos de dispersión, histogramas, diagramas de caja, gráficos de barras y gráficos de líneas.

Histograma:

es un gráfico de barras que representa la distribución de frecuencia de un conjunto de datos continuo o discretizado. En un histograma, el eje x representa los valores de los datos y el eje y representa la frecuencia o densidad de los datos.

datos <- rnorm(100, mean = 50, sd = 10) 

hist(datos, breaks = 10, col = "skyblue", main = "Histograma de datos", xlab = "Valores", ylab = "Frecuencia")

Diagrama de caja (boxplot):

también conocido como boxplot, es un gráfico que proporciona una representación visual de la distribución de un conjunto de datos y de sus características estadísticas clave, como la mediana, los cuartiles, los valores mínimo y máximo y los posibles valores atípicos.

datos_grupo1 <- rnorm(50, mean = 30, sd = 5)  
datos_grupo2 <- rnorm(50, mean = 40, sd = 8)  
datos_grupo3 <- rnorm(50, mean = 35, sd = 6)  

datos_combinados <- list("Grupo 1" = datos_grupo1, "Grupo 2" = datos_grupo2, "Grupo 3" = datos_grupo3)

boxplot(datos_combinados, col = c("skyblue", "lightgreen", "pink"), main = "Diagrama de Caja por Grupos", xlab = "Grupos", ylab = "Valores")

Ventanas de R:

Cuando se generan gráficos en R, estos se muestran por defecto en una ventana gráfica. La función plot() abre automáticamente una ventana gráfica si no está abierta. Además, R proporciona funciones para abrir, cerrar y manejar ventanas gráficas, como windows(), dev.off() y dev.new().

Ventana de Consola:

Es donde escribes comandos y ves los resultados de la ejecución de esos comandos.

Ventana de Script:

Donde escribes y guardas tus scripts R. Puedes abrir un nuevo script en RStudio con File > New File > R Script.

Ventana de Gráficos (Plots):

Muestra los gráficos generados. En RStudio, esta ventana está usualmente en la parte inferior derecha.

Ventana de Archivos/Panel de Trabajo:

Muestra los archivos y objetos en tu espacio de trabajo.

Personalizar gráficos:

Los gráficos en R son altamente personalizables. Puedes modificar aspectos como colores, tipos de líneas, etiquetas de ejes, títulos, leyendas, tamaño del gráfico y mucho más. Por ejemplo, puedes usar argumentos como col, lty, xlab, ylab, main, legend en las funciones gráficas para personalizar aspectos específicos del gráfico.

Exportar gráficos:

Una vez que has creado y personalizado tu gráfico en R, puedes exportarlo en diferentes formatos para su uso en informes, presentaciones u otros documentos. R ofrece diversas formas de exportar gráficos, como guardarlos como archivos de imagen (por ejemplo, PNG, JPEG, PDF) o copiarlos en el portapapeles para pegarlos en otros programas. Puedes utilizar funciones como png(), jpeg(), pdf(), svg(), tiff(), windows(), dev.copy(), dev.print() para exportar tus gráficos.

Explicar cómo se importa un archivo .csv, .xls y cargar una base de datos de cada una

Importar datos en R desde diferentes formatos es una tarea común y esencial para el análisis de datos. Aquí te explico cómo importar archivos .csv y .xls, así como cómo cargar una base de datos desde estos formatos.

Importar un Archivo CSV

Un archivo .csv (valores separados por comas) es uno de los formatos de datos más comunes. Para importar un archivo CSV en R, puedes usar la función read.csv().

ruta_csv <- "C:/Users/Laura/Downloads/osb_enftransm_covid19.archivo.csv"

print(ruta_csv)
## [1] "C:/Users/Laura/Downloads/osb_enftransm_covid19.archivo.csv"

Importar un archivo XLS (Excel):

Para importar un archivo XLS en RStudio, puedes utilizar la función read_excel() del paquete readxl. Primero, debes asegurarte de instalar y cargar el paquete readxl si aún no lo has hecho:

library(readxl)
MEDICINA_NEIVA <- read_excel("C:/Users/Laura/Downloads/MEDICINA NEIVA.xlsx")
## New names:
## • `` -> `...2`
View(MEDICINA_NEIVA)

comando str()

para saber que vector es numerico,logico,caracteristico

str(vector_caracteres)
##  chr [1:7] "Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sabado" ...

crear un Data Frame

comando para asociar vectores ejemplo:

y<-c("laura","andrea","brayan","michael","angel","david")
w<-c(20,22,20,20,24,24)
z<-c("pequeño","pequeño","mediano","mediano","alto","alto")
t<-c(52,48,60,53,60,62)
u<-data.frame(y,w,z,t)
print(u)
##         y  w       z  t
## 1   laura 20 pequeño 52
## 2  andrea 22 pequeño 48
## 3  brayan 20 mediano 60
## 4 michael 20 mediano 53
## 5   angel 24    alto 60
## 6   david 24    alto 62

Explicar cómo cargamos una base de datos: de una pagina web, de la bases de datos de r, o de que otra forma se podría.

1. Descargar datos desde una página web:

Puedes utilizar funciones como download.file() o paquetes como httr o rvest para descargar datos desde una página web. Por ejemplo, con el paquete httr, puedes usar la función GET() para obtener datos de una URL y luego manipularlos según sea necesario. Luego, puedes leer los datos descargados usando las funciones de lectura de datos de R como read.csv() o read.table().

2.Bases de datos integradas en R:

R incluye varias bases de datos integradas que puedes cargar directamente. Por ejemplo, el paquete datasets contiene conjuntos de datos de ejemplo como iris, mtcars, entre otros. Puedes cargar estos conjuntos de datos utilizando la función data().

3.Paquetes específicos:

Muchos paquetes de R incluyen conjuntos de datos que puedes cargar directamente. Por ejemplo, el paquete ggplot2 incluye el conjunto de datos diamonds. Puedes cargar este conjunto de datos utilizando la función data() o accediendo directamente al nombre del conjunto de datos con diamonds.

4. Conexión a bases de datos externas:

Puedes conectarte a bases de datos externas como MySQL, PostgreSQL, SQLite, etc., utilizando paquetes específicos como RMySQL, RPostgreSQL, RSQLite, entre otros. Estos paquetes te permiten ejecutar consultas SQL directamente desde R y cargar los resultados en un objeto de datos en RStudio.

url <- 'https://raw.githubusercontent.com/fhernanb/datos/master/babies.txt'

Estadística descriptiva:

Con el dataframe anterior hallar: la media, moda, desviación estándar de las variables creadas

summary()

comando para calcular media,moda y mediana de una tabla datos o vectores.

summary(u)
##       y                   w              z                   t        
##  Length:6           Min.   :20.00   Length:6           Min.   :48.00  
##  Class :character   1st Qu.:20.00   Class :character   1st Qu.:52.25  
##  Mode  :character   Median :21.00   Mode  :character   Median :56.50  
##                     Mean   :21.67                      Mean   :55.83  
##                     3rd Qu.:23.50                      3rd Qu.:60.00  
##                     Max.   :24.00                      Max.   :62.00

median()

mediana

median(w)
## [1] 21

mean()

media

mean(t)
## [1] 55.83333

mode()

moda install.packages(“DescTools”) library(DescTools)

mode(z)
## [1] "character"
desviacion <- sd(t)
print(desviacion)
## [1] 5.600595

Hallar un resumen de las medidas de tendencia central

summary(u)
##       y                   w              z                   t        
##  Length:6           Min.   :20.00   Length:6           Min.   :48.00  
##  Class :character   1st Qu.:20.00   Class :character   1st Qu.:52.25  
##  Mode  :character   Median :21.00   Mode  :character   Median :56.50  
##                     Mean   :21.67                      Mean   :55.83  
##                     3rd Qu.:23.50                      3rd Qu.:60.00  
##                     Max.   :24.00                      Max.   :62.00

Calcular la dispersión y forma (puede ser el grafico de dispersión)

varianza <- var(w)
desviacion_estandar <- sd(w)

Realizar tabla de distribución de frecuencias

tabla_frecuencia <- table(t)

print(tabla_frecuencia)
## t
## 48 52 53 60 62 
##  1  1  1  2  1

Paquete ggplot2: Graficar Un histograma, un diagrama de barras, un Scatter plots, grafico de bigotes, Line plots, grafico de densidad, pastel (pie charts), correlación lineal.

library(ggplot2)


ggplot(u, aes(x = w)) +
  geom_histogram(fill = "skyblue", color = "black", bins = 20) +
  labs(title = "Histograma", x = "Variable", y = "Frecuencia")

ggplot(u, aes(x = factor(y))) +
  geom_bar(fill = "green") +
  labs(title = "Diagrama de Barras", x = "Categoría", y = "Frecuencia")

ggplot(u, aes(x = z, y = t)) +
  geom_point(color = "red") +
  labs(title = "Gráfico de Dispersión", x = "z", y = "t")

Realizar un análisis descriptivo de cada grafico

Histograma:

El histograma muestra la distribución de la variable w. Podemos observar que la variable no se distribuye normalmente.

Diagrama de barras:

El diagrama de barras muestra la frecuencia de cada categoría en la variable y. Podemos ver la frecuencia de cada categoría y comparar su distribución. Por ejemplo, podemos observar cuántas observaciones pertenecen a cada categoría y si alguna categoría es más común que las otras.

Gráfico de dispersión (Scatter plot):

El gráfico de dispersión muestra la relación entre las variables z y t. Podemos observar si hay alguna relación entre estas dos variables. En este caso, parece haber una relación lineal nula entre las variables, ya que los puntos estan dispersos.

Gráfico de líneas (Line plot):

El gráfico de líneas muestra cómo cambia la variable t a lo largo de z. Podemos observar cualquier tendencia o patrón a lo largo de z.

Gráfico de densidad (Density plot):

El gráfico de densidad muestra la distribución de la variable w. Es similar a un histograma pero con una curva suavizada. Nos da una buena idea de la forma de la distribución de la variable y la concentración de valores.

Gráfico de pastel (Pie chart):

El gráfico de pastel muestra la proporción de cada categoría en la variable t. Nos da una vista rápida de cómo se distribuyen las observaciones entre las diferentes categorías. Sin embargo, a menudo se recomienda tener cuidado con los gráficos de pastel debido a la dificultad para comparar áreas de círculos.

Correlación lineal:

El gráfico de dispersión con una línea de regresión muestra la relación lineal entre las variables w y t. Podemos observar si hay una relación lineal entre estas dos variables y la fuerza de esa relación. En este caso, la línea de regresión roja muestra la tendencia lineal positiva entre las variables.

# Line plot
ggplot(u, aes(x =t, y = z)) +
  geom_line(color = "orange") +
  labs(title = "Gráfico de Líneas", x = "t", y = "z")

# Gráfico de densidad
ggplot(u, aes(x = w)) +
  geom_density(fill = "purple", alpha = 0.5) +
  labs(title = "Gráfico de Densidad", x = "Variable", y = "Densidad")

# Gráfico de pastel
ggplot(u, aes(x = "", fill = factor(t))) +
  geom_bar(width = 1) +
  coord_polar(theta = "y") +
  labs(title = "Gráfico de Pastel", fill = "t")

# Correlación lineal
ggplot(u, aes(x = w, y = t)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(title = "Correlación Lineal", x = "w", y = "t")
## `geom_smooth()` using formula = 'y ~ x'

Cargar la base de datos: https://raw.githubusercontent.com/fhernanb/datos/master/babies.txt y realizar un análisis descriptivo.

url <- 'https://raw.githubusercontent.com/fhernanb/datos/master/babies.txt'
dt <- read.table (url,header=TRUE, sep='\t')
View(dt)
varianza <- var(dt$age)
print(varianza)
## [1] NA
desviacion <- sd(dt$height)
print(desviacion) 
## [1] NA
desviacionage <- sd(dt$age)
print(desviacionage)  
## [1] NA
summary(dt)
##       bwt          gestation        parity               age       
##  Min.   : 55.0   Min.   :148.0   Length:1236        Min.   :15.00  
##  1st Qu.:108.8   1st Qu.:272.0   Class :character   1st Qu.:23.00  
##  Median :120.0   Median :280.0   Mode  :character   Median :26.00  
##  Mean   :119.6   Mean   :279.3                      Mean   :27.26  
##  3rd Qu.:131.0   3rd Qu.:288.0                      3rd Qu.:31.00  
##  Max.   :176.0   Max.   :353.0                      Max.   :45.00  
##                  NA's   :13                         NA's   :2      
##      height          weight         smoke          
##  Min.   :53.00   Min.   : 87.0   Length:1236       
##  1st Qu.:62.00   1st Qu.:114.8   Class :character  
##  Median :64.00   Median :125.0   Mode  :character  
##  Mean   :64.05   Mean   :128.6                     
##  3rd Qu.:66.00   3rd Qu.:139.0                     
##  Max.   :72.00   Max.   :250.0                     
##  NA's   :22      NA's   :36
median(dt$bwt)
## [1] 120
mean(dt$weight)
## [1] NA

Estadística inferencial

Determinar una hipótesis nula y una hipótesis alterna

-H_o= las madres gestantes son menores de 18 años

-h_1= las madres gestantes son mayores de 18 años

t.test(dt$age, mu = 18)
## 
##  One Sample t-test
## 
## data:  dt$age
## t = 56.236, df = 1233, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 18
## 95 percent confidence interval:
##  26.93238 27.57815
## sample estimates:
## mean of x 
##  27.25527

respuesta: como el valor p es menor que tu nivel de significancia 0.05 se rechaza la nula y se acepta la alterna por lo tanto las madres gestantes son mayores de 18 años.

Analizar las variables y seleccionar dos, estudiar si el comportamiento de los datos tiene una distribución normal

library(ggplot2)


variable1 <- dt$bwt
variable2 <- dt$height


hist(variable1, main = "Histograma de Variable 1", xlab = "Variable 1")

hist(variable2, main = "Histograma de Variable 2", xlab = "Variable 2")

ggplot(data = dt, aes(x = variable1)) +
  geom_density(fill = "blue", alpha = 0.5) +
  labs(title = "Gráfico de Densidad de Variable 1", x = "Variable 1")

ggplot(data = dt, aes(x = variable2)) +
  geom_density(fill = "green", alpha = 0.5) +
  labs(title = "Gráfico de Densidad de Variable 2", x = "Variable 2")
## Warning: Removed 22 rows containing non-finite outside the scale range
## (`stat_density()`).

shapiro.test(variable1)
## 
##  Shapiro-Wilk normality test
## 
## data:  variable1
## W = 0.99559, p-value = 0.001192
shapiro.test(variable2)
## 
##  Shapiro-Wilk normality test
## 
## data:  variable2
## W = 0.98461, p-value = 4.894e-10
resultado_prueba <- t.test(variable1, variable2)

print(resultado_prueba)
## 
##  Welch Two Sample t-test
## 
## data:  variable1 and variable2
## t = 106.01, df = 1283.5, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  54.50151 56.55666
## sample estimates:
## mean of x mean of y 
## 119.57686  64.04778

Seleccionar una base de datos de su preferencia y realizar lo siguiente:

Realizar un análisis descriptivo:

data("mtcars")
head(mtcars) 
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
mean(mtcars$drat)
## [1] 3.596563
summary(mtcars)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000
median(mtcars$vs)
## [1] 0
varianza <- var(mtcars$disp)
print(varianza)
## [1] 15360.8
desviacion <- sd(mtcars$qsec)
print(desviacion) 
## [1] 1.786943
cuartiles <- quantile(mtcars$cyl, probs = c(0.25, 0.5, 0.75))


cat("Primer cuartil (Q1):", cuartiles[1], "\n")
## Primer cuartil (Q1): 4
cat("Segundo cuartil (Q2, mediana):", cuartiles[2], "\n")
## Segundo cuartil (Q2, mediana): 6
cat("Tercer cuartil (Q3):", cuartiles[3], "\n")
## Tercer cuartil (Q3): 8

Realizar un análisis inferencial:

shapiro_test <- shapiro.test(mtcars$hp)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  mtcars$hp
## W = 0.93342, p-value = 0.04881
resultado_prueba <- t.test(mtcars$am, mtcars$gear)
print(resultado_prueba)
## 
##  Welch Two Sample t-test
## 
## data:  mtcars$am and mtcars$gear
## t = -20.839, df = 54.452, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -3.596868 -2.965632
## sample estimates:
## mean of x mean of y 
##   0.40625   3.68750

Definir la hipótesis nula y la hipótesis alterna

-H_0= los automoviles cuentan con mas de 8 carbs

-H_1= los automoviles cuentan con menos de 8 carb

t.test(mtcars$carb, mu =8)
## 
##  One Sample t-test
## 
## data:  mtcars$carb
## t = -18.168, df = 31, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 8
## 95 percent confidence interval:
##  2.230158 3.394842
## sample estimates:
## mean of x 
##    2.8125

respuesta: como el valor p es menor que tu nivel de significancia 0.05 se rechaza la nula y se acepta la alterna por lo tanto los automoviles cuentan con menos de 8 carb.

Contrastes de hipótesis: verificar dos variables considerando su comportamiento dentro de una distribución normal y, a partir de ello, aplicar pruebas paramétricas.

shapiro_test <- shapiro.test(mtcars$drat)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  mtcars$drat
## W = 0.94588, p-value = 0.1101
shapiro_test <- shapiro.test(mtcars$mpg)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  mtcars$mpg
## W = 0.94756, p-value = 0.1229
resultado_prueba <- t.test(mtcars$mpg, mtcars$drat)
print(resultado_prueba)
## 
##  Welch Two Sample t-test
## 
## data:  mtcars$mpg and mtcars$drat
## t = 15.421, df = 31.488, p-value = 3.164e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  14.31395 18.67417
## sample estimates:
## mean of x mean of y 
## 20.090625  3.596563

Verificar dos variables cuyo comportamiento no se ajuste a una distribución normal y, a partir de ello, aplicar pruebas no paramétricas.

shapiro_test <- shapiro.test(mtcars$disp)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  mtcars$disp
## W = 0.92001, p-value = 0.02081
shapiro_test <- shapiro.test(mtcars$carb)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  mtcars$carb
## W = 0.8511, p-value = 0.0004382
wilcox.test(mtcars$disp, mtcars$carb)
## Warning in wilcox.test.default(mtcars$disp, mtcars$carb): cannot compute exact
## p-value with ties
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  mtcars$disp and mtcars$carb
## W = 1024, p-value = 5.222e-12
## alternative hypothesis: true location shift is not equal to 0

Realizar un análisis de regresión simple.

modelo <- lm(mtcars$cyl ~ mtcars$qsec, data = mtcars)

Realizar un Análisis de varianza.

modelo_anova <- aov(mtcars$vs ~ mtcars$hp, data = mtcars)

Explicar la definición y dar un ejemplo de cada una de las pruebas paramétricas

son pruebas estadísticas que hacen suposiciones sobre la distribución de los datos subyacentes en la población. Estas pruebas son más sensibles y poderosas cuando se cumplen los supuestos subyacentes.

1.Prueba t de Student:

se utiliza para comparar las medias de dos grupos independientes para determinar si hay una diferencia significativa entre ellas.

data("Orange")
shapiro_test <- shapiro.test(Orange$age)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  Orange$age
## W = 0.90934, p-value = 0.007118
shapiro_test <- shapiro.test(Orange$circumference)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  Orange$circumference
## W = 0.94591, p-value = 0.08483
resultado_prueba <- t.test(Orange$age,Orange$circumference)
print(resultado_prueba)
## 
##  Welch Two Sample t-test
## 
## data:  Orange$age and Orange$circumference
## t = 9.6323, df = 34.929, p-value = 2.286e-11
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  636.3407 976.2308
## sample estimates:
## mean of x mean of y 
##  922.1429  115.8571

2.ANOVA (Análisis de Varianza):

se utiliza para comparar las medias de tres o más grupos independientes para determinar si al menos uno de los grupos difiere significativamente de los demás.

data("Orange")
shapiro_test <- shapiro.test(Orange$age)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  Orange$age
## W = 0.90934, p-value = 0.007118
shapiro_test <- shapiro.test(Orange$circumference)

print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  Orange$circumference
## W = 0.94591, p-value = 0.08483
anova_result <- aov(Orange$circumference~ Orange$age, data=Orange)

3. Prueba de correlación de Pearson:

se utiliza para evaluar la relación lineal entre dos variables continuas.

cor.test(Orange$age, Orange$circumference, method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  Orange$age and Orange$circumference
## t = 12.9, df = 33, p-value = 1.931e-14
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8342364 0.9557955
## sample estimates:
##       cor 
## 0.9135189

4. Regresión lineal:

La regresión lineal se utiliza para modelar la relación entre una variable dependiente continua y una o más variables independientes, asumiendo una relación lineal entre ellas.

reg1 <- lm(Orange$age ~ Orange$circumference, data = Orange)
summary(reg1)
## 
## Call:
## lm(formula = Orange$age ~ Orange$circumference, data = Orange)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -317.88 -140.90  -17.20   96.54  471.16 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           16.6036    78.1406   0.212    0.833    
## Orange$circumference   7.8160     0.6059  12.900 1.93e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 203.1 on 33 degrees of freedom
## Multiple R-squared:  0.8345, Adjusted R-squared:  0.8295 
## F-statistic: 166.4 on 1 and 33 DF,  p-value: 1.931e-14

Explicar la definición y dar un ejemplo de cada una de las pruebas no paramétricas

son pruebas estadísticas que no hacen suposiciones sobre la distribución de los datos subyacentes en la población. Estas pruebas son útiles cuando los datos no siguen una distribución normal o cuando la escala de medición es ordinal en lugar de intervalo o de razón.

1.Prueba de Wilcoxon

se utiliza cuando las diferencias entre las observaciones no siguen una distribución normal.

antes <- c(70, 75, 80, 85, 90)
despues <- c(75, 80, 85, 88, 92)

resultado <- wilcox.test(antes, despues, paired = TRUE)
## Warning in wilcox.test.default(antes, despues, paired = TRUE): cannot compute
## exact p-value with ties
print(resultado)
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  antes and despues
## V = 0, p-value = 0.05447
## alternative hypothesis: true location shift is not equal to 0

2.Prueba de la U de Mann-Whitney con muestras pareadas:

se utiliza para comparar las medianas de dos grupos emparejados o dependientes.

hombres <- c(170, 175, 180, 185, 190)
mujeres <- c(160, 165, 170, 175, 180)

resultado <- wilcox.test(hombres, mujeres)
## Warning in wilcox.test.default(hombres, mujeres): cannot compute exact p-value
## with ties
print(resultado)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  hombres and mujeres
## W = 20.5, p-value = 0.1138
## alternative hypothesis: true location shift is not equal to 0

3.Prueba de Kruskal-Wallis:

Se utiliza para determinar si hay diferencias significativas en las medianas entre tres o más grupos.

grupo1 <- c(10, 12, 15, 18, 20)
grupo2 <- c(11, 14, 16, 19, 21)
grupo3 <- c(9, 13, 17, 22, 23)

resultado <- kruskal.test(list(grupo1, grupo2, grupo3))

print(resultado)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  list(grupo1, grupo2, grupo3)
## Kruskal-Wallis chi-squared = 0.42, df = 2, p-value = 0.8106

conclusion: Es importante recordar que “no rechazar la hipótesis nula” no significa que la hipótesis nula sea verdadera, sino que no hay suficiente evidencia en los datos para afirmar lo contrario. Además, es crucial considerar el contexto del estudio y la relevancia práctica de los resultados al interpretar los hallazgos de la prueba de hipótesis.