===================================================================

                                                REGRESSZIÓK

===================================================================

Az online és offline kirekesztő és áldozati szerepek kialakulására ható tényezők vizsgálatára négy regressziós modellt hoztunk létre 3-3 lépésben.

A négy függő változó eredetileg az online és offline áldozattá és elkövetővé válás gyakoriságát tartalmazta, de ezek eloszlása annyira ferde volt (a megfigyelések túlnyomó többsége 0 értéket vett fel, lásd: a “plot_…” ábrákat), hogy a változók bináris kódolása és ezzel együtt bináris logisztikus regressziós modellek futtatása mellett döntöttünk. A becsült értékek (Estimates) tehát az éppen vizsgált szerep elmúlt négy hónapban történő betöltéséhez tartozó esély természetes alapú logaritmusát mutatják. Az utolsó oszlopban (Pr(>|z|)) pedig a becsült értékekhez tartozó szignifikancia látható.

Az adatbázis megtisztítása után egy 796 elemű mintát kaptunk, amelyen mind a 4 függő változó vizsgálatára 3, ugyan olyan logika mentén felépített modellt alkottunk meg. (Az adatbázisban csak azok a tanulók maradtak (1) értelmezhető választ adtak marra a kérdésre, hogy részt vesznek-e a Tabby kutatásban, akik azt vallották, hogy Magyarországon élnek és akiknek legalább egy online közösségben van felhasználói profiljuk.

Az első lépésben az életkor, a nem, az iskolai osztály, a szubjektív tanulói teljesítmény, a szubjektív iskolai népszerűség, a szubjektív online népszerűség, az online barátok száma, és az került be a modellbe, hogy a tanuló szülei és / vagy tanárai milyen gyakran beszélgetnek a diákkal az internet-használat veszélyeiről. A második modellben bekerült az épp vizsgált online / offline szerepnek az offline / online ellentét párja, mint magyarázó változó. Ezzel azt vizsgáljuk, hogy az online és az offline bántalmazás / áldozattá válás mennyire függ össze egymással. A harmadik modellben pedig a vizsgált szerepnek az online és offline ellentétes szerep párja kerül be a modellbe. Tehát pl.: az első esetben a az offline bullying áldozatává válás mértéke mellé bekerül az online és offline kirekesztő szerep vizsgálata magyarázó változóként, ezzel azt vizsgálva, hogy a bántalmazó és bántalmazott szerepek mennyire függenek össze egymással. Ezen összefüggések vizsgálatának létjogosultságát előre vetíti, hogy a négy vizsgált szerep típus mindegyike (ha nem is túl erősen, de) szignifikánsan összefügg egymással (lásd: “plot_cor”).

1.1 - 1.3 Az első három modell függő változója az offline bullying áldozatává válás mértéke. Az első (1.1) modell futtatás egyetlen említésre méltó eredménye, hogy az iskolai önbevallás alapján mért népszerűség növekedésével nő az offline áldozattá válás esélye. A második (1.2) modell esetében, mikor kontrollálunk az online áldozati szerep betöltésére is, a fenti hatás eltűnik, ez utóbbi viszont kiemelkedően növeli az offline és bántalmazás esélyét; a két térben történő áldozati szerep tehát összefügg egymással. A harmadik, legteljesebb (1.3) modell tanúsága szerint pedig az iskolai népszerűség, az online áldozati szerep betöltése és az offline bullying magatartás növeli szignifikánsan az offline áldozati szerep betöltésének esélyét. Ebből tehát az következik, hogy azok akiket online bátalmazás ér, nagyobb eséllyel lesznek offline is bántalmazva és ugyanakkor ők maguk is nagyobb eséllyel követnek el offline bántalmazást.

2.1 - 2.3 Az online áldozati szerep kialakulását vizsgáló modellek az előzőekhez modellekhez képest többet elárulnak a szerep kialakulásának lehetséges okairól. Az első (2.1) modell szerint az online térben észlelt népszerűség és az online térben eltöltött idő szignifikánsan csökkenti a szerep kialakulásának esélyét, míg az online barátok számnak növekedésével szignifikánsan nő az online áldozati szerep kialakulásának esélye. Ennek kialakulásának esélyét az offline áldozati szerep tovább növeli (szignifikáns mértékben), miközben a fent említett hatások lényegében változatlanok maradnak (2.2) A harmadik modell esetében (2.3) pedig azt láthatjuk, hogy a 2.1-es és 2.2-es modellekben tapasztalt hatások bár valamelyest gyengébben, de továbbra is szignifikánsak maradnak, és hozzájuk csatlakozik az online térben történő bántalmazás rendkívül erős pozitív hatása, amely ez esetben is arra utal (mintegy az (1.1-1.3)-as modellek megerősítéseként), hogy az online bántalmazó és bántalmazott szerepek is erősen összefüggenek egymással.

3.1-3.3 Ami az offline bántalmazó szerepek kialakulásának lehetséges okait illet, azt fontos kiemelni, hogy az iskolai népszerűség és az online töltött idő negatív hatásán túl a legerősebb hatása a nemnek van. Mégpedig azt mondhatjuk, hogy az offline bántalmazást elkövető személyek nagyrészt fiúk. Egészen pontosan azt mutatják az eredmények, hogy ha az illető lány, akkor annak az esélye, hogy offline bántalmazást kövessen el, 0,38-szor kissebb, mint ha az illető fiú (3.1). A második (3.2) modell alapján mindezt annyival egészíthetjük ki, hogy az offline bántalmazás elkövetésének esélye nagy mártákben és szignifikánsan növekszik akkor, ha az illető online is bántalmazó szerepet tölt be. A harmadik (3.3) modell szerint pedig mindezeken túl, mindennél erősebb hatása annak van az online bántalmazó szerep kialakulására, ha az illetőt offline bántalmazzák.

4.1-4.3 Az első modell szerint (4.1) azt láthatjuk, hogy online bántalmazó szerep kialakulását ugyan azon tényezők befolyásolják, mint amit a fenti offline esetben tapasztaltunk (3.1). Tehát az iskolai népszerűség és az online töltött idő negatív hatásán túl a legerősebb hatása a nemnek van. Ugyan úgy erősen hat a szerep kialakulására, ha az illető offline is bántalmazó (4.2). A harmadik (4.3) modell esetében viszont itt azt láthatjuk, hogy az offline áldozati szerep nem, az online áldozati szerep viszont erősen és szignifikánsan növeli az online bántalmazó szerep kialakulását.

Ezt összevetve a (3.3)-as modellel azt mondhatjuk, hogy az áldozati és elkövető szerepek bár nagyon erősen összefüggnek egymással de a két online szerep egymással és a két offline szerep is egymással van kölcsönösen erős kapcsolatban, míg az online és offline szerepek kevésbé hatnak egymásra.

# <code R>

# ===================================================================
#
# TABBY II.
#
# Descriptives
# Regressions
# Factors
# Aug / 19 /2014
#
# ===================================================================

# Description comes here

# ===================================================================
# (0) LIBRARY AND WD
# ===================================================================

  # (0.1) libraries

        library(foreign)
    library(PerformanceAnalytics)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Loading required package: xts
## 
## Attaching package: 'PerformanceAnalytics'
## 
## The following object is masked from 'package:graphics':
## 
##     legend
    library(ggplot2)

    # (0.2) working directory

        # rm(list=ls())
        # whoareyou <- "NB"
        # path <- paste0("c:\\Users\\",whoareyou,"\\Dropbox\\My_Cx_Ray\\spar\\spar_orgchart_dashboard_analysis\\")
        # setwd(path)

        rm(list=ls())
        whoareyou <- "nb"
        path <- paste0("/home/",whoareyou,"/Dropbox/TABBY/TABBY II/elemzese_2014_08/") # !!! Spar library !!!
        setwd(path)


# ===================================================================
# (1) DATA PREPARATION
# ===================================================================

  # global setting
  options(stringsAsFactors = F)
  options(warn=-1)
  
  d <- read.spss("data_140803.sav", to.data.frame = T, use.value.labels = F)
## re-encoding from CP1250
# ===================================================================
# (2) DESCaRIPTIVES
# ===================================================================

    # (2.1) controls

        table(d$q1)
## 
##   0   1 
##  69 834
        table(d$country)
## 
##   2   3   4   9 
##   1   1 893   6
        table(d$profile)
## 
##   0   1   2 
##  48 439 417
        # restrict the data -> df
        df <- d[d$q1 == 1, ] # ...
        df <- df[df$profile != 0, ] # does have a Tabby profile
        df <- df[df$country == 4, ] # Hungarian

    # (2.2) dependents

        # offline

        table(df$victim_b)
## 
##   0   1   2   3   4 
## 659  75  30   9  20
    x <- df$victim_b 
    h<-hist(x, breaks=10, col="red", xlab="offline victim", 
            main="Histogram: offline victim") 
    xfit<-seq(min(x, na.rm=T),max(x, na.rm=T),length=40) 
    yfit<-dnorm(xfit,mean=mean(x, na.rm=T),sd=sd(x, na.rm=T)) 
    yfit <- yfit*diff(h$mids[1:2])*length(x) 
    lines(xfit, yfit, col="blue", lwd=2)

plot of chunk unnamed-chunk-1

    table(df$bully_b)
## 
##   0   1   2   3   4 
## 691  62  14  14  12
    x <- df$bully_b 
    h<-hist(x, breaks=10, col="red", xlab="offline bully", 
            main="Histogram: offline bully") 
    xfit<-seq(min(x, na.rm=T),max(x, na.rm=T),length=40) 
    yfit<-dnorm(xfit,mean=mean(x, na.rm=T),sd=sd(x, na.rm=T)) 
    yfit <- yfit*diff(h$mids[1:2])*length(x) 
    lines(xfit, yfit, col="blue", lwd=2)

plot of chunk unnamed-chunk-1

        # online

        table(df$victim_cb_score)
## 
##   0   1   2   3   4   5   6   7   8   9  10  11  12  13  17 
## 524 150  62  18  16   8   7   1   1   1   1   1   1   1   1
    x <- df$victim_cb_score 
    h<-hist(x, breaks=10, col="red", xlab="online victim", 
            main="Histogram: online victim") 
    xfit<-seq(min(x, na.rm=T),max(x, na.rm=T),length=40) 
    yfit<-dnorm(xfit,mean=mean(x, na.rm=T),sd=sd(x, na.rm=T)) 
    yfit <- yfit*diff(h$mids[1:2])*length(x) 
    lines(xfit, yfit, col="blue", lwd=2)

plot of chunk unnamed-chunk-1

        table(df$bully_cb_score)
## 
##   0   1   2   3   4   5   6   7   8   9  10  11  12  14  15  20 
## 501 141  51  19  46  14   9   1   1   2   1   2   1   1   1   1
    x <- df$bully_cb_score 
    h<-hist(x, breaks=10, col="red", xlab="online bully", 
            main="Histogram: online bully") 
    xfit<-seq(min(x, na.rm=T),max(x, na.rm=T),length=40) 
    yfit<-dnorm(xfit,mean=mean(x, na.rm=T),sd=sd(x, na.rm=T)) 
    yfit <- yfit*diff(h$mids[1:2])*length(x) 
    lines(xfit, yfit, col="blue", lwd=2)

plot of chunk unnamed-chunk-1

    # recoding tue to the skewed destribution
    
    df$victim_b[df$victim_b != 0] <- 1
    df$bully_b[df$bully_b != 0] <- 1
    df$victim_cb_score[df$victim_cb_score != 0] <- 1
    df$bully_cb_score[df$bully_cb_score != 0] <- 1

        # pairwise correlations:

        cor(df$victim_b, df$bully_b, use = "na.or.complete", method = "spearman")
## [1] 0.269
        cor(df$victim_cb_score, df$bully_cb_score, use = "na.or.complete", method = "spearman")
## [1] 0.2608
        cor(df$victim_b, df$victim_cb_score, use = "na.or.complete", method = "spearman")
## [1] 0.3024
        cor(df$bully_b, df$bully_cb_score, use = "na.or.complete", method = "spearman")
## [1] 0.2347
    # group correlation

    # Correlation matrix with p-values. See http://goo.gl/nahmV for documentation of this function
    cor.prob <- function (X, dfr = nrow(X) - 2) {
      R <- cor(X, use="pairwise.complete.obs", method = "spearman")
      above <- row(R) < col(R)
      r2 <- R[above]^2
      Fstat <- r2 * dfr/(1 - r2)
      R[above] <- 1 - pf(Fstat, 1, dfr)
      R[row(R) == col(R)] <- NA
      R
    }
    
    # Use this to dump the cor.prob output to a 4 column matrix
    # with row/column indices, correlation, and p-value.
    # See StackOverflow question: http://goo.gl/fCUcQ
    flattenSquareMatrix <- function(m) {
      if( (class(m) != "matrix") | (nrow(m) != ncol(m))) stop("Must be a square matrix.") 
      if(!identical(rownames(m), colnames(m))) stop("Row and column names must be equal.")
      ut <- upper.tri(m)
      data.frame(i = rownames(m)[row(m)[ut]],
                 j = rownames(m)[col(m)[ut]],
                 cor=t(m)[ut],
                 p=m[ut])
    }

    cor_data <- cbind(df$victim_b, df$bully_b, df$victim_cb_score, df$bully_cb_score)
    colnames(cor_data) <- c("victim_b", "bully_b", "victim_cb_score", "bully_cb_score")
    cor_data[,1] <- as.numeric(cor_data[,1])
    cor_data[,2] <- as.numeric(cor_data[,2])
    cor_data[,3] <- as.numeric(cor_data[,3])
    cor_data[,4] <- as.numeric(cor_data[,4])

    # correlation matrix
    cor(cor_data)
##                 victim_b bully_b victim_cb_score bully_cb_score
## victim_b               1      NA              NA             NA
## bully_b               NA       1              NA             NA
## victim_cb_score       NA      NA               1             NA
## bully_cb_score        NA      NA              NA              1
    # correlation matrix with p-values
    cor.prob(cor_data)
##                 victim_b   bully_b victim_cb_score bully_cb_score
## victim_b              NA 1.155e-14       0.0000000      2.777e-02
## bully_b           0.2690        NA       0.0000122      2.017e-11
## victim_cb_score   0.3024 1.543e-01              NA      7.616e-14
## bully_cb_score    0.0780 2.347e-01       0.2608153             NA
    # "flatten" that table
    flattenSquareMatrix(cor.prob(cor_data))
##                 i               j    cor         p
## 1        victim_b         bully_b 0.2690 1.155e-14
## 2        victim_b victim_cb_score 0.3024 0.000e+00
## 3         bully_b victim_cb_score 0.1543 1.220e-05
## 4        victim_b  bully_cb_score 0.0780 2.777e-02
## 5         bully_b  bully_cb_score 0.2347 2.017e-11
## 6 victim_cb_score  bully_cb_score 0.2608 7.616e-14
    # plot the data
    chart.Correlation(cor_data)

plot of chunk unnamed-chunk-1

    # (2.3) explanatories

        table(df$grade) # everything was excluded beyond 1-6 range
## 
##   1   2   3   4   5   6 
## 217 168 136  64  24 184
        table(df$age) # everything was excluded beyond 10-19 range
## 
##   10   11   12   13   14   15   16 16.5   17   18   19 
##    5   25   40   14   57  222  213    1  135   63    8
        table(df$female) # regular dummy
## 
## 0                      1                      
##                    321                    472
        table(df$online_friends) # everything was excluded beyond 0-1500 range
## 
##    0    1    2    5   10   15   20   22   23   24   25   27   29   30   34 
##    3    1    1    1    2    2    1    1    1    2    1    1    1    4    2 
##   35   40   45   47   50   60   64   70   72   73   78   80   87   90   92 
##    1    6    1    1   11    1    1    3    1    1    2    6    1    4    1 
##   93   96   97  100  110  118  120  125  126  128  129  130  132  142  145 
##    2    1    1   27    3    1    8    2    1    1    1    7    2    1    1 
##  147  150  152  159  160  165  170  180  183  185  186  190  192  193  200 
##    2   16    1    1    2    3    3    2    2    1    1    1    1    1   28 
##  210  215  216  220  221  230  238  240  245  250  251  255  256  258  260 
##    1    1    2    1    1    3    1    1    1   19    2    1    1    1    2 
##  265  266  268  270  272  275  280  288  290  291  293  298  300  310  312 
##    2    1    1    4    1    1    1    1    1    1    1    2   47    1    1 
##  318  320  323  327  330  333  335  343  344  348  350  353  356  358  362 
##    1    3    1    1    2    1    1    1    1    2   19    1    1    1    1 
##  364  365  366  370  371  380  381  388  393  400  412  415  418  420  423 
##    1    3    2    3    2    3    1    1    1   44    1    1    1    4    1 
##  425  429  430  435  444  448  450  464  469  471  479  487  490  491  493 
##    1    1    3    1    1    1    8    1    1    1    1    1    3    1    1 
##  500  503  505  510  513  519  520  521  526  529  530  534  536  539  540 
##   53    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
##  550  555  560  561  565  567  575  578  580  600  601  615  620  625  628 
##    4    2    2    1    1    1    1    1    2   42    1    1    2    1    1 
##  630  640  641  642  650  658  660  666  668  670  680  685  689  690  700 
##    2    1    1    1    6    1    1    3    1    1    1    1    1    1   29 
##  705  707  709  725  736  750  760  778  780  788  800  820  830  840  847 
##    1    1    1    1    1    6    2    1    1    2   34    2    1    1    1 
##  850  853  882  892  898  899  900  906  920  932  943  946  956  967  978 
##    3    1    1    3    1    1    8    1    1    1    1    1    1    2    1 
##  990  993 1000 1002 1010 1014 1018 1030 1034 1100 1109 1118 1131 1200 1228 
##    1    1   31    1    1    1    2    1    1    4    1    1    1    9    1 
## 1234 1245 1260 1261 1300 1353 1400 1431 1434 1450 1469 1500 
##    1    1    1    1    3    1    3    1    1    1    1   11
        table(df$q20)
## 
##   0   1   2   3   4 
##  25 200 263 174 131
        df$pop_sch <- df$q20 # popularity at school
            df$pop_sch[df$q20 == 0] <- 5
            df$pop_sch[df$q20 == 1] <- 4
            df$pop_sch[df$q20 == 2] <- 3  
            df$pop_sch[df$q20 == 3] <- 2
            df$pop_sch[df$q20 == 4] <- 1
        table(df$pop_sch)
## 
##   1   2   3   4   5 
## 131 174 263 200  25
        table(df$q21)
## 
##   0   1   2   3   4 
##  55 273 289 119  57
        df$pop_cb <- df$q21 # popularity online
            df$pop_cb[df$q21 == 0] <- 5 
            df$pop_cb[df$q21 == 1] <- 4
            df$pop_cb[df$q21 == 2] <- 3
            df$pop_cb[df$q21 == 3] <- 2
            df$pop_cb[df$q21 == 4] <- 1
        table(df$pop_cb)
## 
##   1   2   3   4   5 
##  57 119 289 273  55
        table(df$q23)
## 
##   1   2   3   4   5 
## 223 368 110  66  26
        df$parent_netsec <- df$q23 # talking about net security with parents
            df$parent_netsec[df$q23 == 1] <- 5
            df$parent_netsec[df$q23 == 2] <- 4
            df$parent_netsec[df$q23 == 3] <- 3
            df$parent_netsec[df$q23 == 4] <- 2
            df$parent_netsec[df$q23 == 5] <- 1
        table(df$parent_netsec)
## 
##   1   2   3   4   5 
##  26  66 110 368 223
        table(df$q24)
## 
##   1   2   3   4   5 
## 238 377 108  48  22
        df$teacher_netsec <- df$q24 # talking about net security with teachers
            df$teacher_netsec[df$q24 == 1] <- 5
            df$teacher_netsec[df$q24 == 2] <- 4
            df$teacher_netsec[df$q24 == 3] <- 3
            df$teacher_netsec[df$q24 == 4] <- 2
            df$teacher_netsec[df$q24 == 5] <- 1
        table(df$teacher_netsec)
## 
##   1   2   3   4   5 
##  22  48 108 377 238
        table(df$q22)
## 
##   0   1   2   3   4 
## 196 419 132  30  16
            df$time_online <- df$q22 # how many hours online (categorical)
            df$time_online[df$q22 == 0] <- 5
            df$time_online[df$q22 == 1] <- 4
            df$time_online[df$q22 == 2] <- 3
            df$time_online[df$q22 == 3] <- 2
            df$time_online[df$q22 == 4] <- 1
        table(df$time_online)
## 
##   1   2   3   4   5 
##  16  30 132 419 196
        table(df$q25)
## 
##   1   2   3   4   5 
##  10  29 411 268  75
            df$performance <- df$q25 # self-declared school performance
            df$performance[df$q25 == 1] <- 5
            df$performance[df$q25 == 2] <- 4
            df$performance[df$q25 == 3] <- 3
            df$performance[df$q25 == 4] <- 2
            df$performance[df$q25 == 5] <- 1
        table(df$performance)
## 
##   1   2   3   4   5 
##  75 268 411  29  10
# ===================================================================
# (3) REGRESSIONS
# ===================================================================

    # (3.1) victim off-line 

    # (1.1)
        fit11 <- glm(df$victim_b ~
                  df$age + df$female + df$grade + df$performance
                  + df$pop_sch + df$pop_cb + df$online_friends
                                    + df$time_online + df$parent_netsec + df$teacher_netsec,
                  family = binomial)
        summary(fit11)
## 
## Call:
## glm(formula = df$victim_b ~ df$age + df$female + df$grade + df$performance + 
##     df$pop_sch + df$pop_cb + df$online_friends + df$time_online + 
##     df$parent_netsec + df$teacher_netsec, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -0.996  -0.622  -0.560  -0.498   2.231  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)  
## (Intercept)                      0.066995   1.227684    0.05    0.956  
## df$age                          -0.095659   0.060918   -1.57    0.116  
## df$female1                       0.127714   0.213114    0.60    0.549  
## df$grade                         0.048507   0.052960    0.92    0.360  
## df$performance                  -0.013142   0.136097   -0.10    0.923  
## df$pop_sch                       0.228572   0.113273    2.02    0.044 *
## df$pop_cb                       -0.201768   0.120464   -1.67    0.094 .
## df$online_friends                0.000149   0.000341    0.44    0.662  
## df$time_online                  -0.113274   0.122146   -0.93    0.354  
## df$parent_netsec                -0.008418   0.103742   -0.08    0.935  
## df$teacher_netsec               -0.007325   0.108488   -0.07    0.946  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 676.91  on 761  degrees of freedom
## Residual deviance: 666.83  on 751  degrees of freedom
##   (34 observations deleted due to missingness)
## AIC: 688.8
## 
## Number of Fisher Scoring iterations: 4
    # (1.2)
    fit12 <- glm(df$victim_b ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$victim_cb_score,
                family = binomial)
    summary(fit12)
## 
## Call:
## glm(formula = df$victim_b ~ df$age + df$female + df$grade + df$performance + 
##     df$pop_sch + df$pop_cb + df$online_friends + df$time_online + 
##     df$parent_netsec + df$teacher_netsec + df$victim_cb_score, 
##     family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.200  -0.546  -0.427  -0.363   2.519  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                     -1.027674   1.285038   -0.80     0.42    
## df$age                          -0.094713   0.063903   -1.48     0.14    
## df$female1                       0.169889   0.223532    0.76     0.45    
## df$grade                         0.049161   0.055680    0.88     0.38    
## df$performance                  -0.016133   0.142311   -0.11     0.91    
## df$pop_sch                       0.183038   0.118349    1.55     0.12    
## df$pop_cb                       -0.107207   0.125724   -0.85     0.39    
## df$online_friends               -0.000201   0.000363   -0.55     0.58    
## df$time_online                  -0.014656   0.129896   -0.11     0.91    
## df$parent_netsec                 0.042438   0.107210    0.40     0.69    
## df$teacher_netsec               -0.066606   0.114664   -0.58     0.56    
## df$victim_cb_score               1.599441   0.216093    7.40  1.3e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 676.91  on 761  degrees of freedom
## Residual deviance: 609.08  on 750  degrees of freedom
##   (34 observations deleted due to missingness)
## AIC: 633.1
## 
## Number of Fisher Scoring iterations: 5
    # (1.3)
    fit13 <- glm(df$victim_b ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$victim_cb_score
                + df$bully_b + df$bully_cb_score,
                family = binomial)
    summary(fit13)
## 
## Call:
## glm(formula = df$victim_b ~ df$age + df$female + df$grade + df$performance + 
##     df$pop_sch + df$pop_cb + df$online_friends + df$time_online + 
##     df$parent_netsec + df$teacher_netsec + df$victim_cb_score + 
##     df$bully_b + df$bully_cb_score, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.734  -0.592  -0.400  -0.317   2.724  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                     -2.089363   1.359915   -1.54    0.124    
## df$age                          -0.075424   0.066259   -1.14    0.255    
## df$female1                       0.290419   0.239454    1.21    0.225    
## df$grade                         0.066716   0.057164    1.17    0.243    
## df$performance                  -0.034594   0.145390   -0.24    0.812    
## df$pop_sch                       0.266396   0.124867    2.13    0.033 *  
## df$pop_cb                       -0.142871   0.131106   -1.09    0.276    
## df$online_friends               -0.000142   0.000383   -0.37    0.711    
## df$time_online                   0.086435   0.136998    0.63    0.528    
## df$parent_netsec                 0.019268   0.110467    0.17    0.862    
## df$teacher_netsec               -0.058164   0.119773   -0.49    0.627    
## df$victim_cb_score               1.597727   0.229033    6.98  3.0e-12 ***
## df$bully_b                       1.502440   0.288301    5.21  1.9e-07 ***
## df$bully_cb_score               -0.198204   0.244206   -0.81    0.417    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 673.27  on 760  degrees of freedom
## Residual deviance: 577.16  on 747  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 605.2
## 
## Number of Fisher Scoring iterations: 5
  # (3.2) victim online-line

    # (2.1)
    fit21 <- glm(df$victim_cb_score ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec,
                family = binomial)
    summary(fit21)
## 
## Call:
## glm(formula = df$victim_cb_score ~ df$age + df$female + df$grade + 
##     df$performance + df$pop_sch + df$pop_cb + df$online_friends + 
##     df$time_online + df$parent_netsec + df$teacher_netsec, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.550  -0.890  -0.722   1.263   2.009  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)   
## (Intercept)                      0.653352   1.015623    0.64   0.5200   
## df$age                          -0.019595   0.051062   -0.38   0.7012   
## df$female1                      -0.016637   0.170473   -0.10   0.9223   
## df$grade                         0.007262   0.043265    0.17   0.8667   
## df$performance                  -0.029679   0.108506   -0.27   0.7845   
## df$pop_sch                       0.169968   0.090744    1.87   0.0611 . 
## df$pop_cb                       -0.295505   0.097125   -3.04   0.0023 **
## df$online_friends                0.000873   0.000267    3.28   0.0011 **
## df$time_online                  -0.276218   0.099098   -2.79   0.0053 **
## df$parent_netsec                -0.135693   0.084575   -1.60   0.1086   
## df$teacher_netsec                0.153578   0.089440    1.72   0.0860 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 960.05  on 761  degrees of freedom
## Residual deviance: 916.35  on 751  degrees of freedom
##   (34 observations deleted due to missingness)
## AIC: 938.4
## 
## Number of Fisher Scoring iterations: 4
    # (2.2)
    fit22 <- glm(df$victim_cb_score ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$victim_b,
                family = binomial)
    summary(fit22)
## 
## Call:
## glm(formula = df$victim_cb_score ~ df$age + df$female + df$grade + 
##     df$performance + df$pop_sch + df$pop_cb + df$online_friends + 
##     df$time_online + df$parent_netsec + df$teacher_netsec + df$victim_b, 
##     family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.995  -0.822  -0.642   1.016   2.121  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                      0.012366   1.063988    0.01    0.991    
## df$age                           0.004697   0.053469    0.09    0.930    
## df$female1                      -0.049826   0.177638   -0.28    0.779    
## df$grade                        -0.004944   0.045234   -0.11    0.913    
## df$performance                  -0.029988   0.113218   -0.26    0.791    
## df$pop_sch                       0.128371   0.093663    1.37    0.171    
## df$pop_cb                       -0.271488   0.100738   -2.69    0.007 ** 
## df$online_friends                0.000914   0.000279    3.28    0.001 ** 
## df$time_online                  -0.272370   0.104245   -2.61    0.009 ** 
## df$parent_netsec                -0.140333   0.088387   -1.59    0.112    
## df$teacher_netsec                0.165785   0.092817    1.79    0.074 .  
## df$victim_b                      1.591562   0.215189    7.40  1.4e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 960.05  on 761  degrees of freedom
## Residual deviance: 858.72  on 750  degrees of freedom
##   (34 observations deleted due to missingness)
## AIC: 882.7
## 
## Number of Fisher Scoring iterations: 4
    # (2.3)
    fit23 <- glm(df$victim_cb_score ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$victim_b
                + df$bully_b + df$bully_cb_score,
                family = binomial)
    summary(fit23)
## 
## Call:
## glm(formula = df$victim_cb_score ~ df$age + df$female + df$grade + 
##     df$performance + df$pop_sch + df$pop_cb + df$online_friends + 
##     df$time_online + df$parent_netsec + df$teacher_netsec + df$victim_b + 
##     df$bully_b + df$bully_cb_score, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.919  -0.795  -0.582   0.963   2.283  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                     -0.841856   1.108759   -0.76   0.4477    
## df$age                           0.006557   0.055384    0.12   0.9058    
## df$female1                       0.206526   0.189724    1.09   0.2764    
## df$grade                         0.008732   0.046424    0.19   0.8508    
## df$performance                  -0.028949   0.115003   -0.25   0.8013    
## df$pop_sch                       0.156319   0.096559    1.62   0.1055    
## df$pop_cb                       -0.262570   0.103141   -2.55   0.0109 *  
## df$online_friends                0.000766   0.000288    2.66   0.0077 ** 
## df$time_online                  -0.179753   0.107846   -1.67   0.0956 .  
## df$parent_netsec                -0.174436   0.090648   -1.92   0.0543 .  
## df$teacher_netsec                0.155052   0.094854    1.63   0.1021    
## df$victim_b                      1.588540   0.227076    7.00  2.6e-12 ***
## df$bully_b                       0.232820   0.273712    0.85   0.3950    
## df$bully_cb_score                0.964098   0.186242    5.18  2.3e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 959.27  on 760  degrees of freedom
## Residual deviance: 825.68  on 747  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 853.7
## 
## Number of Fisher Scoring iterations: 4
  # (3.3) bully off-line 

    # (3.1)
    fit31 <- glm(df$bully_b ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec,
                family = binomial)
    summary(fit31)
## 
## Call:
## glm(formula = df$bully_b ~ df$age + df$female + df$grade + df$performance + 
##     df$pop_sch + df$pop_cb + df$online_friends + df$time_online + 
##     df$parent_netsec + df$teacher_netsec, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.407  -0.545  -0.394  -0.297   2.651  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                      2.24e+00   1.48e+00    1.52  0.12944    
## df$age                          -1.29e-01   7.57e-02   -1.70  0.08903 .  
## df$female1                      -9.56e-01   2.47e-01   -3.86  0.00011 ***
## df$grade                        -8.29e-02   6.49e-02   -1.28  0.20153    
## df$performance                  -1.66e-02   1.55e-01   -0.11  0.91437    
## df$pop_sch                      -3.62e-01   1.31e-01   -2.76  0.00577 ** 
## df$pop_cb                        1.07e-01   1.38e-01    0.78  0.43708    
## df$online_friends               -1.56e-05   3.82e-04   -0.04  0.96738    
## df$time_online                  -4.43e-01   1.32e-01   -3.35  0.00082 ***
## df$parent_netsec                 2.06e-01   1.34e-01    1.53  0.12532    
## df$teacher_netsec                6.52e-03   1.30e-01    0.05  0.95992    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 553.43  on 761  degrees of freedom
## Residual deviance: 506.57  on 751  degrees of freedom
##   (34 observations deleted due to missingness)
## AIC: 528.6
## 
## Number of Fisher Scoring iterations: 5
    # (3.2)
    fit32 <- glm(df$bully_b ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$bully_cb_score,
                family = binomial)
    summary(fit32)
## 
## Call:
## glm(formula = df$bully_b ~ df$age + df$female + df$grade + df$performance + 
##     df$pop_sch + df$pop_cb + df$online_friends + df$time_online + 
##     df$parent_netsec + df$teacher_netsec + df$bully_cb_score, 
##     family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.439  -0.525  -0.360  -0.268   2.714  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                      2.055243   1.526958    1.35  0.17831    
## df$age                          -0.147165   0.077727   -1.89  0.05831 .  
## df$female1                      -0.820828   0.254287   -3.23  0.00125 ** 
## df$grade                        -0.081579   0.066062   -1.23  0.21687    
## df$performance                  -0.059329   0.157032   -0.38  0.70557    
## df$pop_sch                      -0.338692   0.131557   -2.57  0.01004 *  
## df$pop_cb                        0.146648   0.141270    1.04  0.29924    
## df$online_friends               -0.000299   0.000398   -0.75  0.45222    
## df$time_online                  -0.368656   0.137775   -2.68  0.00746 ** 
## df$parent_netsec                 0.179311   0.135716    1.32  0.18643    
## df$teacher_netsec               -0.041301   0.132046   -0.31  0.75445    
## df$bully_cb_score                0.965861   0.255633    3.78  0.00016 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 549.15  on 760  degrees of freedom
## Residual deviance: 487.23  on 749  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 511.2
## 
## Number of Fisher Scoring iterations: 5
    # (3.3)
    fit33 <- glm(df$bully_b ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$bully_cb_score
                + df$victim_b + df$victim_cb_score,
                family = binomial)
    summary(fit33)
## 
## Call:
## glm(formula = df$bully_b ~ df$age + df$female + df$grade + df$performance + 
##     df$pop_sch + df$pop_cb + df$online_friends + df$time_online + 
##     df$parent_netsec + df$teacher_netsec + df$bully_cb_score + 
##     df$victim_b + df$victim_cb_score, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.613  -0.503  -0.317  -0.212   2.701  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                      1.250529   1.571710    0.80  0.42624    
## df$age                          -0.125147   0.080198   -1.56  0.11865    
## df$female1                      -0.978792   0.265911   -3.68  0.00023 ***
## df$grade                        -0.091608   0.068373   -1.34  0.18030    
## df$performance                  -0.026908   0.161385   -0.17  0.86758    
## df$pop_sch                      -0.407908   0.137132   -2.97  0.00293 ** 
## df$pop_cb                        0.216479   0.149493    1.45  0.14759    
## df$online_friends               -0.000325   0.000403   -0.81  0.42047    
## df$time_online                  -0.378066   0.141163   -2.68  0.00740 ** 
## df$parent_netsec                 0.208122   0.139484    1.49  0.13568    
## df$teacher_netsec               -0.053641   0.135809   -0.39  0.69286    
## df$bully_cb_score                0.889895   0.270046    3.30  0.00098 ***
## df$victim_b                      1.511985   0.286354    5.28  1.3e-07 ***
## df$victim_cb_score               0.248228   0.275775    0.90  0.36806    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 549.15  on 760  degrees of freedom
## Residual deviance: 453.68  on 747  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 481.7
## 
## Number of Fisher Scoring iterations: 6
  # (3.4) bully on-line

    # (4.1)
    fit41 <- glm(df$bully_cb_score ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec,
                family = binomial)
    summary(fit41)
## 
## Call:
## glm(formula = df$bully_cb_score ~ df$age + df$female + df$grade + 
##     df$performance + df$pop_sch + df$pop_cb + df$online_friends + 
##     df$time_online + df$parent_netsec + df$teacher_netsec, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -2.099  -0.880  -0.627   1.081   2.131  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                      0.418251   1.054539    0.40  0.69165    
## df$age                           0.035037   0.053596    0.65  0.51329    
## df$female1                      -1.016731   0.173257   -5.87  4.4e-09 ***
## df$grade                        -0.052881   0.044701   -1.18  0.23681    
## df$performance                   0.072350   0.111993    0.65  0.51826    
## df$pop_sch                      -0.053330   0.091998   -0.58  0.56212    
## df$pop_cb                       -0.173279   0.098816   -1.75  0.07951 .  
## df$online_friends                0.000966   0.000275    3.52  0.00044 ***
## df$time_online                  -0.456300   0.103547   -4.41  1.0e-05 ***
## df$parent_netsec                 0.114383   0.090210    1.27  0.20481    
## df$teacher_netsec                0.139106   0.090905    1.53  0.12596    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 989.86  on 760  degrees of freedom
## Residual deviance: 879.67  on 750  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 901.7
## 
## Number of Fisher Scoring iterations: 4
    # (4.2)
    fit42 <- glm(df$bully_cb_score ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$bully_b,
                family = binomial)
    summary(fit42)
## 
## Call:
## glm(formula = df$bully_cb_score ~ df$age + df$female + df$grade + 
##     df$performance + df$pop_sch + df$pop_cb + df$online_friends + 
##     df$time_online + df$parent_netsec + df$teacher_netsec + df$bully_b, 
##     family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -2.369  -0.856  -0.617   1.056   2.161  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                     -0.163250   1.074985   -0.15  0.87929    
## df$age                           0.047474   0.054012    0.88  0.37942    
## df$female1                      -0.930862   0.175584   -5.30  1.1e-07 ***
## df$grade                        -0.045454   0.045144   -1.01  0.31400    
## df$performance                   0.080255   0.113583    0.71  0.47983    
## df$pop_sch                      -0.017606   0.093608   -0.19  0.85082    
## df$pop_cb                       -0.188892   0.099889   -1.89  0.05862 .  
## df$online_friends                0.000990   0.000276    3.58  0.00034 ***
## df$time_online                  -0.416985   0.105061   -3.97  7.2e-05 ***
## df$parent_netsec                 0.098855   0.090144    1.10  0.27280    
## df$teacher_netsec                0.145113   0.092081    1.58  0.11504    
## df$bully_b                       0.947466   0.254572    3.72  0.00020 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 989.86  on 760  degrees of freedom
## Residual deviance: 865.55  on 749  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 889.6
## 
## Number of Fisher Scoring iterations: 4
    # (4.3)
    fit43 <- glm(df$bully_cb_score ~
                  df$age + df$female + df$grade + df$performance
                + df$pop_sch + df$pop_cb + df$online_friends
                + df$time_online + df$parent_netsec + df$teacher_netsec
                + df$bully_b
                + df$victim_b + df$victim_cb_score,
                family = binomial)
    summary(fit43)
## 
## Call:
## glm(formula = df$bully_cb_score ~ df$age + df$female + df$grade + 
##     df$performance + df$pop_sch + df$pop_cb + df$online_friends + 
##     df$time_online + df$parent_netsec + df$teacher_netsec + df$bully_b + 
##     df$victim_b + df$victim_cb_score, family = binomial)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -2.161  -0.838  -0.560   0.995   2.247  
## 
## Coefficients:
##                                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                     -0.660180   1.108353   -0.60  0.55142    
## df$age                           0.049694   0.055448    0.90  0.37013    
## df$female1                      -0.970712   0.180678   -5.37  7.8e-08 ***
## df$grade                        -0.047858   0.046305   -1.03  0.30136    
## df$performance                   0.089280   0.116126    0.77  0.44200    
## df$pop_sch                      -0.053806   0.095853   -0.56  0.57457    
## df$pop_cb                       -0.128426   0.102116   -1.26  0.20852    
## df$online_friends                0.000848   0.000284    2.99  0.00283 ** 
## df$time_online                  -0.387202   0.107967   -3.59  0.00034 ***
## df$parent_netsec                 0.128946   0.092019    1.40  0.16113    
## df$teacher_netsec                0.123082   0.094207    1.31  0.19138    
## df$bully_b                       0.863906   0.265976    3.25  0.00116 ** 
## df$victim_b                     -0.175956   0.241299   -0.73  0.46588    
## df$victim_cb_score               0.963475   0.185976    5.18  2.2e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 989.86  on 760  degrees of freedom
## Residual deviance: 837.90  on 747  degrees of freedom
##   (35 observations deleted due to missingness)
## AIC: 865.9
## 
## Number of Fisher Scoring iterations: 4