Introducción Regresión logística en R

La regresión logística en R también se conoce como problemas de clasificación binaria. Se usan para predecir un resultado como (1 o 0, sí / no) para una variable independiente. Para comprender la regresión logística en R, es importante conocer la regresión lineal básica, trabaja con la variable de resultado continuo. Más específicamente, podemos decir que es una extensión de la regresión lineal. En este artículo, discutiremos varios métodos utilizados para calcular el modelo y la evaluación. La regresión logística se utiliza para resolver problemas de clasificación en el aprendizaje automático.

¿Cómo funciona la regresión logística en R?

La regresión logística es una técnica utilizada en el campo de la estadística que mide la diferencia entre una variable dependiente e independiente con la guía de la función logística al estimar la diferente ocurrencia de probabilidades. Pueden ser binomiales (tiene un resultado sí o no) o multinomiales (regular versus pobre muy pobre). Los valores de probabilidad se encuentran entre 0 y 1 y la variable debe ser positiva (<1). Se dirige a la variable dependiente y tiene los siguientes pasos a seguir:

  1. n. ° de ensayos fijos en un conjunto de datos tomado
  2. con dos resultados de prueba
  3. El resultado de la probabilidad debe ser independiente el uno del otro
  4. La probabilidad de éxito y fracasos debe ser la misma en cada prueba.

En esto, estamos considerando un ejemplo al tomar el paquete ISLR, que proporciona varios conjuntos de datos para capacitación. Para ajustar el modelo, aquí se utiliza la función de modelo lineal generalizado (glm). Para construir una regresión logística, se prefiere la función glm y obtiene los detalles de ellas utilizando un resumen para la tarea de análisis.

Pasos de trabajo:

Los pasos de trabajo en regresión logística siguen ciertos elementos de término como

  • Modelando la probabilidad o haciendo estimación de probabilidad
  • predicción
  • Valor de umbral de inicialización (especificidad alta o baja)
  • Matriz de confusión
  • El área de trazado debajo de la curva (AUC)

Ejemplos

A continuación se muestran algunos ejemplos de regresión logística en R:

Carga de datos:

Instalación del paquete ISLR.

requerir (ISLR)

Carga del paquete requerido: ISLR

Para este artículo, vamos a utilizar un conjunto de datos 'Semanal' en RStudio. El conjunto de datos implica los detalles resumidos del stock semanal de 1990 a 2010.

requerir (ISLR)

nombres (DO)

Salida:

(1) “Compra” “Semana de compra” “ID de tienda” “PriceCH”

(5) “PriceMM” “DiscCH” “DiscMM” “SpecialCH”

(9) “SpecialMM” “LoyalCH” “SalePriceMM” “SalePriceCH”

(13) “PriceDiff” “Store7” “PctDiscMM” “PctDiscCH”

(17) "ListPriceDiff" "TIENDA"

str (DO)

Muestra 1070 observaciones de 18 variables.

Nuestro conjunto de datos tiene 1070 observaciones y 18 variables diferentes. aquí tenemos MM especial y CH especial tiene un resultado dependiente. Tomemos un atributo MM especial para tener una observación correcta y una precisión del 84%.

tabla (OJ $ SpecialMM)

0 1

897 173

Siguiente para encontrar la probabilidad

897/1070

(1) 0.8383178

En el siguiente paso para una mejor muestra, dividir el conjunto de datos en entrenamiento y probar el conjunto de datos es una buena

biblioteca (caTools)

set.seed (88)

split = sample.split (OJ $ SpecialMM, SplitRatio = 0.84)

Considerando qt tiene un conjunto de entrenamiento y qs tiene datos de muestra del conjunto de prueba.

qt = subconjunto (OJ, split == TRUE)

qs = subconjunto (OJ, split == FALSE)

nrow (qt)

(1) 898

nrow (qs)

(1) 172

Por lo tanto, tenemos 898 Conjunto de entrenamiento y 172 muestras de prueba.

Luego, el uso de Resumen () proporciona los detalles de las tablas de desviación y coeficiente para el análisis de regresión.

QualityLog = glm (SpecialMM ~ SalePriceMM + WeekofPurchase, data = qt, family = binomial)

resumen (QualityLog)

Salida:

Llamada:

glm (formula = SpecialMM ~ SalePriceMM + WeekofPurchase, family = binomial,

datos = qt)

Residuos de desviación:

Mínimo 1Q Mediano 3Q Máx.

-1.2790 -0.4182 -0.3687 -0.2640 2.4284

Coeficientes

Estd Estd. Error z valor Pr (> | z |)

(Intercepción) 2.910774 1.616328 1.801 0.07173.

Precio de ventaMM -4.538464 0.405808 -11.184 <2e-16 ***

Semana de compra 0.015546 0.005831 2.666 0.00767 **

-

Desviación nula: 794.01 en 897 grados de libertad

Desviación residual: 636.13 en 895 grados de libertad

AIC: 642.13

Número de iteraciones de puntuación de Fisher: 5

Del análisis anterior, se dice que la tabla de coeficientes proporciona valores positivos para WeekofPurchase y tienen al menos dos estrellas, lo que implica que son los códigos significativos para el modelo.

Técnica de predicción:

Aquí usaremos la función de predicción de tren en este paquete R y proporcionaremos probabilidades que estamos usando argumento llamado tipo = respuesta. Veamos la predicción aplicada al conjunto de entrenamiento (qt). La R predice el resultado en forma de P (y = 1 | X) con la probabilidad límite de 0.5.

predicTrain = predic (QualityLog, type = "respuesta")

Resumen resultados en una mediana, media y min, valores máximos.

resumen (predicTrain) Ejecución da

Min. 1st Qu.Median Mean 3rd Qu.Max.

0.02192 0.03342 0.07799 0.16147 0.25395 0.89038

tapply (predicTrain, qt $ SpecialMM)

Para calcular el promedio de las probabilidades verdaderas se utiliza la función tapply ().

tapply (predictTrain, qt $ SpecialMM, mean)

0 1

0.1224444 0.3641334

Por lo tanto, encontramos en la declaración anterior que la posibilidad de un SpecialMM verdadero significa que el valor es 0.34 y que el valor pobre verdadero es 0.12.

Cálculo del valor umbral:

si P es> T– la predicción es pobre MM especial

si P es

Matriz de clasificación:

tabla (qt $ SpecialMM, predictTrain> 0.5)

FALSO VERDADERO

0 746 7

1 105 40

Para calcular la sensibilidad y especificidad

40/145

(1) 0.2758621

746/753

(1) 0.9907039

Predicción del conjunto de pruebas

predictTest = predict (QualityLog, type = "response", newdata = qs)

tabla (qs $ SpecialMM, predictTest> = 0.3)

FALSO VERDADERO

0 130 14

1 10 18

tabla (qs $ SpecialMM, predictTest> = 0.5)

FALSO VERDADERO

0 140 4

1 18 10

Precisión de cálculo

150/172

(1) 0.872093

Hay 172 casos de los cuales 144 son buenos y 28 son pobres.

Trazado de curva ROC:

Este es el último paso al trazar la curva ROC para las mediciones de rendimiento. Un buen valor de AUC debe estar más cerca de 1, no de 0.5. Verificando con las probabilidades 0.5, 0.7, 0.2 para predecir cómo el valor umbral aumenta y disminuye. Se realiza trazando valores umbral simultáneamente en la curva ROC. Una buena opción es elegir teniendo en cuenta una mayor sensibilidad.

Técnicas de regresión logística.

Veamos una implementación de logística usando R, ya que facilita el ajuste del modelo. Hay dos tipos de técnicas:

  • Regresión logística multinomial
  • Regresión logística ordinal

El anterior trabaja con variables de respuesta cuando tienen más de o iguales a dos clases. más tarde funciona cuando el orden es significativo.

Conclusión

Por lo tanto, hemos aprendido la lógica básica detrás de la regresión junto con la implementación de Regresión logística en un conjunto de datos particular de R. Una regresión binomial o binaria mide valores categóricos de respuestas binarias y variables predictoras. Desempeñan un papel vital en el análisis en el que los expertos de la industria esperan conocer la regresión lineal y logística. Tienen sus propios desafíos y, en el ejemplo práctico, hemos realizado los pasos sobre limpieza de datos, preprocesamiento. En total, hemos visto cómo la regresión logística resuelve un problema de resultado categórico de una manera simple y fácil.

Artículos recomendados

Esta ha sido una guía para la regresión logística en R. Aquí discutimos el trabajo, diferentes técnicas y una amplia explicación sobre los diferentes métodos utilizados en la regresión logística en R. También puede consultar los siguientes artículos para obtener más información:

  1. Marcos de aprendizaje automático
  2. R vs Python
  3. Funciones de cadena de Python
  4. ¿Python es un lenguaje de script
  5. Distribución binomial en R | Sintaxis
  6. Regresión vs Clasificación

Categoría: