library(ggcorrplot)
## Loading required package: ggplot2
library(readxl)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ✔ readr 2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(Amelia)
## Loading required package: Rcpp
## ##
## ## Amelia II: Multiple Imputation
## ## (Version 1.8.2, built: 2024-04-10)
## ## Copyright (C) 2005-2024 James Honaker, Gary King and Matthew Blackwell
## ## Refer to http://gking.harvard.edu/amelia/ for more information
## ##
library(janitor)
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(magrittr)
##
## Attaching package: 'magrittr'
##
## The following object is masked from 'package:purrr':
##
## set_names
##
## The following object is masked from 'package:tidyr':
##
## extract
library(ggplot2)
library(dplyr)
library(pastecs)
##
## Attaching package: 'pastecs'
##
## The following object is masked from 'package:magrittr':
##
## extract
##
## The following object is masked from 'package:tidyr':
##
## extract
##
## The following objects are masked from 'package:dplyr':
##
## first, last
# Leer el archivo de Excel
datos<- read_excel("Datos_Final.xlsx")
summary(datos)
## ID Edad Género Nivel Educativo
## Min. : 1.0 Min. :18.00 Length:845 Length:845
## 1st Qu.:206.0 1st Qu.:31.00 Class :character Class :character
## Median :422.0 Median :45.00 Mode :character Mode :character
## Mean :422.2 Mean :43.97
## 3rd Qu.:635.0 3rd Qu.:56.00
## Max. :845.0 Max. :69.00
## NA's :84 NA's :84
## Estado Civil Ocupación Ingresos Estrés
## Length:845 Length:845 Min. : 506 Min. : 1.000
## Class :character Class :character 1st Qu.:1804 1st Qu.: 3.000
## Mode :character Mode :character Median :2968 Median : 6.000
## Mean :2862 Mean : 5.573
## 3rd Qu.:3974 3rd Qu.: 8.000
## Max. :4998 Max. :10.000
## NA's :84 NA's :84
## Ansiedad Depresión Satisfacción con la vida Soporte Social
## Min. : 1.000 Min. : 1.000 Min. : 1.00 Min. : 1.000
## 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.00 1st Qu.: 3.000
## Median : 6.000 Median : 6.000 Median : 5.00 Median : 6.000
## Mean : 5.551 Mean : 5.594 Mean : 5.49 Mean : 5.548
## 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.00 3rd Qu.: 8.000
## Max. :10.000 Max. :10.000 Max. :10.00 Max. :10.000
## NA's :84 NA's :84 NA's :84 NA's :84
## Sueño Actividad Física Consumo de Agua Felicidad
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
## 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.000
## Median : 5.000 Median : 5.000 Median : 6.000 Median : 6.000
## Mean : 5.523 Mean : 5.434 Mean : 5.653 Mean : 5.548
## 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.000
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## NA's :84 NA's :84 NA's :84 NA's :84
## Estatura
## Min. :150.0
## 1st Qu.:162.0
## Median :176.0
## Mean :174.9
## 3rd Qu.:187.0
## Max. :199.0
## NA's :84
dim(datos)
## [1] 845 17
str(datos)
## tibble [845 × 17] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:845] 1 2 3 4 NA 6 7 8 9 10 ...
## $ Edad : num [1:845] 56 69 46 32 60 25 38 56 36 40 ...
## $ Género : chr [1:845] "Masculino" "Otro" "Masculino" "Masculino" ...
## $ Nivel Educativo : chr [1:845] "Primaria" "Universitario" "Posgrado" "Secundaria" ...
## $ Estado Civil : chr [1:845] "Casado" "Soltero" "Viudo" "Soltero" ...
## $ Ocupación : chr [1:845] "Empleado" "Desempleado" "Desempleado" "Estudiante" ...
## $ Ingresos : num [1:845] 2366 2496 1409 4805 3689 ...
## $ Estrés : num [1:845] 4 9 10 3 8 1 9 9 10 2 ...
## $ Ansiedad : num [1:845] 4 9 NA 7 6 NA 5 1 1 9 ...
## $ Depresión : num [1:845] 3 2 NA 4 8 3 1 NA NA 1 ...
## $ Satisfacción con la vida: num [1:845] NA 4 8 5 NA 9 10 NA 1 9 ...
## $ Soporte Social : num [1:845] 7 6 6 NA 3 3 10 9 8 5 ...
## $ Sueño : num [1:845] NA NA 2 3 6 7 4 1 NA 9 ...
## $ Actividad Física : num [1:845] 5 8 5 NA 8 2 3 9 5 5 ...
## $ Consumo de Agua : num [1:845] 4 8 NA 7 10 NA 10 5 7 4 ...
## $ Felicidad : num [1:845] 1 5 8 7 5 3 1 7 3 4 ...
## $ Estatura : num [1:845] 196 172 NA 184 174 181 171 157 187 167 ...
Segun el resumen de los datos se puede observar que se tienen 13/17 variables cuantitativas y 4/17 variables cualitativas.
se puede notar que la variable ID presenta NAs y se presenta de manera numérica pero debe tratarse como cadena debido a que los resumenes numericos que se puden extraer son insignificantes, al tener NAs pero ser enumeración se puede generar nuevamente.
# Eliminar la columna "ID" del dataframe original
datos_sin_ID <- select(datos, -ID)
# Generar una nueva secuencia numérica del mismo tamaño que el dataframe
nueva_ID <- 1:nrow(datos)
# Agregar la nueva columna "ID" al dataframe
nuevo_datos <- bind_cols(ID = nueva_ID, datos_sin_ID)
# Verificar el nuevo dataframe
print(head(nuevo_datos))
## # A tibble: 6 × 17
## ID Edad Género `Nivel Educativo` `Estado Civil` Ocupación Ingresos Estrés
## <int> <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 1 56 Mascul… Primaria Casado Empleado 2366 4
## 2 2 69 Otro Universitario Soltero Desemple… 2496 9
## 3 3 46 Mascul… Posgrado Viudo Desemple… 1409 10
## 4 4 32 Mascul… Secundaria Soltero Estudian… 4805 3
## 5 5 60 Femeni… Universitario Casado Empleado 3689 8
## 6 6 25 <NA> Posgrado Viudo Autónomo 1270 1
## # ℹ 9 more variables: Ansiedad <dbl>, Depresión <dbl>,
## # `Satisfacción con la vida` <dbl>, `Soporte Social` <dbl>, Sueño <dbl>,
## # `Actividad Física` <dbl>, `Consumo de Agua` <dbl>, Felicidad <dbl>,
## # Estatura <dbl>
nuevo_datos$`ID` <- as.character(nuevo_datos$`ID`)
Se visualizan nuevamente el tipo de datos y se limpian los nombres de las variables.
str(datos)
## tibble [845 × 17] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:845] 1 2 3 4 NA 6 7 8 9 10 ...
## $ Edad : num [1:845] 56 69 46 32 60 25 38 56 36 40 ...
## $ Género : chr [1:845] "Masculino" "Otro" "Masculino" "Masculino" ...
## $ Nivel Educativo : chr [1:845] "Primaria" "Universitario" "Posgrado" "Secundaria" ...
## $ Estado Civil : chr [1:845] "Casado" "Soltero" "Viudo" "Soltero" ...
## $ Ocupación : chr [1:845] "Empleado" "Desempleado" "Desempleado" "Estudiante" ...
## $ Ingresos : num [1:845] 2366 2496 1409 4805 3689 ...
## $ Estrés : num [1:845] 4 9 10 3 8 1 9 9 10 2 ...
## $ Ansiedad : num [1:845] 4 9 NA 7 6 NA 5 1 1 9 ...
## $ Depresión : num [1:845] 3 2 NA 4 8 3 1 NA NA 1 ...
## $ Satisfacción con la vida: num [1:845] NA 4 8 5 NA 9 10 NA 1 9 ...
## $ Soporte Social : num [1:845] 7 6 6 NA 3 3 10 9 8 5 ...
## $ Sueño : num [1:845] NA NA 2 3 6 7 4 1 NA 9 ...
## $ Actividad Física : num [1:845] 5 8 5 NA 8 2 3 9 5 5 ...
## $ Consumo de Agua : num [1:845] 4 8 NA 7 10 NA 10 5 7 4 ...
## $ Felicidad : num [1:845] 1 5 8 7 5 3 1 7 3 4 ...
## $ Estatura : num [1:845] 196 172 NA 184 174 181 171 157 187 167 ...
names(datos)
## [1] "ID" "Edad"
## [3] "Género" "Nivel Educativo"
## [5] "Estado Civil" "Ocupación"
## [7] "Ingresos" "Estrés"
## [9] "Ansiedad" "Depresión"
## [11] "Satisfacción con la vida" "Soporte Social"
## [13] "Sueño" "Actividad Física"
## [15] "Consumo de Agua" "Felicidad"
## [17] "Estatura"
datos %<>% clean_names
names(datos)
## [1] "id" "edad"
## [3] "genero" "nivel_educativo"
## [5] "estado_civil" "ocupacion"
## [7] "ingresos" "estres"
## [9] "ansiedad" "depresion"
## [11] "satisfaccion_con_la_vida" "soporte_social"
## [13] "sueno" "actividad_fisica"
## [15] "consumo_de_agua" "felicidad"
## [17] "estatura"
Ahora, segun el resumen de los datos se puede observar que se tienen 12/17 variables cuantitativas y 5/17 variables cualitativas.
unique(datos$genero)
## [1] "Masculino" "Otro" "Femenino" NA
unique(datos$nivel_educativo)
## [1] "Primaria" "Universitario" "Posgrado" "Secundaria"
## [5] NA
unique(datos$estado_civil)
## [1] "Casado" "Soltero" "Viudo" "Divorciado" NA
unique(datos$ocupacion)
## [1] "Empleado" "Desempleado" "Estudiante" "Autónomo" NA
missmap(nuevo_datos, main="Mapa de Datos Faltantes")
## Warning: Unknown or uninitialised column: `arguments`.
## Unknown or uninitialised column: `arguments`.
## Warning: Unknown or uninitialised column: `imputations`.
Según el gráfico de datos faltantes se puede observar que un 9% de los datos son NA.
ks_test <- function(x) {
ks.test(x, "pnorm", mean = mean(x, na.rm = TRUE), sd = sd(x, na.rm = TRUE))$p.value
}
# Aplicar la prueba de Kolmogorov-Smirnov a todas las variables numéricas
normality_tests <- nuevo_datos %>%
summarise(across(where(is.numeric), ~ ks_test(.x))) %>%
pivot_longer(cols = everything(), names_to = "Variable", values_to = "P-Value")
## Warning: There were 12 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `across(where(is.numeric), ~ks_test(.x))`.
## Caused by warning in `ks.test.default()`:
## ! ties should not be present for the one-sample Kolmogorov-Smirnov test
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 11 remaining warnings.
# Agregar una columna indicando si los datos son normales o no
normality_tests <- normality_tests %>%
mutate(Normal = ifelse(`P-Value` < 0.05, "No", "Sí"))
# Mostrar los resultados
print(normality_tests)
## # A tibble: 12 × 3
## Variable `P-Value` Normal
## <chr> <dbl> <chr>
## 1 Edad 1.65e- 3 No
## 2 Ingresos 5.02e- 5 No
## 3 Estrés 2.27e- 8 No
## 4 Ansiedad 1.60e- 7 No
## 5 Depresión 6.58e- 9 No
## 6 Satisfacción con la vida 4.08e- 8 No
## 7 Soporte Social 2.86e- 9 No
## 8 Sueño 2.00e- 9 No
## 9 Actividad Física 1.73e- 8 No
## 10 Consumo de Agua 9.35e-11 No
## 11 Felicidad 5.04e- 7 No
## 12 Estatura 5.50e- 5 No
Segun los resultados de la prueba shapiro para la normalidad en las variables cuantitativas se concluye que los datos no son normales por lo que que se decide reemplazar los NA con la mediana y en las variables cualitativas por la moda.
# Función para rellenar variables cuantitativas con la mediana
rellenar_con_mediana <- function(x) {
x[is.na(x)] <- median(x, na.rm = TRUE)
return(x)
}
# Función para calcular la moda
calcular_moda <- function(x) {
uniq_vals <- unique(na.omit(x))
uniq_vals[which.max(tabulate(match(x, uniq_vals)))]
}
# Función para rellenar NA en variables cualitativas con la moda
rellenar_con_moda <- function(x) {
moda <- calcular_moda(x)
x[is.na(x)] <- moda
return(x)
}
Ahora, se hace uso de las anteriores funciones para rellenar los NA en el data frame nuevo.
nuevo_datos <- nuevo_datos %>%
mutate(across(where(is.numeric), rellenar_con_mediana)) %>%
mutate(across(where(is.character), rellenar_con_moda)) %>%
mutate(across(where(is.factor), ~ as.character(.) %>% rellenar_con_moda() %>% as.factor()))
# Verificar que no haya NA en el nuevo dataframe
missmap(nuevo_datos, main="Mapa de Datos Faltantes")
## Warning: Unknown or uninitialised column: `arguments`.
## Unknown or uninitialised column: `arguments`.
## Warning: Unknown or uninitialised column: `imputations`.
sum(is.na(nuevo_datos))
## [1] 0
Teniendo en cuenta el tratamiento de los NA y que ya no se presentan datos faltantes podemos proceder con el análisis.
names(nuevo_datos)
## [1] "ID" "Edad"
## [3] "Género" "Nivel Educativo"
## [5] "Estado Civil" "Ocupación"
## [7] "Ingresos" "Estrés"
## [9] "Ansiedad" "Depresión"
## [11] "Satisfacción con la vida" "Soporte Social"
## [13] "Sueño" "Actividad Física"
## [15] "Consumo de Agua" "Felicidad"
## [17] "Estatura"
nuevo_datos %<>% clean_names
names(nuevo_datos)
## [1] "id" "edad"
## [3] "genero" "nivel_educativo"
## [5] "estado_civil" "ocupacion"
## [7] "ingresos" "estres"
## [9] "ansiedad" "depresion"
## [11] "satisfaccion_con_la_vida" "soporte_social"
## [13] "sueno" "actividad_fisica"
## [15] "consumo_de_agua" "felicidad"
## [17] "estatura"
summary(nuevo_datos)
## id edad genero nivel_educativo
## Length:845 Min. :18.00 Length:845 Length:845
## Class :character 1st Qu.:33.00 Class :character Class :character
## Mode :character Median :45.00 Mode :character Mode :character
## Mean :44.08
## 3rd Qu.:55.00
## Max. :69.00
## estado_civil ocupacion ingresos estres
## Length:845 Length:845 Min. : 506 Min. : 1.000
## Class :character Class :character 1st Qu.:1939 1st Qu.: 3.000
## Mode :character Mode :character Median :2968 Median : 6.000
## Mean :2873 Mean : 5.615
## 3rd Qu.:3861 3rd Qu.: 8.000
## Max. :4998 Max. :10.000
## ansiedad depresion satisfaccion_con_la_vida soporte_social
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
## 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.000
## Median : 6.000 Median : 6.000 Median : 5.000 Median : 6.000
## Mean : 5.595 Mean : 5.634 Mean : 5.441 Mean : 5.593
## 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.000
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## sueno actividad_fisica consumo_de_agua felicidad
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
## 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.000 1st Qu.: 3.000
## Median : 5.000 Median : 5.000 Median : 6.000 Median : 6.000
## Mean : 5.471 Mean : 5.391 Mean : 5.688 Mean : 5.593
## 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.000 3rd Qu.: 8.000
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## estatura
## Min. :150
## 1st Qu.:163
## Median :176
## Mean :175
## 3rd Qu.:186
## Max. :199
dim(nuevo_datos)
## [1] 845 17
str(nuevo_datos)
## tibble [845 × 17] (S3: tbl_df/tbl/data.frame)
## $ id : chr [1:845] "1" "2" "3" "4" ...
## $ edad : num [1:845] 56 69 46 32 60 25 38 56 36 40 ...
## $ genero : chr [1:845] "Masculino" "Otro" "Masculino" "Masculino" ...
## $ nivel_educativo : chr [1:845] "Primaria" "Universitario" "Posgrado" "Secundaria" ...
## $ estado_civil : chr [1:845] "Casado" "Soltero" "Viudo" "Soltero" ...
## $ ocupacion : chr [1:845] "Empleado" "Desempleado" "Desempleado" "Estudiante" ...
## $ ingresos : num [1:845] 2366 2496 1409 4805 3689 ...
## $ estres : num [1:845] 4 9 10 3 8 1 9 9 10 2 ...
## $ ansiedad : num [1:845] 4 9 6 7 6 6 5 1 1 9 ...
## $ depresion : num [1:845] 3 2 6 4 8 3 1 6 6 1 ...
## $ satisfaccion_con_la_vida: num [1:845] 5 4 8 5 5 9 10 5 1 9 ...
## $ soporte_social : num [1:845] 7 6 6 6 3 3 10 9 8 5 ...
## $ sueno : num [1:845] 5 5 2 3 6 7 4 1 5 9 ...
## $ actividad_fisica : num [1:845] 5 8 5 5 8 2 3 9 5 5 ...
## $ consumo_de_agua : num [1:845] 4 8 6 7 10 6 10 5 7 4 ...
## $ felicidad : num [1:845] 1 5 8 7 5 3 1 7 3 4 ...
## $ estatura : num [1:845] 196 172 176 184 174 181 171 157 187 167 ...
unique(nuevo_datos$genero)
## [1] "Masculino" "Otro" "Femenino"
unique(nuevo_datos$nivel_educativo)
## [1] "Primaria" "Universitario" "Posgrado" "Secundaria"
unique(nuevo_datos$estado_civil)
## [1] "Casado" "Soltero" "Viudo" "Divorciado"
unique(nuevo_datos$ocupacion)
## [1] "Empleado" "Desempleado" "Estudiante" "Autónomo"
Hipótesis nula (H0): La hipótesis nula en este caso sería que no hay correlación entre las dos variables evaluadas, es decir, que el coeficiente de correlación poblacional entre ‘Estrés’ y ‘Ansiedad’ es igual a cero (ρ = 0).
Hipótesis alternativa (H1): La hipótesis alternativa sugiere que sí existe una correlación significativa entre las variables ‘Estrés’ y ‘Ansiedad’. En términos prácticos, el coeficiente de correlación poblacional entre estas variables no es igual a cero (ρ ≠ 0).
correlacion <- cor.test(nuevo_datos$estres, nuevo_datos$ansiedad, method = "spearman")
## Warning in cor.test.default(nuevo_datos$estres, nuevo_datos$ansiedad, method =
## "spearman"): Cannot compute exact p-value with ties
# Mostrar resultados de la correlación
print(correlacion)
##
## Spearman's rank correlation rho
##
## data: nuevo_datos$estres and nuevo_datos$ansiedad
## S = 101761369, p-value = 0.7284
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## -0.01196309
correlacion <- cor(nuevo_datos %>% select(where(is.numeric)))
print(correlacion)
## edad ingresos estres ansiedad
## edad 1.000000000 0.022507084 -0.022663635 -0.039601996
## ingresos 0.022507084 1.000000000 -0.015939488 -0.022579629
## estres -0.022663635 -0.015939488 1.000000000 -0.011315969
## ansiedad -0.039601996 -0.022579629 -0.011315969 1.000000000
## depresion 0.013737034 0.010224829 0.010748558 -0.005242774
## satisfaccion_con_la_vida -0.027085553 -0.039865760 0.007181799 0.014872722
## soporte_social -0.009613738 0.026795917 0.006900329 0.004866209
## sueno 0.033550792 0.016819356 -0.022383423 0.010549268
## actividad_fisica -0.008511935 -0.002547278 -0.009945902 -0.009026905
## consumo_de_agua 0.013275091 0.054575069 -0.041379987 -0.001582623
## felicidad 0.007471140 0.007982335 0.001214461 0.019243826
## estatura -0.040148126 0.029544095 -0.044603022 -0.016389794
## depresion satisfaccion_con_la_vida soporte_social
## edad 0.013737034 -0.027085553 -0.009613738
## ingresos 0.010224829 -0.039865760 0.026795917
## estres 0.010748558 0.007181799 0.006900329
## ansiedad -0.005242774 0.014872722 0.004866209
## depresion 1.000000000 -0.014100873 -0.033209334
## satisfaccion_con_la_vida -0.014100873 1.000000000 0.040120971
## soporte_social -0.033209334 0.040120971 1.000000000
## sueno -0.014110096 -0.013954733 0.033982253
## actividad_fisica 0.059900828 -0.029083252 0.006653344
## consumo_de_agua -0.015361086 -0.031425085 0.002732885
## felicidad 0.050800472 -0.042694315 -0.053924028
## estatura 0.023867448 -0.006786032 -0.043067324
## sueno actividad_fisica consumo_de_agua
## edad 0.033550792 -0.008511935 0.013275091
## ingresos 0.016819356 -0.002547278 0.054575069
## estres -0.022383423 -0.009945902 -0.041379987
## ansiedad 0.010549268 -0.009026905 -0.001582623
## depresion -0.014110096 0.059900828 -0.015361086
## satisfaccion_con_la_vida -0.013954733 -0.029083252 -0.031425085
## soporte_social 0.033982253 0.006653344 0.002732885
## sueno 1.000000000 0.005037824 0.080155090
## actividad_fisica 0.005037824 1.000000000 -0.023555620
## consumo_de_agua 0.080155090 -0.023555620 1.000000000
## felicidad 0.023907067 0.004238055 0.031415540
## estatura -0.006489677 0.012674049 0.056107150
## felicidad estatura
## edad 0.007471140 -0.040148126
## ingresos 0.007982335 0.029544095
## estres 0.001214461 -0.044603022
## ansiedad 0.019243826 -0.016389794
## depresion 0.050800472 0.023867448
## satisfaccion_con_la_vida -0.042694315 -0.006786032
## soporte_social -0.053924028 -0.043067324
## sueno 0.023907067 -0.006489677
## actividad_fisica 0.004238055 0.012674049
## consumo_de_agua 0.031415540 0.056107150
## felicidad 1.000000000 0.101397652
## estatura 0.101397652 1.000000000
ggcorrplot(correlacion, lab = TRUE)
La prueba de correlación evalúa si hay una relación lineal significativa entre las variables ‘Estrés’ y ‘Ansiedad’. El resultado incluye el coeficiente de correlación de Spearman (r), el valor p (p-value), y el intervalo de confianza. Un valor p menor a 0.05 indica que hay evidencia suficiente para rechazar la hipótesis nula de que no hay correlación, sugiriendo que existe una relación significativa entre las dos variables.
Interpretación
El valor p (p-value) de 0.6717 es mayor que el nivel de significancia típico de 0.05. Por lo tanto, no hay suficiente evidencia para rechazar la hipótesis nula de que la correlación entre ‘Estrés’ y ‘Ansiedad’ es igual a cero. Esto sugiere que, en esta muestra, no se encuentra una correlación significativa entre estas dos variables. El coeficiente de correlación muestral es -0.01625554, lo que indica una correlación muy débil y cercana a cero. El intervalo de confianza también incluye el valor cero, lo que respalda la conclusión de que la correlación entre estas variables no es estadísticamente significativa.
Hipótesis nula (H0): La hipótesis nula para la prueba de regresión lineal es que el coeficiente de regresión de la variable independiente (‘Actividad Física’) es igual a cero, lo que significa que no hay relación entre la variable independiente y la variable dependiente (‘Felicidad’). En otras palabras, el modelo de regresión no explica la variabilidad de ‘Felicidad’ en función de ‘Actividad Física’.
Hipótesis alternativa (H1): La hipótesis alternativa es que el coeficiente de regresión de la variable independiente (‘Actividad Física’) no es igual a cero, lo que sugiere que hay una relación significativa entre ‘Actividad Física’ y ‘Felicidad’. En este caso, el modelo de regresión sí explica la variabilidad de ‘Felicidad’ en función de ‘Actividad Física’.
correlacion <- cor.test(nuevo_datos$actividad_fisica, nuevo_datos$felicidad, method = "spearman")
## Warning in cor.test.default(nuevo_datos$actividad_fisica,
## nuevo_datos$felicidad, : Cannot compute exact p-value with ties
# Mostrar resultados de la correlación
print(correlacion)
##
## Spearman's rank correlation rho
##
## data: nuevo_datos$actividad_fisica and nuevo_datos$felicidad
## S = 99928888, p-value = 0.8558
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.006259967
modelo <- lm(felicidad ~ actividad_fisica, data = nuevo_datos)
# Mostrar un resumen del modelo
summary(modelo)
##
## Call:
## lm(formula = felicidad ~ actividad_fisica, data = nuevo_datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6127 -2.5740 0.3959 2.4002 4.4260
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.569716 0.210602 26.447 <2e-16 ***
## actividad_fisica 0.004301 0.034952 0.123 0.902
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.735 on 843 degrees of freedom
## Multiple R-squared: 1.796e-05, Adjusted R-squared: -0.001168
## F-statistic: 0.01514 on 1 and 843 DF, p-value: 0.9021
ggplot(nuevo_datos, aes(x = ansiedad, y = estres)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(title = "Regresión entre Estrés y Ansiedad", x = "Ansiedad", y = "Estrés")
## `geom_smooth()` using formula = 'y ~ x'
La prueba de regresión lineal evalúa si ‘Actividad Física’ es un predictor significativo de ‘Felicidad’. El resumen del modelo incluye el valor de R cuadrado, los coeficientes del modelo, el valor p para cada coeficiente, y otros estadísticos. Un valor p menor a 0.05 para el coeficiente de ‘Actividad Física’ indica que esta variable es un predictor significativo de ‘Felicidad’, sugiriendo que cambios en ‘Actividad Física’ están asociados con cambios en ‘Felicidad’.
Estadísticas del modelo:
El error estándar residual es 2.837. El R cuadrado múltiple es extremadamente bajo (1.895e-05), lo que indica que el modelo explica muy poco de la variabilidad de la variable dependiente (‘Felicidad’) en función de la variable independiente (‘Actividad Física’). El p-value del estadístico F es 0.9095, lo que indica que el modelo en su conjunto no es significativo.
Interpretación:
La variable ‘Actividad Física’ no tiene un efecto significativo en la ‘Felicidad’ según los resultados del modelo de regresión. Esto se evidencia por el coeficiente de ‘actividad_fisica’ que no es significativamente diferente de cero (p-value = 0.91) y un R cuadrado muy bajo. El modelo en general no es significativo (p-value del estadístico F = 0.9095), lo que sugiere que la relación entre ‘Actividad Física’ y ‘Felicidad’ no es lineal o que otros factores no incluidos en el modelo pueden estar influyendo en la ‘Felicidad’.
Hipótesis Nula (Ho): No existe una asociación entre el género y el nivel educativo
Hipótesis Alternativa (H1): Existe una asociación entre esas dos variables categóricas
#Creamos una tabla de contingencia con las variables a estudiar
tabla_de_contingencia = table(nuevo_datos$genero , nuevo_datos$nivel_educativo)
#Aplicamos la prueba Chi-Cuadrado
resultado <- chisq.test(tabla_de_contingencia)
print(resultado)
##
## Pearson's Chi-squared test
##
## data: tabla_de_contingencia
## X-squared = 2.7887, df = 6, p-value = 0.8349
if (resultado$p.value < 0.05) {
print("Se rechaza la hipótesis nula, por lo que se afirma que existe una asociación entre estas dos variables")
} else {
print("No se rechaza la hipótesis nula. Por lo tanto, no es posible concluir que existe una asociación entre el género y el nivel educativo.")
}
## [1] "No se rechaza la hipótesis nula. Por lo tanto, no es posible concluir que existe una asociación entre el género y el nivel educativo."
Interpretación Teniendo en cuenta que el p-valor arrojado por la prueba es de 0.6666, es decir, es mayor que el nivel de significancia considerado en este estudio (0.05) no se rechaza la hipótesis nula, por lo que no es posible concluir que existe una asociación entre el género y el nivel educativo. Entonces, las variables género y nivel educativo son independientes.
Hipótesis Nula (Ho): La distribución de la ocupación es la misma para los diferentes estados civiles
Hipótesis Alternativa (H1): La distribución de la ocupación difiere entre los distintos estados civiles
#Creamos la tabla de contingencia
tabla_contingencia <- table(nuevo_datos$estado_civil , nuevo_datos$ocupacion)
#Aplicamos la prueba
resultado_prueba <- chisq.test(tabla_contingencia)
print(resultado_prueba)
##
## Pearson's Chi-squared test
##
## data: tabla_contingencia
## X-squared = 5.4107, df = 9, p-value = 0.7971
#Conclusiones
if (resultado_prueba$p.value < 0.05) {
print("Se rechaza la hipótesis nula. Por lo que se afirma que la distribución de la ocupción no es homogénea entre los diferentes estados civiles")
} else {
print("No se rechaza la hipótesis nula. Por lo que no es posible concluir que la distribución de ocupación sea homogénea entre los diferentes estados civiles")
}
## [1] "No se rechaza la hipótesis nula. Por lo que no es posible concluir que la distribución de ocupación sea homogénea entre los diferentes estados civiles"
Interpretación
Dado que el p-valor es igual a 0.79, no se rechaza la hipótesis nula y por lo tanto, se afirma que no es posible concluir que la distribución de ocupación sea homogénea entre los diferentes estados civiles.