Sei sulla pagina 1di 5

Regresin Logstica en R

Abstract
En la presente actividad se realizar regresin
logstica utilizando la herramienta R. Tambin se
predecirn las variables independientes basadas en el
modelo, y probar la efectividad del modelo.
1. Introduction
La regresin logstica es utilizada para predecir el
resultado de una variable categrica en funcin de las
variables independientes. La regresin logstica es
utilizada en las ciencias, y es til para modelar la
probabilidad de un evento ocurriendo como funcin de
otros factores.
2. Experimentos y resultados
Se va a utilizar el archivo survey.csv encontrado en
[1. Seleccionamos el directorio en el cual vamos a
traba!ar."
setd!"#es$top%R"&
Leemos el archivo"
'ydata()read.csv!"survey.csv",
header*TR+E,sep*","&
#ecesitamos e$plorar los datos, para poder
procesarlos, eso lo haremos con las siguientes
instrucciones"
#os permite poner la variable %&'()* en una
tabla
table!'ydata,'-#E./&
0 1
426 324
(vala la e$presin de la tabla
ith!'ydata, table!.rice, '-#E./&&
MYDEPV
Price 0 1
10 115 135
20 137 113
30 174 76
+ace un resumen de la variable ,ge
summary!'ydata,0ge&
Min. 1st Qu. Median Mean 3rd Qu.
Max.
18.00 32.00 32.00 35.98 43.00
66.00
)odemos ver -ue el valor mnimo de ,ge es 1., y el
valor m/$imo es de 00, su media es de 12.3., la
mediana es 14.
%uestra el ob!eto %ydata en la matriz de
correlacin cor.mat
cor.mat()cor!'ydata1,)23&
cor.mat
Price Inc!e "#e
Price 1 0.00000000 0.00000000
Inc!e 0 1.00000000 0.09612083
"#e 0 0.09612083 1.00000000
)odemos ver -ue la matriz es cuadrada y nos
muestra la relacin de precio, ingreso y edad.
(l modelo lgico se construye de la siguiente
forma.
mylogit()glm!'-#E./ 4 5ncome 6 0ge 6
as.factor!.rice& ,data*'ydata,
family*binomial!lin$*"logit"&, na.action*na.pass&
5mprimimos el ob!eto mylogit"
summary!mylogit&
'a como resultado el modelo -ue se introdu!o"
#$!%&r!u$a ' MYDEPV ( Inc!e ) "#e )
as.&actr%Price*+ &a!i$, ' -in!ia$%$in. '
/$#it/*+
data ' M,data+ na.actin ' na.0ass*
La desviacin de los residuos"
De1iance 2esidua$s3
Min 1Q Median 3Q
Max
43.0388 40.5581 40.2434 0.4178 3.2377
,-u podemos apreciar el valor mnimo es de 61.71
y el valor m/$imo es de 1.41, es un intervalo muy
amplio.
Los coeficientes"
5e&&icients3
Esti!ate 6td. Errr 7 1a$ue Pr%8979*
%Interce0t* 46.02116 0.53244 411.309 : 2e416 ;;;
Inc!e 0.12876 0.00923 13.950 : 2e416 ;;;
"#e 0.03506 0.01179 2.974 0.00294 ;;
as.&actr%Price*20 40.74418 0.26439 42.815 0.00488 ;;
as.&actr%Price*30 42.21028 0.31108 47.105 1.2e412 ;;;
)odemos apreciar -ue e$iste una variacin en el
precio de 47 a 17 de 6.89, y podemos tambi:n apreciar
-ue el ingreso cambia 7.14 de )urchase a #o
)urchase.
Los intervalos de confianza del modelo a!ustado se
obtienen e!ecutando la instruccin"
confint!mylogit&
#os da como resultado"
2.5 < 97.5 <
%Interce0t* 47.10166938 45.01101651
Inc!e 0.11149784 0.14774622
"#e 0.01197129 0.05830305
as.&actr%Price*20 41.26927449 40.23079467
as.&actr%Price*30 42.84054121 41.61841547
)odemos ver -ue los intervalos de confianza del
modelo tienen una variacin de acuerdo al precio y a
la edad, se incrementa el valor del ingreso si se toma
un intervalo de confianza de 38.2
,l e$ponenciar los coeficieontes con la siguiente
instruccin"
e7p!mylogit,coefficients&
Se puede observar -ue cada unidad de cambio en el
ingreso ;income<, el valor de la relacin de )urchase
se incrementa por un factor de 1.118.
%Interce0t* Inc!e "#e
0.002426851 1.137416400 1.035685762
as.&actr%Price*20 as.&actr%Price*30
0.475124932 0.109669885
,hora calcularemos una pseudo =>
2) ith!mylogit, deviance%null.deviance&
La cual nos da como resultado"
=1> 0.4792654
?igura 1
?igura 4
?igura 1
?igura 9
(n la figura 1 podemos ver la gr/fica de los
residuos y los valores predichos, en la figura 4
podemos observar la linearidad con los valores
tericos y la desviacin est/ndar residual. (n la figura
1 podemos observar -ue en el punto 7 e$iste un cruce
de valores de la desviacin est/ndar residual y los
valores -ue han sido predecidos. La figura 9 nos
muestra la concentracin de datos utilizando la
desviacin de )earson. (n conclusin, las figuras nos
muestran la e$istencia de una correlacin.
@tilizando ahora el precio de 17 como referencia en
lugar del 17
'ydata,pricefactor*relevel!as.factor!'ydata,.ri
ce&, "89"&
+acemos un nuevo modelo, con las instrucciones
anteriores.
mylogit:()glm!'-#E./ 4 5ncome 6 0ge 6
as.factor!.rice&,data*'ydata,
family*binomial!lin$*"logit"&,na.action*na.pass&
summary!mylogit:&
+ay -ue notar -ue los valores de ;5ntercept<
cambian, los coeficiente de 5ncome y ,ge no
cambiaron. (l nuevo modelo nos dice -ue e$iste un
incremento de %&'()* cuando el precio se
decrementa de 17 a 17 y menos cuando va de 17 a 47.
5nstalamos y utilizamos la librera =AB=, y
utilizamos la funcin CpredictD para predecir.
pred*predict!mylogit, type*"response"&
La instruccin anterior la utilizamos para obtener
los datos de entrenamiento
Breamos el ob!eto de prediccin -ue se necesita con
=AB=.
pred;b< * prediction!pred, 'ydata,'-#E./&
Breamos el ob!eto =AB con la funcin
CperformanceD, :sta funcin nos permite evaluar los
predictores de los ob!etos"
roc;b<*performance!pred;b<,measure*"tpr",
7.measure*"fpr"&
Brea el ob!eto ,@B"
auc;b<*performance!pred;b<, measure*"auc"&
($trae el ob!eto ,@B y lo despliega"
auc*auc;b<=y.values11233
auc
0.915272
La figura 2 nos muestra la gr/fica del /rea ba!o la
curva del modelo.
?igura 2
Bomo se puede apreciar la curva del ob!eto =AB
tiene un valor muy grande y nos indica -ue todos los
valores de falso positivo se pueden discriminar.
,comodando los nuevos valores para el precio, la
edad y el ingreso ;tomando la media de ingreso del
ob!eto %ydata<. ,sign/ndo el data frame al ob!eto
neEdata1 podemos obtener la prediccin deseada.
.rice()c!29,:9,89&
0ge()c!mean!'ydata,0ge&&
5ncome()c!mean!'ydata,5ncome&&
nedata2()data.frame!5ncome,0ge,.rice&
nedata2
*emos el resultado de la prediccin
Inc!e "#e Price
1 42.492 35.976 10
2 42.492 35.976 20
3 42.492 35.976 30
)odemos ver -ue no e$iste una variacin entre las
variables -ue se predicen ;5ncome y ,ge<
,hora agregaremos una cuarta variable, -ue es
)urchase)
nedata2,.urchase.()predict!mylogit,
nedata2,type*"response"&
nedata2
'esplegamos el resultado"
Inc!e "#e Price Purc?aseP
1 42.492 35.976 10 0.6707408
2 42.492 35.976 20 0.4918407
3 42.492 35.976 30 0.1826131
)odemos observar -ue la variable )urchase) tiene
un valor alto cuando el precio ;)rice< es de 17 y se va
decrementando hasta alcanzar un valor mnimo
cuando el precio es de 17. Fambi:n se puede observar
-ue los valores de 5ncome y ,ge se mantienen sin
cambio.
,hora se predecir/ el resultado para una secuencia
de valores de edad, con un precio constante de 17, se
incrementar/ por 4 hasta alcanzar la edad m/$ima del
dataset.
nedata:,0ge.()
predict!mylogit,nedata*nedata:,type*"response"&
cbind!nedata:,0ge,nedata:,0ge.&
plot!nedata:,0ge, nedata:,0ge.&
=+1> =+2>
=1+> 18 0.1063052
=2+> 20 0.1131540
=3+> 22 0.1203845
=4+> 24 0.1280103
=5+> 26 0.1360445
=6+> 28 0.1444993
=7+> 30 0.1533864
=8+> 32 0.1627160
=9+> 34 0.1724975
=10+> 36 0.1827387
=11+> 38 0.1934457
=12+> 40 0.2046231
=13+> 42 0.2162731
=14+> 44 0.2283958
=15+> 46 0.2409892
=16+> 48 0.2540483
=17+> 50 0.2675657
=18+> 52 0.2815308
=19+> 54 0.2959303
=20+> 56 0.3107477
=21+> 58 0.3259636
=22+> 60 0.3415553
=23+> 62 0.3574973
=24+> 64 0.3737609
=25+> 66 0.3903150
La figura 0 nos muestra la relacin -ue e$iste entre
,ge y ,ge) ;,ge) significa la edad para comprar
;,ge)urchase<<.
?igura 0
,hora procedermos a predecir la salida a una
secuencia de ingresos a un precio de 17 y ,ge en su
media.
@tilizando el mismo con!unto de instrucciones
anteriores"
nedata8()data.frame!5ncome*
se>!:9,?9,29&,0ge*mean!'ydata,0ge&,.rice*89&
nedata8,5ncome.()
predict!mylogit,nedata*nedata8,type*"response"&
cbind!nedata8,5ncome,nedata8,5ncome.&
)odemos ver el resultado de cbind;<
=+1> =+2>
=1+> 20 0.01219091
=2+> 30 0.04281102
=3+> 40 0.13948050
=4+> 50 0.37004640
=5+> 60 0.68039246
=6+> 70 0.88525564
=7+> 80 0.96546923
=8+> 90 0.99022745
Se puede ver -ue entre m/s edad tenga, el income) es
mayor, es decir -ue tiene m/s posibilidades de
comprar.
La figura 8 muestra la gr/fica de la siguiente
instruccin"
plot!nedata8,5ncome,nedata8,5ncome.&
(n la gr/fica podemos confirmar lo dicho
anteriormente, entre m/s edad tenga la persona el
5ncome va increment/ndose y el 5ncome) tambi:n
hasta llevar a los 37, -ue es donde se empieza a
estabilizar.
3. Regresin logstica como clasificador
La regresin logstica se puede utilizar como
clasificador , lo ilustraremos de la siguiente manera,
vamos a ver cu/ntas ofertas se enviar/n utilizando :ste
umbral"
nedata@()
data.frame!0ge*round!runif!29,min!'ydata,0ge&,
ma7!'ydata,5ncome&&&,
.rice*round!!runif!29,29,89&%29&&A29&
Balcularemos el 5ncome para las ,ge
5ncomeGround;runif;17,min;%ydataH5ncome<,ma$
;%ydataH5ncome<<<,
)rice G round;;runif;17,17,17<I17<<J17
)redice los datos
neEdata9H)robK6
predict;mylogit,neEdataGneEdata9,typeGLresponseL<
5mprime el resultado de la prediccin"
neEdata9
"#e Price
1 66 30
2 76 30
3 41 20
4 93 10
5 49 10
6 19 20
7 85 30
8 19 30
9 83 30
10 23 20
)odemos ver -ue para el valor de ,ge, si es mayor,
el precio tambi:n es mayor, si es menor, el precio es
menor.
. !onclusiones
Los e!ercicios realizados en :ste laboratorio nos
ilustraron el cmo utilizar la regresin logstica para
predecir valores de las variables dependientes dado el
valor de la variable independiente. Fambi:n nos ilustra
el cmo utilizar la regresin logstica como un
clasificador.
Los resultados de los e$perimentos confirman -ue
e$iste la relacin entre variables y eso nos permite
hacer predicciones, dada una secuencia de datos.
,un-ue los e!emplos son muy interesantes, sera
realmente bueno ver la efectividad de prediccin y de
clasificacin tienen con mucha m/s informacin para
clasificar y predecir, ya -ue se supone -ue deben de
tener la misma efectividad.
1". Referencias
[1 ,.M. Smith, B.'. Nones, and (.?. =oberts, C,rticle
FitleD, Bournal, )ublisher, Location, 'ate, pp. 1617.
[4 Nones, B.'., ,.M. Smith, and (.?. =oberts, Coo$ Title,
)ublisher, Location, 'ate.

Potrebbero piacerti anche