R/desc_continuos.R

Defines functions desc_continuos

Documented in desc_continuos

#' @title Analisis descriptivo a un par de variables continuas (x vs y)
#' @description  Esta funcion realiza el analisis descriptivo a un par de variables continuas (x vs y), mostrando: Grafico x vs y, Regresion lineal y ~ x, Media, Cuartiles, Prueba de normalidad a cada variable, Grafico de distribucion de cada variable.
#' @param data DataFrame con ambas variables continuas. Deben ser ingresadas con numericas (enteras o decimales). La primera columna corresponde a la variable x (independiente), la segunda columna a la variable y (dependiente).
#' @param titulo_grafico Titulo del grafico principal. Si se deja vacio entonces se asigna "Grafico x vs y". Se ingresa como cadena de caracteres.
#' @return Graficos y resultados
#' @export desc_continuos
#' @import dplyr plotly
#' @examples
#' desc_continuos(data = iris[, c(1,3)], titulo_grafico = 'Sepal vs Petal')
#' desc_continuos(data = iris[, c(1,3)])


desc_continuos <- function(data, titulo_grafico = "Grafico"){
  datos <- data
  # si no se ingresa nombre al grafico
  if(titulo_grafico == 'Grafico'){
    titulo_grafico <- paste0('Grafico ', colnames(datos)[1], ' vs ', colnames(datos)[2])
  }

  #regresion para la tendencia
  li_reg <- lm(datos[,2] ~ datos[,1]) # "y" es datos[,2]

  # grafico x vs y (ingresado como data frame)
  fig <- plot_ly(x = datos[,1], y = datos[,2], name = 'Datos',
                 type = 'scatter', mode = 'markers') %>%
    add_trace(y = li_reg$fitted.values, name = 'Regresion Lineal',
              mode = 'lines') %>%
    layout(title = titulo_grafico,
           xaxis = list(title = colnames(datos)[1]),
           yaxis = list(title = colnames(datos)[2])) %>%
    layout(hovermode = 'compare')

  print(fig)

  # significancia regresion lineal
  print('Resultado Regresion lineal:')
  print(summary(li_reg))
  print(paste0('datos[, 1] corresponde a ', colnames(datos)[1],
               ', en este caso la variable independiente (x)'))

  # medidas de tendencia central
  print(paste0('Medidas de tendencia central para ', colnames(datos)[1], ' son:'))
  print(summary(datos[,1]))

  print(paste0('Medidas de tendencia central para ', colnames(datos)[2], ' son:'))
  print(summary(datos[,2]))

  # prueba de normalidad para ambas vbles
  print(paste0('Prueba de normalidad ', colnames(datos)[1], ', valor-p prueba de Shapiro Wilk:'))
  normalidad <- shapiro.test(datos[,1])
  print(normalidad$p.value)
  if(normalidad$p.value >= 0.05){print('Se supone normalidad')}
  if(normalidad$p.value < 0.05){print('Se evidencia no normalidad')}

  print(paste0('Prueba de normalidad ', colnames(datos)[2], ', valor-p prueba de Shapiro Wilk:'))
  normalidad <- shapiro.test(datos[,2])
  print(normalidad$p.value)
  if(normalidad$p.value >= 0.05){print('Se supone normalidad')}
  if(normalidad$p.value < 0.05){print('Se evidencia no normalidad')}

  # Graficos de distribucion
  x11()
  par(mfrow=c(2,1))
  plot(density(datos[, 1], adjust = 1),
       main = paste0('Densidad ', colnames(datos)[1]))
  plot(density(datos[, 2], adjust = 1),
       main = paste0('Densidad ', colnames(datos)[2]))
  par(mfrow=c(1,1))

}
fpino95/descriptiva1 documentation built on Jan. 6, 2022, 12:31 a.m.