Skip to content

Instantly share code, notes, and snippets.

@mencarellic
Created June 14, 2018 11:20
Show Gist options
  • Save mencarellic/23b402622f51e9cff27d3881dbf33a65 to your computer and use it in GitHub Desktop.
Save mencarellic/23b402622f51e9cff27d3881dbf33a65 to your computer and use it in GitHub Desktop.
library(neuralnet)
setwd("D:/Syracuse/SCM651/Homework")
data <- read.csv("Business+Analytics+-+Week+9+Universal+Bank.csv")
## Formulas
# Basic - all variables
basicFormula <- as.formula(PersonalLoan~Age+Income+Family+CCAvg+Education+Mortgage+SecuritiesAccount+CDAccount+Online+CreditCard+Experience)
# Only significant variables
basicFormulaOnlySig <- as.formula(PersonalLoan~Income+Family+CCAvg+Education+SecuritiesAccount+CDAccount+Online+CreditCard)
#basicFormulaLogitOnlySig <- as.formula(PersonalLoan~Income+Family+CCAvg+Education+SecuritiesAccount+CDAccount+Online+CreditCard)
#basicFormulaProbitOnlySig <- as.formula(PersonalLoan~Income+Family+CCAvg+Education+SecuritiesAccount+CDAccount+Online+CreditCard)
## Logit
glm.logit.noMod <- glm(basicFormula,family=binomial(logit),data=data)
summary(glm.logit.noMod)
glm.logit.noMod.onlySig <- glm(basicFormulaOnlySig,family=binomial(logit),data=data)
summary(glm.logit.noMod.onlySig)
## Probit
glm.probit.noMod <- glm(basicFormula,family=binomial(probit),data=data)
summary(glm.probit.noMod)
glm.probit.noMod.onlySig <- glm(basicFormulaOnlySig,family=binomial(probit),data=data)
summary(glm.probit.noMod.onlySig)
## Moderating Effects
# Income*CCAvg
modEffectFormulaOnlySig.1 <- as.formula(PersonalLoan~Income+Family+CCAvg+Education+SecuritiesAccount+CDAccount+Online+CreditCard+(Income*CCAvg))
# Education*Family
modEffectFormulaOnlySig.2 <- as.formula(PersonalLoan~Income+Family+CCAvg+Education+SecuritiesAccount+CDAccount+Online+CreditCard+(Education*Family))
## Logit, moderating effect 1
glm.logit.Mod1.OnlySig <- glm(modEffectFormulaOnlySig.1,family=binomial(logit),data=data)
summary(glm.logit.Mod1.OnlySig)
## Probit, moderating effect 1
glm.probit.Mod1.OnlySig <- glm(modEffectFormulaOnlySig.1,family=binomial(probit),data=data)
summary(glm.probit.Mod1.OnlySig)
## Logit, moderating effect 2
glm.logit.Mod2.OnlySig <- glm(modEffectFormulaOnlySig.2,family=binomial(logit),data=data)
summary(glm.logit.Mod2.OnlySig)
## Probit, moderating effect 2
glm.probit.Mod2.OnlySig <- glm(modEffectFormulaOnlySig.2,family=binomial(probit),data=data)
summary(glm.probit.Mod2.OnlySig)
## Neural Network
set.seed(123)
sampleRows <- sample(seq_len(nrow(data)),size = floor(0.8 * nrow(data)))
trainData <- data[sampleRows,]
testData <- data[-sampleRows,]
creditNN <- neuralnet(basicFormulaOnlySig, data=trainData, hidden=4, lifesign="minimal", linear.output=FALSE, threshold=0.1)
## Prediction Model
tempTest <- subset(testData, select=c("Income","Family","CCAvg","Education","SecuritiesAccount","CDAccount","Online","CreditCard"))
creditNN.results <- compute(creditNN, tempTest)
results <- data.frame(actual=testData$PersonalLoan,prediction=creditNN.results$net.result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment