{R/Stata} Time Effects on Politicisation: The Case of JNU

<< This R script was submitted as replication file for the article From one participant cohort to another: Surveying inter-generational political incubation in an Indian University. A copy is available on the SAtextometry repository on GitHub.

Prepare the data

rm(list = ls())
#install.packages("MASS")
#install.packages("erer")
#install.packages("stargazer")
library(stargazer)
library(MASS)
library(ggplot2)
library(foreign)
library(aod)
library(ggplot2)
library(Rcpp)
library(erer)
mfx2 <- function(x,sims=1000){
  set.seed(1984)
  pdf <- ifelse(as.character(x$call)[3]=="binomial(link = \"probit\")",
                mean(dnorm(predict(x, type = "link"))),
                mean(dlogis(predict(x, type = "link"))))
  pdfsd <- ifelse(as.character(x$call)[3]=="binomial(link = \"probit\")",
                  sd(dnorm(predict(x, type = "link"))),
                  sd(dlogis(predict(x, type = "link"))))
  marginal.effects <- pdf*coef(x)
  sim <- matrix(rep(NA,sims*length(coef(x))), nrow=sims)
  for(i in 1:length(coef(x))){
    sim[,i] <- rnorm(sims,coef(x)[i],diag(vcov(x)^0.5)[i])
  }
  pdfsim <- rnorm(sims,pdf,pdfsd)
  sim.se <- pdfsim*sim
  res <- cbind(marginal.effects,sd(sim.se))
  colnames(res)[2] <- "standard.error"
  ifelse(names(x$coefficients[1])=="(Intercept)",
         return(res[2:nrow(res),]),return(res))
}

#JTdata <- read.csv("~/Desktop/untitled.csv")
JTdata <- read.dta("~/Desktop/mydata.dta")
#rm(mydataframe)

data2 <- data.frame(JTdata$Q5)

data2$PolSpec[JTdata$Q5 ==   0]    <-  0
data2$PolSpec[JTdata$Q5 ==   6]    <-  1
data2$PolSpec[JTdata$Q5 ==   7]    <-  2
data2$PolSpec[JTdata$Q5 ==   8]    <-  3
data2$PolSpec[JTdata$Q5 ==   9]    <-  4
data2$PolSpec[JTdata$Q5 ==  10]    <-  5
data2$PolSpec[JTdata$Q5 ==   5]    <- -1
data2$PolSpec[JTdata$Q5 ==   4]    <- -2
data2$PolSpec[JTdata$Q5 ==   3]    <- -3
data2$PolSpec[JTdata$Q5 ==   2]    <- -4
data2$PolSpec[JTdata$Q5 ==   1]    <- -5
data2$PolSpec[JTdata$Q5 ==  "Don't Know"] <- 0
data2$JTdata.Q5 <- NULL

data2$Radical[data2$PolSpec ==  0] <- 0 
data2$Radical[data2$PolSpec ==  1] <- 0 
data2$Radical[data2$PolSpec ==  2] <- 0 
data2$Radical[data2$PolSpec == -1] <- 0 
data2$Radical[data2$PolSpec == -2] <- 0
data2$Radical[data2$PolSpec ==  3] <- 1 
data2$Radical[data2$PolSpec == -3] <- 1 
data2$Radical[data2$PolSpec == -4] <- 1
data2$Radical[data2$PolSpec == -5] <- 1
data2$Radical[data2$PolSpec ==  4] <- 1
data2$Radical[data2$PolSpec ==  5] <- 1

data2$Radicalization <- abs(data2$PolSpec)


data2$Semester <- JTdata$Q15D
data2$Semester[JTdata$Q15D > 13] <- 13

summary(data2$Semester)
library(psych)
describe(data2$Semester)

data2$StudyYear[data2$Semester <= 2 ] <- 1
data2$StudyYear[data2$Semester == 3 | data2$Semester == 4 ] <-  2
data2$StudyYear[data2$Semester == 5 | data2$Semester == 6 ] <-  3
data2$StudyYear[data2$Semester == 7 | data2$Semester == 8 ] <-  4
data2$StudyYear[data2$Semester >= 9 ] <- 5

data2$SchoolType <- JTdata$Q15FF

data2$SchoolType2 <- NA
data2$SchoolType2[JTdata$Q15FF == "SSS - School of Social Sciences"        ]  <-  1
data2$SchoolType2[JTdata$Q15FF == "SIS - School of International Studies"  ]  <-  2
data2$SchoolType2[JTdata$Q15FF == "SL - School of Languages"               ]  <-  3
data2$SchoolType2[JTdata$Q15FF == "CS - Combined Schools"                  ]  <-  4
data2$SchoolType <- as.numeric(data2$SchoolType2)
data2$SchoolType2 <- NULL

data2$Age <- JTdata$Q15C

data2$Religion <- JTdata$Q15J
data2$Religion2[JTdata$Q15J == "Hindu"            ]       <- 1
data2$Religion2[JTdata$Q15J == "Atheist/Agnostic" ]       <- 2
data2$Religion2[JTdata$Q15J == "Muslim"           ]       <- 3
data2$Religion2[JTdata$Q15J == "Buddhist"         ]       <- 4
data2$Religion2[JTdata$Q15J == "Christian"        ]       <- 4
data2$Religion2[JTdata$Q15J == "Other"            ]       <- 4
data2$Religion2[JTdata$Q15J == "Sikh"             ]       <- 4
data2$Religion2[JTdata$Q15J == "Jain"             ]       <- 4

data2$Religion  <- NULL
data2$Religion  <- as.numeric(data2$Religion2)
data2$Religion2 <- NULL

data2$Hindu[data2$Religion == 1   ]  <- 1
data2$Hindu[data2$Religion != 1   ]  <- 0
data2$Hindu[is.na(data2$Religion) ]  <- NA

data2$Atheist[data2$Religion == 2    ]  <- 1
data2$Atheist[data2$Religion != 2    ]  <- 0
data2$Atheist[is.na(data2$Religion) ]  <- NA

data2$Female2 <- JTdata$Q15A
data2$Female  <- NA
data2$Female[data2$Female2 == "Female"]  <- 1
data2$Female[data2$Female2 == "Male"]  <- 0
data2$Female2 <- NULL

data2$adminCat2  <- JTdata$Q15H
toString(data2$adminCat)
data2$AdminCat[data2$adminCat2 == "Unreserved"       ]     <- 1
data2$AdminCat[data2$adminCat2 == "OBC"              ]     <- 2
data2$AdminCat[data2$adminCat2 == "ST"               ]     <- 3
data2$AdminCat[data2$adminCat2 == "SC"               ]     <- 3
data2$AdminCat[data2$adminCat2 == "Foreign Student"  ]     <- 4
data2$AdminCat[data2$adminCat2 == "PH"               ]     <- 4
data2$adminCat2  <- NULL

data2$studyParent <- JTdata$Q15L
data2$StudyParent[data2$studyParent == "None of the above"          ] <- 0
data2$StudyParent[data2$studyParent == "Matriculation (10th grade)" ] <- 1
data2$StudyParent[data2$studyParent == "Intermediate (10+2)"        ] <- 2
data2$StudyParent[data2$studyParent == "Undergraduate"              ] <- 3
data2$StudyParent[data2$studyParent == "Graduate"                   ] <- 4
data2$StudyParent[data2$studyParent == "Postgraduate"               ] <- 5
data2$studyParent <- NULL
table(data2$StudyParent, useNA ="ifany")

data2$enrollment  <- JTdata$Q15B2
data2$Enrol[data2$enrollment == "Undergraduate (BA & Btech)"        ]   <- 1 
data2$Enrol[data2$enrollment == "Graduate (MA, Msc & MCa)"          ]   <- 2
data2$Enrol[data2$enrollment == "Postgraduate (Mphil, Mtech & PhD)" ]   <- 3
data2$enrollment  <- NULL
table(data2$Enrol, useNA ="ifany")


data2$urban <- JTdata$Q15O
data2$Urban[data2$urban == "Delhi"              ] <- 1
data2$Urban[data2$urban == "Urban"              ] <- 1
data2$Urban[data2$urban == "Other Mettro city"  ] <- 1
data2$Urban[data2$urban == "Semi-urban"         ] <- 2
data2$Urban[data2$urban == "Rural"              ] <- 3
data2$Urban[data2$urban == "Small village"      ] <- 3
data2$urban <- NULL
table(data2$Urban, useNA ="ifany")

data2$BirthPlace <- as.factor(JTdata$Q15U2)


#participation2 - direct scores from JT

data2$participation2 <- JTdata$IDP
data2$Participation[data2$participation2  >= 8  ]  <- 4
data2$Participation[data2$participation2  == 7  ]  <- 3
data2$Participation[data2$participation2  == 6  ]  <- 3
data2$Participation[data2$participation2  == 5  ]  <- 2
data2$Participation[data2$participation2  == 4  ]  <- 2
data2$Participation[data2$participation2  == 3  ]  <- 1
data2$Participation[data2$participation2  == 2  ]  <- 1
data2$Participation[data2$participation2  == 1  ]  <- 0
data2$Participation[data2$participation2  == 0  ]  <- 0
data2$participation2 <- NULL

## 0 = No participation
## 1 = Rare/low participation
## 2 = Occasional participation
## 3 = Regular participation
## 4 = Always/daily participation 

data2$polOrg2 <- JTdata$Q9
data2$Membership[data2$polOrg2 == "YES"] <- 1
data2$Membership[data2$polOrg2 == "NO"] <- 0
data2$polOrg2 <- NULL

data2$AdminCat <- factor(data2$AdminCat)
data2$Urban <- factor(data2$Urban)
data2$StudyParent <- as.numeric(data2$StudyParent)
data2$SchoolType <- factor(data2$SchoolType)
data2$Female <- factor(data2$Female)
data2$Enrol <- factor(data2$Enrol)
data2$Religion <- factor(data2$Religion)
data2$Hindu <- factor(data2$Hindu)
data2$Atheist <- factor(data2$Atheist)

data2$Age <- as.numeric(JTdata$Q15C)

View(JTdata$Q5)
xtabs(~ data2$Radical + data2$Female, data = data2)
model1 <- glm(Radical ~ Semester + AdminCat + Urban + StudyParent + SchoolType + Female + Enrol + Religion + BirthPlace, data = data2, family = "binomial")
summary(model1)

attach(data2)
data2$complete <- complete.cases(Radical, Semester, AdminCat, Urban, StudyParent, SchoolType, Female, Enrol, Religion, BirthPlace)
detach(data2)

data2.model1 <- subset(data2, data2$complete == TRUE)

# this is the same:
# data2.model1 <- data2[which(data2$complete == TRUE),]

install.packages("mfx")
library(mfx)
logitmfx(Radical ~ Semester + AdminCat + Urban + StudyParent + SchoolType + Female + Enrol + Religion + BirthPlace, data = data2)

table(data2$BirthPlace, useNA ="always")

attach(data2)
ftable(xtabs(~ Radicalization + Atheist + Female + Age, data = data2))

data2$Radicalization <- as.factor(data2$Radicalization)
model2 <- polr(Radicalization ~ Semester + AdminCat + Urban + StudyParent + SchoolType + Female + Enrol + Religion + BirthPlace, data = data2)
summary(model2)

model2.marginal <- ocME(model2, rev.dum=FALSE, digits = 6)
model2.marginal
summary(model2.marginal)

data2.numeric <- data2[, sapply(data2, is.numeric)]

stargazer(data2)


cor(data2.numeric, use="pairwise.complete.obs", method="pearson")

Results

#do file
https://drive.google.com/file/d/15sI8ki0PhMuEx_ot56fSkbPPBEzFm9Xh/view?usp=sharing
#dta file
https://drive.google.com/file/d/1ezSrrCF0CqPNLzkIK9EcLPq98YqyBvCH/view?usp=sharing