Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-----------------------------------------------------#
- # MENINAS.COMP - Computação também é coisa de menina! #
- #-----------------------------------------------------#
- #---------------------------------#
- # 1 - Importando o banco de dados #
- #---------------------------------#
- answers.choose<-file.choose()
- answers <- read.csv(answers.choose, sep=";", header=T,
- colClasses = rep("factor", 38))
- head(answers)
- summary(answers)
- #----------------------------------#
- # 2 - Manipulando o banco de dados #
- #----------------------------------#
- #--------------------------------------------------#
- # 2.1 - Arrumando o tamanho das variáveis Q1 e Q2 #
- #--------------------------------------------------#
- # install.packages("stringr")
- require(stringr)
- # Completando com zeros do lado esquerdo até completar 8 digitos
- q1 <- str_pad(answers$Q1, 8, side="left", pad="0")
- # Completando com zeros do lado esquerdo até completar 11 digitos
- q2 <- str_pad(answers$Q2, 11, side="left", pad="0")
- #------------------------------------------#
- # 2.2 - Separando os itens de cada questão #
- #------------------------------------------#
- #----
- # Q1:
- #----
- # Separando Q1 em 8 novas variáveis
- itens1 <- str_split_fixed(q1, "", 8)
- itens1 <- as.data.frame(itens1)
- # Atribuindo nomes para as novas variáveis
- names(itens1) <- c("q1.1","q1.2","q1.3","q1.4","q1.5","q1.6","q1.7","q1.8")
- head(itens1)
- #----
- # Q2:
- #----
- # Separando Q2 em 11 novas variáveis
- itens2 <- str_split_fixed(q2, "", 11)
- itens2 <- as.data.frame(itens2)
- # Atribuindo nomes para as novas variáveis
- names(itens2) <- c("q2.1","q2.2","q2.3","q2.4","q2.5","q2.6",
- "q2.7","q2.8","q2.9","q2.10","q2.11")
- head(itens2)
- #---------------------------------#
- # 2.3 - Combinando os data frames #
- #---------------------------------#
- # Data frame apenas com as respostas dos itens das questoes 1 e 2:
- ansMRCV<-cbind(itens1, itens2)
- head(ansMRCV)
- #---------------------------------#
- # 3 - Análisando o banco de dados #
- #---------------------------------#
- # Análise das questões do tipo "escolha as que se aplicam"
- # install.packages("MRCV")
- require(MRCV)
- # Tabela usual para variáveis que não são MRCVs (NÃO É O IDEAL!)
- marginal.table(ansMRCV,I=8,J=11)
- # Tabelas 2x2 para cada par de respostas (q1.i, q2.j)
- item.response.table(ansMRCV,I=8,J=11)
- # Análise de independência entre as respostas das questões 1 e 2 com o pacote MRCV
- # Pode ser feito por 3 métodos (# type="all" gera os resultados pelos 3 métodos)
- #----------------------------------------------------#
- # A - Bootstrap não-paramétrico (um pouco demorado!) #
- #----------------------------------------------------#
- result_indep_boot <- MI.test(ansMRCV, I=8, J=11, type = "boot", summary.data = FALSE,
- add.constant = 0.5, plot.hist = TRUE, print.status = TRUE)
- result_indep_boot
- # p.boot = p.combo.prod = p.combo.min < 0.0005 (não é independente)
- #-----------------------------#
- # B - Segunda Ordem Rao-Scott #
- #-----------------------------#
- result_indep_rs2 <- MI.test(ansMRCV, I=8, J=11, type = "rs2", summary.data = FALSE,
- add.constant = 0.5, plot.hist = FALSE, print.status = TRUE)
- result_indep_rs2
- # Error: cannot allocate vector of size 8.0 Gb (??)
- #--------------------------#
- # C - Ajuste de Bonferroni #
- #--------------------------#
- result_indep_bon <- MI.test(ansMRCV, I=8, J=11, type = "bon", summary.data = FALSE,
- add.constant = 0.5, plot.hist = TRUE, print.status = TRUE)
- result_indep_bon
- # p.adj < 0.0001 (não é independente)
- #---------------------#
- # 4 - Modelando MRCVs #
- #---------------------#
- remove.test.1 <- c(5:8,14:19)
- ansMRCV.test.1 <- ansMRCV[,-remove.test.1]
- head(ansMRCV.test.1)
- # OK
- genloglin(ansMRCV.test.1, 4, 5, NULL, "saturated")
- remove.test.2 <- c(7:8,16:19)
- ansMRCV.test.2 <- ansMRCV[,-remove.test.2]
- head(ansMRCV.test.2)
- # OK
- genloglin(ansMRCV.test.2, 6, 7, NULL, "saturated")
- remove.test.3 <- c(8,16:19)
- ansMRCV.test.3 <- ansMRCV[,-remove.test.3]
- head(ansMRCV.test.3)
- # OK
- genloglin(ansMRCV.test.3, 7, 7, NULL, "saturated")
- remove.test.4 <- c(16:19)
- ansMRCV.test.4 <- ansMRCV[,-remove.test.4]
- head(ansMRCV.test.4)
- # Error: cannot allocate vector of size 8.0 Gb
- genloglin(ansMRCV.test.4, 8, 7, NULL, "saturated")
- remove.test.5 <- c(8,17:19)
- ansMRCV.test.5 <- ansMRCV[,-remove.test.5]
- head(ansMRCV.test.5)
- # Error: cannot allocate vector of size 8.0 Gb
- genloglin(ansMRCV.test.5, 7, 8, NULL, "saturated")
- remove.test.6 <- c(15:19)
- ansMRCV.test.6 <- ansMRCV[,-remove.test.6]
- head(ansMRCV.test.6)
- # Desejando-se usar todas os oito itens da primeira questao,
- # o maximo de itens possiveis para uso da segunda questao é 6
- genloglin(ansMRCV.test.6, 8, 6, NULL, "saturated")
- remove.test.7 <- c(5:8)
- ansMRCV.test.7 <- ansMRCV[,-remove.test.7]
- head(ansMRCV.test.7)
- # Error: cannot allocate vector of size 8.0 Gb
- genloglin(ansMRCV.test.7, 4, 11, NULL, "saturated")
- remove.test.8 <- c(4:8)
- ansMRCV.test.8 <- ansMRCV[,-remove.test.8]
- head(ansMRCV.test.8)
- # Error: cannot allocate vector of size 8.0 Gb
- genloglin(ansMRCV.test.7, 3, 11, NULL, "saturated")
- remove.test.9 <- c(3:8)
- ansMRCV.test.9 <- ansMRCV[,-remove.test.9]
- head(ansMRCV.test.9)
- # Desejando-se usar todas os onze itens da segunda questao,
- # o maximo de itens possiveis para uso da primeira questao é 2
- genloglin(ansMRCV.test.9, 2, 11, NULL, "saturated")
- genloglin(ansMRCV, 8, 11, NULL, "saturated")
- # Error: cannot allocate vector of size 2048.0 Gb
- #------------------------#
- # 5 - Juntando respostas #
- #------------------------#
- # Uso de computador em casa, casa de amigos e casa de parentes
- ansMRCV.casa <- cbind(data.frame(as.numeric(as.character(ansMRCV$q1.1))),
- data.frame(as.numeric(as.character(ansMRCV$q1.2))),
- data.frame(as.numeric(as.character(ansMRCV$q1.3))))
- ansMRCV.casa
- ansMRCV1.1 <- ifelse(rowSums(ansMRCV.casa) == 0,
- ansMRCV1.1 <- 0,
- ansMRCV1.1 <- 1)
- ansMRCV1.1 <- as.factor(ansMRCV1.1)
- ansMRCV1.1
- # Uso de computador em outros dois locais
- ansMRCV1.2 <- ansMRCV$q1.4
- ansMRCV1.3 <- ansMRCV$q1.5
- # Uso de computador em lan-house, biblioteca e centros de inclusao digital
- ansMRCV.outros <- cbind(data.frame(as.numeric(as.character(ansMRCV$q1.6))),
- data.frame(as.numeric(as.character(ansMRCV$q1.7))),
- data.frame(as.numeric(as.character(ansMRCV$q1.8))))
- ansMRCV.outros
- ansMRCV1.4 <- ifelse(rowSums(ansMRCV.outros) == 0,
- ansMRCV1.4 <- 0,
- ansMRCV1.4 <- 1)
- ansMRCV1.4 <- as.factor(ansMRCV1.4)
- ansMRCV1.4
- # Uso de computador para edicao
- ansMRCV.edicao <- cbind(data.frame(as.numeric(as.character(ansMRCV$q2.1))),
- data.frame(as.numeric(as.character(ansMRCV$q2.2))))
- ansMRCV.edicao
- ansMRCV2.1 <- ifelse(rowSums(ansMRCV.edicao) == 0,
- ansMRCV2.1 <- 0,
- ansMRCV2.1 <- 1)
- ansMRCV2.1 <- as.factor(ansMRCV2.1)
- ansMRCV2.1
- # Uso de computador para dados
- ansMRCV.dados <- cbind(data.frame(as.numeric(as.character(ansMRCV$q2.3))),
- data.frame(as.numeric(as.character(ansMRCV$q2.4))))
- ansMRCV.dados
- ansMRCV2.2 <- ifelse(rowSums(ansMRCV.dados) == 0,
- ansMRCV2.2 <- 0,
- ansMRCV2.2 <- 1)
- ansMRCV2.2 <- as.factor(ansMRCV2.2)
- ansMRCV2.2
- # Uso de computador para internet
- ansMRCV.net <- cbind(data.frame(as.numeric(as.character(ansMRCV$q2.5))),
- data.frame(as.numeric(as.character(ansMRCV$q2.6))),
- data.frame(as.numeric(as.character(ansMRCV$q2.7))))
- ansMRCV.net
- ansMRCV2.3 <- ifelse(rowSums(ansMRCV.net) == 0,
- ansMRCV2.3 <- 0,
- ansMRCV2.3 <- 1)
- ansMRCV2.3 <- as.factor(ansMRCV2.3)
- ansMRCV2.3
- # Uso de computador para outros
- ansMRCV.outros <- cbind(data.frame(as.numeric(as.character(ansMRCV$q2.8))),
- data.frame(as.numeric(as.character(ansMRCV$q2.9))),
- data.frame(as.numeric(as.character(ansMRCV$q2.10))),
- data.frame(as.numeric(as.character(ansMRCV$q2.11))))
- ansMRCV.outros
- ansMRCV2.4 <- ifelse(rowSums(ansMRCV.outros) == 0,
- ansMRCV2.4 <- 0,
- ansMRCV2.4 <- 1)
- ansMRCV2.4 <- as.factor(ansMRCV2.4)
- ansMRCV2.4
- # Juntando as respostas
- ansMRCV.novo <- data.frame(ansMRCV1.1, ansMRCV1.2, ansMRCV1.3, ansMRCV1.4,
- ansMRCV2.1, ansMRCV2.2, ansMRCV2.3, ansMRCV2.4)
- ansMRCV.novo
- # Análise de independência entre as respostas das questões 1 e 2 com o pacote MRCV
- # Pode ser feito por 3 métodos (# type="all" gera os resultados pelos 3 métodos)
- #----------------------------------------------------#
- # A - Bootstrap não-paramétrico (um pouco demorado!) #
- #----------------------------------------------------#
- result_indep_boot <- MI.test(ansMRCV.novo, I=4, J=4, type = "boot", summary.data = FALSE,
- add.constant = 0.5, plot.hist = TRUE, print.status = TRUE)
- result_indep_boot
- # p.boot = p.combo.prod = p.combo.min < 0.0005 (não é independente)
- #-----------------------------#
- # B - Segunda Ordem Rao-Scott #
- #-----------------------------#
- result_indep_rs2 <- MI.test(ansMRCV.novo, I=4, J=4, type = "rs2", summary.data = FALSE,
- add.constant = 0.5, plot.hist = FALSE, print.status = TRUE)
- result_indep_rs2
- # Error: cannot allocate vector of size 8.0 Gb (??)
- #--------------------------#
- # C - Ajuste de Bonferroni #
- #--------------------------#
- result_indep_bon <- MI.test(ansMRCV.novo, I=4, J=4, type = "bon", summary.data = FALSE,
- add.constant = 0.5, plot.hist = TRUE, print.status = TRUE)
- result_indep_bon
- # p.adj < 0.0001 (não é independente)
- #---------------------#
- # 6 - Modelando MRCVs #
- #---------------------#
- modelo.spmi <- genloglin(ansMRCV.novo, I=4, J=4, NULL, "spmi")
- modelo.homogeneo <- genloglin(ansMRCV.novo, I=4, J=4, NULL, "homogeneous")
- modelo.wmain <- genloglin(ansMRCV.novo, I=4, J=4, NULL, "w.main")
- modelo.ymain <- genloglin(ansMRCV.novo, I=4, J=4, NULL, "y.main")
- modelo.wymain <- genloglin(ansMRCV.novo, I=4, J=4, NULL, "wy.main")
- modelo.saturado <- genloglin(ansMRCV.novo, I=4, J=4, NULL, "saturated")
- summary(modelo.spmi)
- summary(modelo.homogeneo)
- summary(modelo.wmain)
- summary(modelo.ymain)
- summary(modelo.wymain)
- summary(modelo.saturado)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement