Skip to content

Commit

Permalink
Scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
iurygregory committed Mar 15, 2013
1 parent a82eaaa commit dccd64b
Show file tree
Hide file tree
Showing 4 changed files with 349 additions and 0 deletions.
108 changes: 108 additions & 0 deletions US15 - analise_US6.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Script para analisar a relação entre o tempo total de estudo e atividade de estudo.
# Iury Gregory Melo Ferreira - Versão 2.0 (Fevereiro 2013)

require(nortest)
require(ggplot2)

#leitura dos dados.aula
dados.aula.atividade.aula <- read.csv("dados/AgrupamentoAtividadeEmAula.csv")
dados.aula.atividade.aula <- dados.aula.atividade.aula[,-1] #remocao das colunas nao necessarias
dados.aula.sessao.aula <- read.csv("dados/tableSumDisciplineEmAula.csv")

#merge para associar para cada aluno seu tempo total de estudo e seu tempo de atividade.
dados.aula <- merge(dados.aula.sessao.aula,dados.aula.atividade.aula,by.x="matricula",by.y="matricula")
dados.aula$sumSession <- dados.aula$sumSession/3600


#testes de normalidade para os dados.aula
print( ad.test(dados.aula$sumSession))
print( shapiro.test(dados.aula$sumSession))

print( ad.test(dados.aula$atividade))
print( shapiro.test(dados.aula$atividade))


#teste de correlação
print( cor.test(dados.aula$sumSession,dados.aula$atividade,method=c("kendall")))
print( cor.test(dados.aula$sumSession,dados.aula$atividade,method=c("spearman")))

#grafico para analise dos dados.aula de tempo total de estudo
png(filename = "US6-TempoTotalEstudo-EmAula.png", width=650)
par(mfrow=c(1,2))
hist(dados.aula$sumSession, main="Histograma Tempo Total de Estudo", xlab="Tempo Total de Estudo", ylab="Frequencia")
qqnorm(dados.aula$sumSession)
qqline(dados.aula$sumSession)
dev.off()

#grafico para analise dos dados.aula da atividade de estudo.
png(filename = "US6-AtividadeEstudo-EmAula.png", width=650)
par(mfrow=c(1,2))
hist(dados.aula$atividade, main="Histograma Atividade", xlab="Atividade de Estudo", ylab="Frequencia")
qqnorm(dados.aula$atividade)
qqline(dados.aula$atividade)
dev.off()

#grafico log log para mostrar a correlacao entre os dados.aula.
grafico <- ggplot(dados.aula,aes(sumSession,atividade)) +
geom_point() + geom_smooth(method=lm,se=FALSE) +
scale_x_log10() + scale_y_log10() +
theme_bw()+labs(x="Tempo Total de Estudo (log)",y="Atividade de Estudo (log)") +
theme(panel.grid.minor.x=element_blank(), panel.grid.major.x=element_blank())+
theme(axis.ticks = element_blank())

png(filename = "ScatterplotUS6-EmAula.png", width = 480, height = 480)
print(grafico)
dev.off()


#FORA HORARIO DE AULA#

#leitura dos dados.fora
dados.atividade.fora <- read.csv("dados/AgrupamentoAtividadeForadeAula.csv")
dados.atividade.fora <- dados.atividade.fora[,-1] #remocao das colunas nao necessarias
dados.sessao.fora <- read.csv("dados/tableSumDisciplineForadeAula.csv")

#merge para associar para cada aluno seu tempo total de estudo e seu tempo de atividade.
dados.fora <- merge(dados.sessao.fora,dados.atividade.fora,by.x="matricula",by.y="matricula")
dados.fora$sumSession <- dados.fora$sumSession/3600


#testes de normalidade para os dados.fora
print( ad.test(dados.fora$sumSession))
print( shapiro.test(dados.fora$sumSession))

print( ad.test(dados.fora$atividade))
print( shapiro.test(dados.fora$atividade))


#teste de correlação
print( cor.test(dados.fora$sumSession,dados.fora$atividade,method=c("kendall")))
print( cor.test(dados.fora$sumSession,dados.fora$atividade,method=c("spearman")))

#grafico para analise dos dados.fora de tempo total de estudo
png(filename = "US6-TempoTotalEstudo-ForaAula.png", width=650)
par(mfrow=c(1,2))
hist(dados.fora$sumSession, main="Histograma Tempo Total de Estudo Fora de Aula", xlab="Tempo Total de Estudo", ylab="Frequencia")
qqnorm(dados.fora$sumSession)
qqline(dados.fora$sumSession)
dev.off()

#grafico para analise dos dados.fora da atividade de estudo.
png(filename = "US6-AtividadeEstudo-ForaDeAula.png", width=650)
par(mfrow=c(1,2))
hist(dados.fora$atividade, main="Histograma Atividade Fora de Aula", xlab="Atividade de Estudo", ylab="Frequencia")
qqnorm(dados.fora$atividade)
qqline(dados.fora$atividade)
dev.off()

#grafico log log para mostrar a correlacao entre os dados.fora.
grafico2 <- ggplot(dados.fora,aes(sumSession,atividade)) +
geom_point() + geom_smooth(method=lm,se=FALSE) +
scale_x_log10() + scale_y_log10() +
theme_bw()+labs(x="Tempo Total de Estudo (log)",y="Atividade de Estudo (log)") +
theme(panel.grid.minor.x=element_blank(), panel.grid.major.x=element_blank())+
theme(axis.ticks = element_blank())

png(filename = "ScatterplotUS6-ForaDeAula.png", width = 480, height = 480)
print(grafico2)
dev.off()
81 changes: 81 additions & 0 deletions US15 - analise_US8.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Codigo para analise da variação da proporção do número de questões corretas por sessão ao longo do semestre
# Iara Ribeiro - versao 2.0 (Fevereiro 2013)

exercicios.aula <- read.csv("dados/SubmissoesHorarioDeAula.csv",header=T,stringsAsFactors=F)
exercicios.aula <- exercicios.aula[exercicios.aula$nota == 10,]

sessoes.aula <- read.csv("dados/TableSessionLengthEmAula.csv", header = T)
sessoes.aula$correct.submissions = 0
sessoes.aula$timestamp <- as.numeric(as.POSIXct(strptime(sessoes.aula$data.hora,"%m/%d/%Y %H:%M:%S"),origin="1970-01-01"))

matriculas <- unique(sessoes.aula$matricula)

submissoes.corretas <- c()

for (i in 1:length(matriculas)){
aluno <- matriculas[i]
sessoes.aluno <- sessoes.aula[sessoes.aula$matricula == aluno, ]
submissoes.aluno <- exercicios.aula[exercicios.aula$matricula == aluno, ]
for(i in 0:nrow(sessoes.aluno)){
if (i == nrow(sessoes.aluno)){
sessao.inicio <- sessoes.aluno[i,"timestamp"]
sessoes.aluno[i,"correct.submissions"] <- nrow(submissoes.aluno[submissoes.aluno$timestamp >= sessao.inicio, ])
}else if(i == 1){
sessao.inicio <- sessoes.aluno[i,"timestamp"]
sessoes.aluno[i,"correct.submissions"] <- nrow(submissoes.aluno[submissoes.aluno$timestamp == sessao.inicio, ])
}else{
sessao.inicio <- sessoes.aluno[i,"timestamp"]
sessao.fim <- sessoes.aluno[i+1,"timestamp"]
sessoes.aluno[i+1,"correct.submissions"] <- nrow(submissoes.aluno[submissoes.aluno$timestamp >= sessao.inicio
& submissoes.aluno$timestamp < sessao.fim, ])
}
}
submissoes.corretas <- rbind(submissoes.corretas, sessoes.aluno)
}

submissoes.corretas[,"timestamp"] = sub(' .*', '', submissoes.corretas[,"data.hora"])
submissoes.corretas$proporcao.sub.corretas <- submissoes.corretas$correct.submissions/submissoes.corretas$amountSubmission

write.csv(submissoes.corretas, "dados/submissoes_corretas_tempo_aula.csv")


##############
#FORA DE AULA#
##############

exercicios.fora <- read.csv("dados/SubmissoesForaHorarioDeAula.csv",header=T,stringsAsFactors=F)
exercicios.fora <- exercicios.fora[exercicios.fora$nota == 10,]

sessoes.fora <- read.csv("dados/TableSessionLengthForadeAula.csv", header = T)
sessoes.fora$correct.submissions = 0
sessoes.fora$timestamp <- as.numeric(as.POSIXct(strptime(sessoes.fora$data.hora,"%m/%d/%Y %H:%M:%S"),origin="1970-01-01"))

matriculas <- unique(sessoes.fora$matricula)

submissoes.corretas.fora <- c()

for (i in 1:length(matriculas)){
aluno <- matriculas[i]
sessoes.aluno.fora <- sessoes.fora[sessoes.fora$matricula == aluno, ]
submissoes.aluno.fora <- exercicios.fora[exercicios.fora$matricula == aluno, ]
for(i in 0:nrow(sessoes.aluno.fora)){
if (i == nrow(sessoes.aluno.fora)){
sessao.inicio <- sessoes.aluno.fora[i,"timestamp"]
sessoes.aluno.fora[i,"correct.submissions"] <- nrow(submissoes.aluno.fora[submissoes.aluno.fora$timestamp >= sessao.inicio, ])
}else if(i == 1){
sessao.inicio <- sessoes.aluno.fora[i,"timestamp"]
sessoes.aluno.fora[i,"correct.submissions"] <- nrow(submissoes.aluno.fora[submissoes.aluno.fora$timestamp == sessao.inicio, ])
}else{
sessao.inicio <- sessoes.aluno.fora[i,"timestamp"]
sessao.fim <- sessoes.aluno.fora[i+1,"timestamp"]
sessoes.aluno.fora[i+1,"correct.submissions"] <- nrow(submissoes.aluno.fora[submissoes.aluno.fora$timestamp >= sessao.inicio
& submissoes.aluno.fora$timestamp < sessao.fim, ])
}
}
submissoes.corretas.fora <- rbind(submissoes.corretas.fora, sessoes.aluno.fora)
}

submissoes.corretas.fora[,"timestamp"] = sub(' .*', '', submissoes.corretas.fora[,"data.hora"])
submissoes.corretas.fora$proporcao.sub.corretas <- submissoes.corretas.fora$correct.submissions/submissoes.corretas.fora$amountSubmission

write.csv(submissoes.corretas.fora, "dados/submissoes_corretas_tempo_fora_aula.csv")
120 changes: 120 additions & 0 deletions US15 - analise_US9.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
#SCRIPT US15 analise US9

require(nortest)
require(ggplot2)

#leitura dos dados.aula
dados.aula <- read.csv("dados/tableSessionLength.csv",header=T)

dados.aula.numSessoes <- with(dados.aula,aggregate(session,list(matricula),FUN=max))
colnames(dados.aula.numSessoes) <- c("matricula","num.sessoes")
dados.aula.tempoEstudo <- with(dados.aula,aggregate(timeSession/3600,list(matricula),FUN=sum))
colnames(dados.aula.tempoEstudo) <- c("matricula","tempo.estudo")

#merge para associar o tempo de estudo e o numero de sessoes dos alunos.
tabela.aula <- merge(dados.aula.numSessoes,dados.aula.tempoEstudo,by.x="matricula",by.y="matricula")



#testes de normalidade para os dados.aula
print( ad.test(tabela.aula$num.sessoes))
print( shapiro.test(tabela.aula$num.sessoes))

print( ad.test(tabela.aula$tempo.estudo))
print( shapiro.test(tabela.aula$tempo.estudo))

#teste de correlação
print( cor.test(tabela.aula$num.sessoes,tabela.aula$tempo.estudo,method=c("kendall")))
print( cor.test(tabela.aula$num.sessoes,tabela.aula$tempo.estudo,method=c("spearman")))


#grafico para analise dos dados.aula de tempo de estudo.
png(filename = "US9-TempoEstudo-EmAula.png", width=650)
par(mfrow=c(1,2))
hist(tabela.aula$tempo.estudo, main="Histograma Tempo de Estudo", xlab="Tempo de Estudo (hora)", ylab="Frequencia")
qqnorm(tabela.aula$tempo.estudo)
qqline(tabela.aula$tempo.estudo)
dev.off()


#grafico para analise dos dados.aula do numero de sessoes.
png(filename = "US9-NumeroDeSessoes-EmAula.png", width=650)
par(mfrow=c(1,2))
hist(tabela.aula$num.sessoes, main="Histograma Numero de Sessoes ", xlab="Numero de Sessoes de Estudo", ylab="Numero de Alunos")
qqnorm(tabela.aula$num.sessoes)
qqline(tabela.aula$num.sessoes)
dev.off()


#grafico log log para mostrar a correlacao entre os dados.aula.
grafico <- ggplot(tabela.aula,aes(num.sessoes,tempo.estudo)) +
geom_point() + geom_smooth(method=lm,se=FALSE) +
scale_y_log10() + scale_x_log10() +
theme_bw()+labs(x="Numero de Sessões (log)",y="Tempo Total de Estudo (log)") +
theme(panel.grid.minor.x=element_blank(), panel.grid.major.x=element_blank())+
theme(axis.ticks = element_blank())

png(filename = "ScatterplotUS9-EmAula.png", width = 480, height = 480)
print(grafico)
dev.off()




######################
#FORA HORARIO DE AULA#
######################


dados.fora <- read.csv("dados/tableSessionLength.csv",header=T)
dados.fora.numSessoes <- with(dados.fora,aggregate(session,list(matricula),FUN=max))
colnames(dados.fora.numSessoes) <- c("matricula","num.sessoes")
dados.fora.tempoEstudo <- with(dados.fora,aggregate(timeSession/3600,list(matricula),FUN=sum))
colnames(dados.fora.tempoEstudo) <- c("matricula","tempo.estudo")

#merge para associar o tempo de estudo e o numero de sessoes dos alunos.
tabela.fora <- merge(dados.fora.numSessoes,dados.fora.tempoEstudo,by.x="matricula",by.y="matricula")



#testes de normalidade para os dados.fora
print( ad.test(tabela.fora$num.sessoes))
print( shapiro.test(tabela.fora$num.sessoes))

print( ad.test(tabela.fora$tempo.estudo))
print( shapiro.test(tabela.fora$tempo.estudo))

#teste de correlação
print( cor.test(tabela.fora$num.sessoes,tabela.fora$tempo.estudo,method=c("kendall")))
print( cor.test(tabela.fora$num.sessoes,tabela.fora$tempo.estudo,method=c("spearman")))


#grafico para analise dos dados.fora de tempo de estudo.
png(filename = "US9-TempoEstudo-ForadeAula.png", width=650)
par(mfrow=c(1,2))
hist(tabela.fora$tempo.estudo, main="Histograma Tempo de Estudo", xlab="Tempo de Estudo (hora)", ylab="Frequencia")
qqnorm(tabela.fora$tempo.estudo)
qqline(tabela.fora$tempo.estudo)
dev.off()


#grafico para analise dos dados.fora do numero de sessoes.
png(filename = "US9-NumeroDeSessoes-ForadeAula.png", width=650)
par(mfrow=c(1,2))
hist(tabela.fora$num.sessoes, main="Histograma Numero de Sessoes ", xlab="Numero de Sessoes de Estudo", ylab="Numero de Alunos")
qqnorm(tabela.fora$num.sessoes)
qqline(tabela.fora$num.sessoes)
dev.off()


#grafico log log para mostrar a correlacao entre os dados.fora.
grafico <- ggplot(tabela.fora,aes(num.sessoes,tempo.estudo)) +
geom_point() + geom_smooth(method=lm,se=FALSE) +
scale_y_log10() + scale_x_log10() +
theme_bw()+labs(x="Numero de Sessões (log)",y="Tempo Total de Estudo (log)") +
theme(panel.grid.minor.x=element_blank(), panel.grid.major.x=element_blank())+
theme(axis.ticks = element_blank())

png(filename = "ScatterplotUS9-ForadeAula.png", width = 480, height = 480)
print(grafico)
dev.off()
40 changes: 40 additions & 0 deletions US15 - tabela_US6.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#Script US15
# Script para gerar tabela de agrupamento de atividade para ser utilizada
# no script US6_analise.R
# Iury Gregory Melo Ferreira - Versão 2.0 (Fevereiro 2013)


data_ex = read.csv("dados/SubmissoesHorarioDeAula.csv",header=F)
data_c2 = data_ex
for(i in seq(1:nrow(data_c2))){
data_c2[i,"data"] = toString(data.frame(strsplit(toString(data_c2[i,"data.hora"]), " "))[1,])
}

data2 = data.frame(data_c2[,1])
data2$data = data_c2$data
data_c2 = data2[!duplicated(data2),] #remove as linhas duplicadas, as vezes o aluno manda 10 ex. no msm dia
colnames(data_c2) = c("matricula","atividade")
dias_de_aula = 125
data_c2$atividade = 1
data_c2 = aggregate(data_c2$atividade, list(data_c2$matricula), FUN=sum)
colnames(data_c2) = c("matricula","atividade")
data_c2$atividade = data_c2$atividade/dias_de_aula

write.csv(data_c2,"dados/AgrupamentoAtividadeEmAula.csv")

data_fora = read.csv("dados/SubmissoesForaHorarioDeAula.csv",header=F)
data_c3 = data_fora
for(i in seq(1:nrow(data_c3))){
data_c3[i,"data"] = toString(data.frame(strsplit(toString(data_c3[i,"data.hora"]), " "))[1,])
}

data3 = data.frame(data_c3[,1])
data3$data = data_c3$data
data_c2 = data2[!duplicated(data2),]
colnames(data_c3) = c("matricula","atividade")
data_c3$atividade = 1
data_c3 = aggregate(data_c3$atividade, list(data_c3$matricula), FUN=sum)
colnames(data_c3) = c("matricula","atividade")
data_c3$atividade = data_c3$atividade/dias_de_aula

write.csv(data_c3,"dados/AgrupamentoAtividadeForadeAula.csv")

0 comments on commit dccd64b

Please sign in to comment.