Send output to:
Browser Blue - Charts White
Browser Black/White
CSV
Data X:
1 1 41 38 13 12 14 1 1 39 32 16 11 18 1 1 30 35 19 15 11 1 0 31 33 15 6 12 1 1 34 37 14 13 16 1 1 35 29 13 10 18 1 1 39 31 19 12 14 1 1 34 36 15 14 14 1 1 36 35 14 12 15 1 1 37 38 15 9 15 1 0 38 31 16 10 17 1 1 36 34 16 12 19 1 0 38 35 16 12 10 1 1 39 38 16 11 16 1 1 33 37 17 15 18 1 0 32 33 15 12 14 1 0 36 32 15 10 14 1 1 38 38 20 12 17 1 0 39 38 18 11 14 1 1 32 32 16 12 16 1 0 32 33 16 11 18 1 1 31 31 16 12 11 1 1 39 38 19 13 14 1 1 37 39 16 11 12 1 0 39 32 17 12 17 1 1 41 32 17 13 9 1 0 36 35 16 10 16 1 1 33 37 15 14 14 1 1 33 33 16 12 15 1 0 34 33 14 10 11 1 1 31 31 15 12 16 1 0 27 32 12 8 13 1 1 37 31 14 10 17 1 1 34 37 16 12 15 1 0 34 30 14 12 14 1 0 32 33 10 7 16 1 0 29 31 10 9 9 1 0 36 33 14 12 15 1 1 29 31 16 10 17 1 0 35 33 16 10 13 1 0 37 32 16 10 15 1 1 34 33 14 12 16 1 0 38 32 20 15 16 1 0 35 33 14 10 12 1 1 38 28 14 10 15 1 1 37 35 11 12 11 1 1 38 39 14 13 15 1 1 33 34 15 11 15 1 1 36 38 16 11 17 1 0 38 32 14 12 13 1 1 32 38 16 14 16 1 0 32 30 14 10 14 1 0 32 33 12 12 11 1 1 34 38 16 13 12 1 0 32 32 9 5 12 1 1 37 35 14 6 15 1 1 39 34 16 12 16 1 1 29 34 16 12 15 1 0 37 36 15 11 12 1 1 35 34 16 10 12 1 0 30 28 12 7 8 1 0 38 34 16 12 13 1 1 34 35 16 14 11 1 1 31 35 14 11 14 1 1 34 31 16 12 15 1 0 35 37 17 13 10 1 1 36 35 18 14 11 1 0 30 27 18 11 12 1 1 39 40 12 12 15 1 0 35 37 16 12 15 1 0 38 36 10 8 14 1 1 31 38 14 11 16 1 1 34 39 18 14 15 1 0 38 41 18 14 15 1 0 34 27 16 12 13 1 1 39 30 17 9 12 1 1 37 37 16 13 17 1 1 34 31 16 11 13 1 0 28 31 13 12 15 1 0 37 27 16 12 13 1 0 33 36 16 12 15 1 1 35 37 16 12 15 1 0 37 33 15 12 16 1 1 32 34 15 11 15 1 1 33 31 16 10 14 1 0 38 39 14 9 15 1 1 33 34 16 12 14 1 1 29 32 16 12 13 1 1 33 33 15 12 7 1 1 31 36 12 9 17 1 1 36 32 17 15 13 1 1 35 41 16 12 15 1 1 32 28 15 12 14 1 1 29 30 13 12 13 1 1 39 36 16 10 16 1 1 37 35 16 13 12 1 1 35 31 16 9 14 1 0 37 34 16 12 17 1 0 32 36 14 10 15 1 1 38 36 16 14 17 1 0 37 35 16 11 12 1 1 36 37 20 15 16 1 0 32 28 15 11 11 1 1 33 39 16 11 15 1 0 40 32 13 12 9 1 1 38 35 17 12 16 1 0 41 39 16 12 15 1 0 36 35 16 11 10 1 1 43 42 12 7 10 1 1 30 34 16 12 15 1 1 31 33 16 14 11 1 1 32 41 17 11 13 1 1 37 34 12 10 18 1 0 37 32 18 13 16 1 1 33 40 14 13 14 1 1 34 40 14 8 14 1 1 33 35 13 11 14 1 1 38 36 16 12 14 1 0 33 37 13 11 12 1 1 31 27 16 13 14 1 1 38 39 13 12 15 1 1 37 38 16 14 15 1 1 36 31 15 13 15 1 1 31 33 16 15 13 1 0 39 32 15 10 17 1 1 44 39 17 11 17 1 1 33 36 15 9 19 1 1 35 33 12 11 15 1 0 32 33 16 10 13 1 0 28 32 10 11 9 1 1 40 37 16 8 15 1 0 27 30 12 11 15 1 0 37 38 14 12 15 1 1 32 29 15 12 16 1 0 28 22 13 9 11 1 0 34 35 15 11 14 1 1 30 35 11 10 11 1 1 35 34 12 8 15 1 0 31 35 11 9 13 1 1 32 34 16 8 15 1 0 30 37 15 9 16 1 1 30 35 17 15 14 1 0 31 23 16 11 15 1 1 40 31 10 8 16 1 1 32 27 18 13 16 1 0 36 36 13 12 11 1 0 32 31 16 12 12 1 0 35 32 13 9 9 1 1 38 39 10 7 16 1 1 42 37 15 13 13 1 0 34 38 16 9 16 1 1 35 39 16 6 12 1 1 38 34 14 8 9 1 1 33 31 10 8 13 1 1 32 37 13 6 14 1 1 33 36 15 9 19 1 1 34 32 16 11 13 1 1 32 38 12 8 12 0 0 27 26 13 10 10 0 0 31 26 12 8 14 0 0 38 33 17 14 16 0 1 34 39 15 10 10 0 0 24 30 10 8 11 0 0 30 33 14 11 14 0 1 26 25 11 12 12 0 1 34 38 13 12 9 0 0 27 37 16 12 9 0 0 37 31 12 5 11 0 1 36 37 16 12 16 0 0 41 35 12 10 9 0 1 29 25 9 7 13 0 1 36 28 12 12 16 0 0 32 35 15 11 13 0 1 37 33 12 8 9 0 0 30 30 12 9 12 0 1 31 31 14 10 16 0 1 38 37 12 9 11 0 1 36 36 16 12 14 0 0 35 30 11 6 13 0 0 31 36 19 15 15 0 0 38 32 15 12 14 0 1 22 28 8 12 16 0 1 32 36 16 12 13 0 0 36 34 17 11 14 0 1 39 31 12 7 15 0 0 28 28 11 7 13 0 0 32 36 11 5 11 0 1 32 36 14 12 11 0 1 38 40 16 12 14 0 1 32 33 12 3 15 0 1 35 37 16 11 11 0 1 32 32 13 10 15 0 0 37 38 15 12 12 0 1 34 31 16 9 14 0 1 33 37 16 12 14 0 0 33 33 14 9 8 0 0 30 30 16 12 9 0 0 24 30 14 10 15 0 0 34 31 11 9 17 0 0 34 32 12 12 13 0 1 33 34 15 8 15 0 1 34 36 15 11 15 0 1 35 37 16 11 14 0 0 35 36 16 12 16 0 0 36 33 11 10 13 0 0 34 33 15 10 16 0 1 34 33 12 12 9 0 0 41 44 12 12 16 0 0 32 39 15 11 11 0 0 30 32 15 8 10 0 1 35 35 16 12 11 0 0 28 25 14 10 15 0 1 33 35 17 11 17 0 1 39 34 14 10 14 0 0 36 35 13 8 8 0 1 36 39 15 12 15 0 0 35 33 13 12 11 0 0 38 36 14 10 16 0 1 33 32 15 12 10 0 0 31 32 12 9 15 0 1 32 36 8 6 16 0 0 31 32 14 10 19 0 0 33 34 14 9 12 0 0 34 33 11 9 8 0 0 34 35 12 9 11 0 1 34 30 13 6 14 0 0 33 38 10 10 9 0 0 32 34 16 6 15 0 1 41 33 18 14 13 0 1 34 32 13 10 16 0 0 36 31 11 10 11 0 0 37 30 4 6 12 0 0 36 27 13 12 13 0 1 29 31 16 12 10 0 0 37 30 10 7 11 0 0 27 32 12 8 12 0 0 35 35 12 11 8 0 0 28 28 10 3 12 0 0 35 33 13 6 12 0 0 29 35 12 8 11 0 0 32 35 14 9 13 0 1 36 32 10 9 14 0 1 19 21 12 8 10 0 1 21 20 12 9 12 0 0 31 34 11 7 15 0 0 33 32 10 7 13 0 1 36 34 12 6 13 0 1 33 32 16 9 13 0 0 37 33 12 10 12 0 0 34 33 14 11 12 0 0 35 37 16 12 9 0 1 31 32 14 8 9 0 1 37 34 13 11 15 0 1 35 30 4 3 10 0 1 27 30 15 11 14 0 0 34 38 11 12 15 0 0 40 36 11 7 7 0 0 29 32 14 9 14 0 0 38 34 15 12 8 0 1 34 33 14 8 10 0 0 21 27 13 11 13 0 0 36 32 11 8 13 0 1 38 34 15 10 13 0 0 30 29 11 8 8 0 0 35 35 13 7 12 0 1 30 27 13 8 13 0 1 36 33 16 10 12 0 0 34 38 13 8 10 0 1 35 36 16 12 13 0 0 34 33 16 14 12 0 0 32 39 12 7 9 0 1 33 29 7 6 15 0 0 33 32 16 11 13 0 1 26 34 5 4 13 0 0 35 38 16 9 13 0 0 21 17 4 5 15 0 0 38 35 12 9 15 0 0 35 32 15 11 14 0 1 33 34 14 12 15 0 0 37 36 11 9 11 0 0 38 31 16 12 15 0 1 34 35 15 10 14 0 0 27 29 12 9 13 0 1 16 22 6 6 12 0 0 40 41 16 10 16 0 0 36 36 10 9 16 0 1 42 42 15 13 9 0 1 30 33 14 12 14
Names of X columns:
Pop Gender Connected Separate Learning Software Happiness
Chart options
R Code
library(brglm) roc.plot <- function (sd, sdc, newplot = TRUE, ...) { sall <- sort(c(sd, sdc)) sens <- 0 specc <- 0 for (i in length(sall):1) { sens <- c(sens, mean(sd >= sall[i], na.rm = T)) specc <- c(specc, mean(sdc >= sall[i], na.rm = T)) } if (newplot) { plot(specc, sens, xlim = c(0, 1), ylim = c(0, 1), type = 'l', xlab = '1-specificity', ylab = 'sensitivity', main = 'ROC plot', ...) abline(0, 1) } else lines(specc, sens, ...) npoints <- length(sens) area <- sum(0.5 * (sens[-1] + sens[-npoints]) * (specc[-1] - specc[-npoints])) lift <- (sens - specc)[-1] cutoff <- sall[lift == max(lift)][1] sensopt <- sens[-1][lift == max(lift)][1] specopt <- 1 - specc[-1][lift == max(lift)][1] list(area = area, cutoff = cutoff, sensopt = sensopt, specopt = specopt) } roc.analysis <- function (object, newdata = NULL, newplot = TRUE, ...) { if (is.null(newdata)) { sd <- object$fitted[object$y == 1] sdc <- object$fitted[object$y == 0] } else { sd <- predict(object, newdata, type = 'response')[newdata$y == 1] sdc <- predict(object, newdata, type = 'response')[newdata$y == 0] } roc.plot(sd, sdc, newplot, ...) } hosmerlem <- function (y, yhat, g = 10) { cutyhat <- cut(yhat, breaks = quantile(yhat, probs = seq(0, 1, 1/g)), include.lowest = T) obs <- xtabs(cbind(1 - y, y) ~ cutyhat) expect <- xtabs(cbind(1 - yhat, yhat) ~ cutyhat) chisq <- sum((obs - expect)^2/expect) P <- 1 - pchisq(chisq, g - 2) c('X^2' = chisq, Df = g - 2, 'P(>Chi)' = P) } x <- as.data.frame(t(y)) r <- brglm(x) summary(r) rc <- summary(r)$coeff try(hm <- hosmerlem(y[1,],r$fitted.values),silent=T) try(hm,silent=T) bitmap(file='test0.png') ra <- roc.analysis(r) dev.off() te <- array(0,dim=c(2,99)) for (i in 1:99) { threshold <- i / 100 numcorr1 <- 0 numfaul1 <- 0 numcorr0 <- 0 numfaul0 <- 0 for (j in 1:length(r$fitted.values)) { if (y[1,j] > 0.99) { if (r$fitted.values[j] >= threshold) numcorr1 = numcorr1 + 1 else numfaul1 = numfaul1 + 1 } else { if (r$fitted.values[j] < threshold) numcorr0 = numcorr0 + 1 else numfaul0 = numfaul0 + 1 } } te[1,i] <- numfaul1 / (numfaul1 + numcorr1) te[2,i] <- numfaul0 / (numfaul0 + numcorr0) } bitmap(file='test1.png') op <- par(mfrow=c(2,2)) plot((1:99)/100,te[1,],xlab='Threshold',ylab='Type I error', main='1 - Specificity') plot((1:99)/100,te[2,],xlab='Threshold',ylab='Type II error', main='1 - Sensitivity') plot(te[1,],te[2,],xlab='Type I error',ylab='Type II error', main='(1-Sens.) vs (1-Spec.)') plot((1:99)/100,te[1,]+te[2,],xlab='Threshold',ylab='Sum of Type I & II error', main='(1-Sens.) + (1-Spec.)') par(op) dev.off() load(file='createtable') a<-table.start() a<-table.row.start(a) a<-table.element(a,'Coefficients of Bias-Reduced Logistic Regression',5,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Variable',header=TRUE) a<-table.element(a,'Parameter',header=TRUE) a<-table.element(a,'S.E.',header=TRUE) a<-table.element(a,'t-stat',header=TRUE) a<-table.element(a,'2-sided p-value',header=TRUE) a<-table.row.end(a) for (i in 1:length(rc[,1])) { a<-table.row.start(a) a<-table.element(a,labels(rc)[[1]][i],header=TRUE) a<-table.element(a,rc[i,1]) a<-table.element(a,rc[i,2]) a<-table.element(a,rc[i,3]) a<-table.element(a,2*(1-pt(abs(rc[i,3]),r$df.residual))) a<-table.row.end(a) } a<-table.end(a) table.save(a,file='mytable.tab') a<-table.start() a<-table.row.start(a) a<-table.element(a,'Summary of Bias-Reduced Logistic Regression',2,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Deviance',1,TRUE) a<-table.element(a,r$deviance) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Penalized deviance',1,TRUE) a<-table.element(a,r$penalized.deviance) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Residual Degrees of Freedom',1,TRUE) a<-table.element(a,r$df.residual) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'ROC Area',1,TRUE) a<-table.element(a,ra$area) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Hosmer–Lemeshow test',2,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Chi-square',1,TRUE) phm <- array('NA',dim=3) for (i in 1:3) { try(phm[i] <- hm[i],silent=T) } a<-table.element(a,phm[1]) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Degrees of Freedom',1,TRUE) a<-table.element(a,phm[2]) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'P(>Chi)',1,TRUE) a<-table.element(a,phm[3]) a<-table.row.end(a) a<-table.end(a) table.save(a,file='mytable1.tab') a<-table.start() a<-table.row.start(a) a<-table.element(a,'Fit of Logistic Regression',4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Index',1,TRUE) a<-table.element(a,'Actual',1,TRUE) a<-table.element(a,'Fitted',1,TRUE) a<-table.element(a,'Error',1,TRUE) a<-table.row.end(a) for (i in 1:length(r$fitted.values)) { a<-table.row.start(a) a<-table.element(a,i,1,TRUE) a<-table.element(a,y[1,i]) a<-table.element(a,r$fitted.values[i]) a<-table.element(a,y[1,i]-r$fitted.values[i]) a<-table.row.end(a) } a<-table.end(a) table.save(a,file='mytable2.tab') a<-table.start() a<-table.row.start(a) a<-table.element(a,'Type I & II errors for various threshold values',3,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Threshold',1,TRUE) a<-table.element(a,'Type I',1,TRUE) a<-table.element(a,'Type II',1,TRUE) a<-table.row.end(a) for (i in 1:99) { a<-table.row.start(a) a<-table.element(a,i/100,1,TRUE) a<-table.element(a,te[1,i]) a<-table.element(a,te[2,i]) a<-table.row.end(a) } a<-table.end(a) table.save(a,file='mytable3.tab')
Compute
Summary of computational transaction
Raw Input
view raw input (R code)
Raw Output
view raw output of R engine
Computing time
0 seconds
R Server
Big Analytics Cloud Computing Center
Click here to blog (archive) this computation