Análisis de regresión en programación R

En estadística, la Regresión Logística es un modelo que toma variables de respuesta (variable dependiente) y características (variables independientes) para determinar la probabilidad estimada de un evento. Se usa un modelo logístico cuando la variable de respuesta tiene valores categóricos como 0 o 1. Por ejemplo, un estudiante aprobará/reprobará, un correo es spam o no, determinando las imágenes, etc. En este artículo, discutiremos la regresión análisis, tipos de regresión e implementación de regresión logística en programación R.

Análisis de regresión en R

El análisis de regresión es un grupo de procesos estadísticos que se utilizan en la programación y las estadísticas de R para determinar la relación entre las variables del conjunto de datos. Generalmente, el análisis de regresión se usa para determinar la relación entre las variables dependientes e independientes del conjunto de datos. El análisis de regresión ayuda a comprender cómo cambian las variables dependientes cuando una de las variables independientes cambia y otras variables independientes se mantienen constantes. Esto ayuda a construir un modelo de regresión y, además, ayuda a pronosticar los valores con respecto a un cambio en una de las variables independientes. Sobre la base de los tipos de variables dependientes, varias variables independientes y la forma de la línea de regresión, existen 4 tipos de técnicas de análisis de regresión, es decir, regresión lineal, regresión logística,

Tipos de análisis de regresión

Regresión lineal

La regresión lineal es una de las técnicas de regresión más utilizadas para modelar la relación entre dos variables. Utiliza una relación lineal para modelar la línea de regresión. Hay 2 variables utilizadas en la ecuación de relación lineal, es decir, variable predictora y variable de respuesta.

y = hacha + b

dónde, 

  • y es la variable de respuesta
  • x es la variable predictora
  • a y b son los coeficientes

La línea de regresión creada usando esta técnica es una línea recta. La variable de respuesta se deriva de las variables predictoras. Las variables predictoras se estiman utilizando algunos experimentos estadísticos. La regresión lineal es ampliamente utilizada pero estas técnicas no son capaces de predecir la probabilidad.

Regresión logística

Por otro lado, la regresión logística tiene una ventaja sobre la regresión lineal ya que es capaz de predecir los valores dentro del rango. La regresión logística se utiliza para predecir los valores dentro del rango categórico. Por ejemplo, hombre o mujer, ganador o perdedor, etc.

La regresión logística utiliza la siguiente función sigmoidal:

\displaystyle y=\frac{1}{1+e^{-z}}

dónde,  

  • y representa la variable de respuesta
  • z representa la ecuación de variables independientes o características

Regresión logística multinomial

La regresión logística multinomial es una técnica avanzada de regresión logística que toma más de 2 variables categóricas a diferencia de la regresión logística que toma 2 variables categóricas. Por ejemplo, un investigador de biología encontró un nuevo tipo de especie y el tipo de especie se puede determinar en función de muchos factores, como el tamaño, la forma, el color de los ojos, el factor ambiental de su vida, etc.

Regresión logística ordinal

La regresión logística ordinal también es una extensión de la regresión logística. Se utiliza para predecir los valores como diferentes niveles de categoría (ordenados). En palabras simples, predice el rango. Por ejemplo, un restaurante crea una encuesta sobre la calidad del sabor de la comida y, utilizando la regresión logística ordinal, se puede crear una variable de respuesta de la encuesta en una escala de cualquier intervalo, como 1-10, que ayuda a determinar la respuesta del cliente a sus alimentos.

Implementación de Regresión Logística en programación R

En lenguaje R, el modelo de regresión logística se crea utilizando la función glm(). 

Sintaxis: glm(fórmula, familia = binomial)
Parámetros:  
fórmula: representa una ecuación en base a la cual se debe ajustar el modelo. 
familia: representa el tipo de función que se utilizará, es decir, binomial para regresión logística 
 

Para conocer más parámetros opcionales de la función glm(), use el siguiente comando en R: 

help("glm")

Ejemplo: 

Supongamos un vector del nivel de CI de los estudiantes en una clase. Otro vector contiene el resultado del alumno correspondiente, es decir, reprobar o aprobar (0 o 1) en un examen. 

r

# Generate random IQ values with mean = 30 and sd =2
IQ <- rnorm(40, 30, 2)
 
# Sorting IQ level in ascending order
IQ <- sort(IQ)
 
# Generate vector with pass and fail values of 40 students
result <- c(0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 1, 1, 0, 0, 1, 0,
0, 0, 1, 0, 0, 1, 1, 0, 1, 1,
1, 1, 1, 0, 1, 1, 1, 1, 0, 1)
 
# Data Frame
df <- as.data.frame(cbind(IQ, result))
 
# Print data frame
print(df)
 
# output to be present as PNG file
png(file="LogisticRegressionGFG.png")
 
# Plotting IQ on x-axis and result on y-axis
plot(IQ, result, xlab = "IQ Level",
ylab = "Probability of Passing")
 
# Create a logistic model
g = glm(result~IQ, family=binomial, df)
 
# Create a curve based on prediction using the regression model
curve(predict(g, data.frame(IQ=x), type="resp"), add=TRUE)
 
# This Draws a set of points
# Based on fit to the regression model
points(IQ, fitted(g), pch=30)
 
# Summary of the regression model
summary(g)
 
# saving the file
dev.off()

Producción: 

         IQ result
1  25.46872      0
2  26.72004      0
3  27.16163      0
4  27.55291      1
5  27.72577      0
6  28.00731      0
7  28.18095      0
8  28.28053      0
9  28.29086      0
10 28.34474      1
11 28.35581      1
12 28.40969      0
13 28.72583      0
14 28.81105      0
15 28.87337      1
16 29.00383      1
17 29.01762      0
18 29.03629      0
19 29.18109      1
20 29.39251      0
21 29.40852      0
22 29.78844      0
23 29.80456      1
24 29.81815      0
25 29.86478      0
26 29.91535      1
27 30.04204      1
28 30.09565      0
29 30.28495      1
30 30.39359      1
31 30.78886      1
32 30.79307      1
33 30.98601      1
34 31.14602      0
35 31.48225      1
36 31.74983      1
37 31.94705      1
38 31.94772      1
39 33.63058      0
40 35.35096      1

Call:
glm(formula = result ~ IQ, family = binomial, data = df)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.1451  -0.9742  -0.4950   1.0326   1.7283  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -16.8093     7.3368  -2.291   0.0220 *
IQ            0.5651     0.2482   2.276   0.0228 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 55.352  on 39  degrees of freedom
Residual deviance: 48.157  on 38  degrees of freedom
AIC: 52.157

Number of Fisher Scoring iterations: 4

Publicación traducida automáticamente

Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *