PROIECT
Data Mining
Hampau Emil
GRUPA 1083
Cuprins
Introducere
Regresie logistica
Metode contrafactuale
Introducere
Pe parcursul acestei lucrari vom incerca, pe baza unui esantion de respondeti, sa ne dam
seama care sunt caracteristicile si ce influenteaz oamenii sa devina antreprenori.
Scopul este modelarea deciziei indivizilor de a pune bazele unei noi afaceri. Variabila
dependentă a fost construită pe baza răspunsurilor obținute la întrebarea: “În prezent încercaţi
să dezvoltaţi o afacere?”
Vârsta
Sex
Statut ocupațional (variabilă categorială cu trei nivele: (1) Angajat cu normă întreagă
sau cu jumătate de normă; (2) În căutarea unui loc de muncă; (3) Student sau casnic sau
pensionat). 4. Percepția indivizilor privind deținerea competențelor necesare unui
antreprenor (variabilă categorială binară)
Regresie logistica
Volumul eşantionului pe baza căruia s-au obţinut rezultatele prezentate mai jos este de
2433 respondenţi din Austria. Dintre aceştia 9,4% au răspuns afirmativ la întrebarea privind
decizia de a devein antreprenori. Outputul prezentat în tabelul 1 ne oferă informaţii cu privire
la impactul factorilor analizaţi asupra logaritmului raportului şanselor (probabilitatea de a lua
decizia de a deveni antreprenor raportată la probabilitatea de a nu deveni antreprenor). Tot din
acest tabel, pe baza probabilităţilor din ultima coloană, deducem că variabilele incluse în analiză
au coeficienţi semnificativi statistic.
In urma analizei observam ca există diferenţe semnificative între bărbaţi şi femei în ceea
ce priveşte decizia de a deveni antreprenor. Indivizii care consideră că deţin aptitudinile şi
cunoştinţele necesare necesare unui antreprenor au comportament diferit comparativ cu cei care
se autoevaluează negativ în această privintă. Există diferenţe semnificative între persoanele
angajate şi cele aflate în căutarea unui loc de muncă în ceea ce priveşte decizia de a demara o
afacere. Există diferenţe semnificative între cei angajaţi şi cei inactivi în ceea ce priveşte
probabilitatea de a deveni antreprenor. În partea de jos a tabelului se regăsesc informaţii utile
pentru a aprecia bonitatea modelului estimat. Aceste măsuri au la bază calcularea discrepanţelor
existente între modelul curent şi un model complet care ar conţine câte un parametru pentru
fiecare observaţie. Se compară modelul nul (un model ce conţine doar termen liber) cu modelul
complet şi se obţine valoarea 1490.8 iar din comparaţia între modelul complet şi cel curent se
obţine valoarea 1356.7. Acestea se consideră a fi echivalentul sumei pătratelor abaterilor din
modelele de regresie estimate cu metoda celor mai mici pătrate. O valoare mai mica indică un
model mai bun. Criteriul informational Akaike va fi utilizat pentru a compara diferite modele
între ele. Se va alege modelul care prezintă valoarea minimă.
Call:
glm(formula = bstart ~ gemwork3 + gemhhinc + knowent + gender,
family = "binomial", data = Austria)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.7585 -0.5491 -0.3231 -0.2775 3.0262
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.55195 0.19907 -12.820 < 2e-16 ***
gemwork3Not working 0.03133 0.29708 0.105 0.9160
gemwork3Retired students -1.33058 0.33569 -3.964 7.38e-05 ***
gemhhincMiddle 33%tile -0.46573 0.20685 -2.252 0.0244 *
gemhhincUpper 33%tile -0.34678 0.18793 -1.845 0.0650 .
knowentYes 1.42204 0.15465 9.195 < 2e-16 ***
genderFemale -0.22033 0.15028 -1.466 0.1426
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Ca măsură a bonităţii modelului, am calculat valorea R2. Această are la bază compararea
modelului estimat cu modelul nul (cu termen liber) şi foloseşte cele două măsuri prezente în
tabelul anterior (Null deviance şi Residual deviance). Valoarea de 10% obţinută demonstrează
că sunt mulţi alţi factori care determină un individ sa pornească o afacere. Pentru a estima care
este impactul variabilelor analizate asupra şanselor unui individ de a decide să pornească o
afacere am aplicat funcţia exponenţială asupra coeficienţilor şi am obţinut:
Aria de sub curba ROC este de aproximativ 0.72% indicând faptul că am obţinut un
clasificator mai bun decât un clasificator aleator. O valoare a pragului probabilităţii este de 0.
47 ar conduce la o rată foarte mică a clasificării pozitive false (indivizii care în realitate nu au
demarat o afacere nu vor fi clasificaţi prin model ca potenţiali antreprenori). Dar în acelaşi tim
p rata clasificării pozitive corecte este extreme de redusă (cei care doresc să devină antrepreno
ri nu sunt incluşi conform modelului în clasa 1).
Estimarea modelului cu ajutorul pachetului ROSE
Pachetul ROSE oferă funcții pentru a face față problemelor de clasificare binare în
prezența unor clase dezechilibrate. Esantioanele artificiale sunt generate în conformitate cu o
abordare bootstrap pentru a permite sprijinirea atât in fazele de estimare cat și precizieI de
evaluare a unui clasificator binar în prezența unei clase rare. Funcții care implementează
remedii tradiționale are de asemenea condiția ca dezechilibrul de clasă diferite valori pentru a
evalua precizia. Acestea sunt estimate prin metode precum holdout, bootstrap sau
cross-validation.
Call:
glm(formula = bstart ~ gemwork3 + gemhhinc + knowent + age9c +
suskill, family = "binomial", data = Austria)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.1195 -0.4350 -0.2583 -0.1595 3.1950
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.53385 0.29850 -11.839 < 2e-16 ***
gemwork3Not working 0.14988 0.31246 0.480 0.6315
gemwork3Retired students -0.92073 0.35930 -2.563 0.0104 *
gemhhincMiddle 33%tile -0.48489 0.21551 -2.250 0.0244 *
gemhhincUpper 33%tile -0.47910 0.19722 -2.429 0.0151 *
knowentYes 1.02581 0.16144 6.354 2.09e-10 ***
age9c25-34 0.51182 0.25523 2.005 0.0449 *
age9c35-44 -0.07183 0.26554 -0.270 0.7868
age9c45-54 -0.34520 0.27084 -1.275 0.2025
age9c55-64 -0.64343 0.32660 -1.970 0.0488 *
suskillYes 1.70867 0.20290 8.421 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Coefficients:
(Intercept) gemwork3Not working gemwork3Retired students gemhhincMiddle 33%tile
-3.53385 0.14988 -0.92073 -0.48489
gemhhincUpper 33%tile knowentYes age9c25-34 age9c35-44
-0.47910 1.02581 0.51182 -0.07183
age9c45-54 age9c55-64 suskillYes
-0.34520 -0.64343 1.70867
Persoanele care nu sunt pensionari sau studenti au cu 86% mai multe sanse sa-si deschida o
afacere
Cei care consideră că deţin cunoştinţele şi aptitudinile necesare unui antreprenenor au
cu 102% şanse mai mari de a demara o afacere comparative cu cei care consideră ca nu deţin
aceste competenţe.
Şansele unei persoanele care lucreaza sau este in cautarea unui loc de munca sunt cu
86% mai mari decât cele ale unui persoane care nu lucreaza.
Aria de sub curba ROC este de aproximativ 0.72% indicând faptul că am obţinut un clasificat
or mai bun decât un clasificator aleator. Daca comparam valoarea pragului probabilităţii de
0.83 cu cea din cazul regresiei logistice de 0.47 atunci ne dam seama ca in cazul de fata estim
area unui model de regresie fara pachetul Rose este mai eficienta.
Metode contrafactuale
In acesta parte vom verifica daca participatii la cursul de specializare au capatat veni
turi mai mari compartiv cu cei care nu au participat.
Estimate... 1893.7
AI SE...... 840.36
T-stat..... 2.2534
p.val...... 0.024234
library(Hmisc)
library(corrplot)
library(PerformanceAnalytics)
library(ggplot2)
library(memisc)
setwd("E:\\sem6")
a<-data.frame(as.data.set(spss.system.file("antrep.sav")))
attach(a)
table(country)
Austria<-subset(a,country=="Austria")
Austria
table(Austria$bstart)
variabile<-which(names(Austria) %in% c ("bstart","gemwork3","gemhhinc","gemeduc","kno
went","suskill","fearfail","gender","age9c"))
names(Austria)
Austria<-Austria[,variabile]
Austria<-na.omit(Austria)
table(Austria$bstart)
Austria
model1<-glm(bstart~gemwork3+gemhhinc+knowent+gender, data=Austria,family = "binomia
l")
model1
table(Austria$gemwork3)
table(Austria$gender)
summary(model1)
exp(coef(model1))
#sansele ca cei din cat de mij sa isi deschida sansele sunt cu 38%mai mici decat cei din cat cu
venit redus
table(Austria$age9c)
levels(Austria$age9c)[levels(Austria$age9c)=="25-34"]<-"18-24"
table(Austria$age9c)
levels(Austria$age9c)[levels(Austria$age9c)=="18-24"]<-"18-35"
table(Austria$age9c)
levels(Austria$age9c)[levels(Austria$age9c)=="0-17"]<-"18-35"
levels(Austria$age9c)[levels(Austria$age9c)=="35-44" ]<-"35+"
levels(Austria$age9c)[levels(Austria$age9c)=="45-54" ]<-"35+"
levels(Austria$age9c)[levels(Austria$age9c)=="55-64" ]<-"35+"
levels(Austria$age9c)[levels(Austria$age9c)=="65-120" ]<-"35+"
table(Austria$age9c)
Austria(Austria$Gemeduc)
Austria<-subset(a,country=="Austria")
Austria
table(Austria$bstart)
variabile<-which(names(Austria) %in% c ("bstart","gemwork3","gemhhinc","gemeduc","kno
went","suskill","fearfail","gender","age9c"))
names(Austria)
Austria<-Austria[,variabile]
Austria<-na.omit(Austria)
table(Austria$bstart)
Austria
model1<-glm(bstart~gemwork3+gemhhinc+knowent+gender, data=Austria,family = "binomia
l")
model1
table(Austria$gemwork3)
table(Austria$gender)
summary(model1)
summary(model1)
model1<-glm(bstart~gemwork3+gemhhinc+knowent+gender+suskill, data=Austria,family = "
binomial")
model1
summary(model1)
model1<-glm(bstart~gemwork3+gemhhinc+knowent+age9c+suskill, data=Austria,family = "b
inomial")
model1
summary(model1)
exp(coef(model1))
library(ROCR)
yhat<-predict(model1,type ="response")
yhat
pr<-prediction(yhat,Austria$bstart)
pr<-prediction(yhat,Austria$bstart,label.ordering=NULL)
pr
perf<-performance(pr,"top","fpr")
pr<-prediction(yhat,Austria$bstart,label.ordering=NULL)
pr
perf<-performance(pr,"top","fpr")
perf<-performance(pr,"tpr","fpr")
windows()
plot(perf,colorize=TRUE,lwd=5)
performance(pr,"auc")
library(ROSE)
date.rose<-ROSE(bstart~.,data=Austria,p=0.4,seed=123)$data
date.rose
table(date.rose$bstart)
model2<-glm(bstart~gemwork3+gemhhinc+knowent+age9c+suskill, data=Austria,family = "b
inomial")
model2
model2<-glm(bstart~gemwork3+gemhhinc+knowent+age9c+suskill, data=date.rose,family =
"binomial")
model2
summary(model2)
yhat<-predict(model2,type ="response")
pr<-prediction(yhat,Austria$bstart,label.ordering=NULL)
perf<-performance(pr,"tpr","fpr")
windows()
plot(perf,colorize=TRUE,lwd=5)
#Aria de sub curba
performance(pr,"auc")
library(ROSE)
model2<-glm(bstart~gemwork3+gemhhinc+knowent+age9c+suskill, data=Austia,family = "bi
nomial")
model2<-glm(bstart~gemwork3+gemhhinc+knowent+age9c+suskill, data=Austria,family = "b
inomial")
#--------------------------s
yhat<-predict(model2,type ="response")
yhat
pr<-prediction(yhat,date.rose$bstart,lable.ordering=NULL)
pr
perf<-performance(pr,"top","fpr")
perf
pr<-prediction(yhat,date.rose$bstart,label.ordering=NULL)
perf<-performance(pr,"top","fpr")
perf<-performance(pr,"tpr","fpr")
perf