## conjunto de dados mtcars ## disponível no software R ## ## carregando dados data(mtcars) head(mtcars) ## informações sobre os dados help(mtcars) ## Classificar cada uma das variáveis! ## alguns resumos de algumas variáveis with(mtcars, summary(mpg)) with(mtcars, summary(hp)) with(mtcars, table(cyl)) with(mtcars, table(am)) with(mtcars, table(gear)) with(mtcars, table(carb)) ## ## Análises bi (e multi) variadas ## ## duas qualitativas with(mtcars, table(cyl, am)) with(mtcars, addmargins(table(cyl, am))) with(mtcars, prop.table(table(cyl, am))) with(mtcars, prop.table(table(cyl, am), mar=2)) plot(with(mtcars, prop.table(table(cyl, am), mar=2))) plot(with(mtcars, prop.table(table(am, cyl), mar=2))) barplot(with(mtcars, table(cyl, am), mar=2)) barplot(with(mtcars, table(am, cyl), mar=2)) barplot(with(mtcars, table(cyl, am), mar=2), beside=T) barplot(with(mtcars, table(am, cyl), mar=2), beside=T) barplot(with(mtcars, prop.table(table(cyl, am), mar=2))) barplot(with(mtcars, prop.table(table(am, cyl), mar=2))) chisq.test(with(mtcars, prop.table(table(am, cyl), mar=2))) # with(mtcars, table(gear, am)) with(mtcars, addmargins(table(gear, am))) with(mtcars, prop.table(table(gear, am), mar=2)) plot(with(mtcars, prop.table(table(gear, am), mar=2))) plot(with(mtcars, prop.table(table(am, gear), mar=2))) barplot(with(mtcars, table(gear, am), mar=2)) barplot(with(mtcars, table(am, gear), mar=2)) barplot(with(mtcars, table(gear, am), mar=2), beside=T) barplot(with(mtcars, table(am, gear), mar=2), beside=T) barplot(with(mtcars, prop.table(table(gear, am), mar=2))) barplot(with(mtcars, prop.table(table(am, gear), mar=2))) chisq.test(with(mtcars, prop.table(table(am, gear), mar=2))) ## uma qualitativa e uma quantitativa with(mtcars, summary(mpg)) with(mtcars, by(mpg, am, summary)) with(mtcars, boxplot(mpg~am, varwidth=T)) ## duas quantitativas par(mfrow=c(1,2)) with(mtcars, plot(mpg~wt)) with(mtcars, plot(hp~wt)) par(mfrow=c(1,1)) ## Gráfico de variáveis contínuas plot(mtcars[,c(1,4,6,7)]) ## coeficientes de correlação cor(mtcars[,c(1,4,6,7)]) cor(mtcars[,c(1,4,6,7)], met="spearman") ## qual das seguintes faz mais sentido? par(mfrow=c(1,2)) with(mtcars,plot(mpg ~ hp)) with(mtcars,plot(hp ~ mpg)) ## o 1o é recomendado: ## quando adequado: eixo Y para resposta e eixo X para preditora ## investigando a relação com as variáveis transformadas with(mtcars,plot(mpg ~sqrt(hp))) with(mtcars,plot(mpg ~log(hp))) with(mtcars,plot(log(mpg) ~log(hp))) with(mtcars,cor(log(mpg),log(hp))) ## Mais sobre transformação de variáveis ##na análise unidimensional precebemo a assimetria with(mtcars, hist(hp, prob=T)) lines(density(mtcars$hp)) ## e os gráficos com log são mais simétricos with(mtcars, hist(log(hp), prob=T)) lines(density(log(mtcars$hp))) ## Precisa transformar? Qual transformação? ## A família Box-Cox de transformações é especificada pelo parametro lambda with(mtcars, plot(density(mpg))) with(mtcars, plot(density(hp))) with(mtcars, plot(density(wt))) with(mtcars, plot(density(qsec))) require(MASS) boxcox(mtcars$hp ~1) boxcox(mtcars$mpg ~1) ## para ambas variáveis anteriores a transformação log é adequada ## para outras a transformação não é necessária boxcox(mtcars$qsec ~1) boxcox(mtcars$wt ~ 1) ## acrescentando variáveis transformadas no objeto de dados mtcars <- transform(mtcars, lmpg = log(mpg), lhp = log(hp), swt = sqrt(wt)) head(mtcars) ## Uma visualização mais detalhada com função do pacote car #install.packages("car") require(car) ## com dados não transformados scatterplotMatrix(mtcars[,c(1,4,6,7)]) ## com dados transformados de mpg e hp x11() scatterplotMatrix(mtcars[,c(12,13,6,7)]) ## Outras variáveis names(mtcars) ## Duas qualitativas with(mtcars, table(cyl)) with(mtcars, table(am)) with(mtcars, table(carb)) with(mtcars, table(am, carb)) with(mtcars, table(am, cyl)) with(mtcars, prop.table(table(am, cyl), mar=1)) plot(with(mtcars, prop.table(table(am, cyl), mar=1))) with(mtcars, chisq.test(cyl, am)) ## Análise de múltiplas variáveis ## Redução de dimensionalidade utilizando ## Análise de componentes principais (ACP PCA) ## 2 funções no R: princomp() ou prcomp() (CP <- prcomp(mtcars[,c(12,13,6,7)])) summary(CP) plot(CP) names(CP) biplot(CP) screeplot(CP) screeplot(CP, type="l") mtcars <- cbind(mtcars, as.matrix(mtcars[,c(12,13,6,7)]) %*% CP$rotation) head(mtcars) ## Os componentes são ortogonais: ## gráfico dos 2 primeiros componentes principais with(mtcars, plot(PC1, PC2), asp=1) ## todos componentes plot(mtcars[,15:18]) ## ## com outra funcao: ## (CP1 <- princomp(mtcars[,c(12,13,6,7)])) summary(CP1) names(CP1) loadings(CP1) biplot(CP1) screeplot(CP1) screeplot(CP1, type="l") with(CP1, {plot(loadings[,1:2], asp=1) abline(v=0, h=0) arrows(0,0, loadings[,1],loadings[,2], length=0.1) text(loadings[,1:2], rownames(loadings), pos=c(4,1,2,1)) })