Захотів подивитись кореляції соц.статусу особи та її партнера в розрізі регіонів у ESS. Також хотів побачити довірчі інтервали.
Вийшло ось таке.
Якось не зміг знайти якоїсь спеціальної функції для такого простого графіку. Тож створив цього монстра:
make.cor<-function(ess.ukr){
n<-character(length(table(ess.ukr$region)))
vector1<-numeric(length(table(ess.ukr$region)))
vector2<-numeric(length(table(ess.ukr$region)))
vector3<-numeric(length(table(ess.ukr$region)))
for (i in 1:length(table(ess.ukr$region))) {
n[i]<-names(table(ess.ukr$region))[i]
vector1[i] <- round(cor.test(x=subset(ess.ukr, ess.ukr$region==n[i])$isei,
y=subset(ess.ukr, ess.ukr$region==n[i])$iseip, use="pairwise.complete.obs")$estimate[[1]],2)
vector2[i] <- cor.test(x=subset(ess.ukr, ess.ukr$region==n[i])$isei,
y=subset(ess.ukr, ess.ukr$region==n[i])$iseip, use="pairwise.complete.obs")$conf.int[1]
vector3[i] <- cor.test(x=subset(ess.ukr, ess.ukr$region==n[i])$isei,
y=subset(ess.ukr, ess.ukr$region==n[i])$iseip, use="pairwise.complete.obs")$conf.int[2]
}
new.data<-data.frame(correlations=vector1, lower.value=vector2, higest.value=vector3)
row.names(new.data)<-n
new.data<-new.data[order(-new.data$correlations),]
png('ESSUA05.png')
dotchart(new.data$correlations, cex=.8,
xlim=c(floor(min(new.data$lower.value)/10), ceiling(max(new.data$higest.value)/10)),
col="blue", labels=paste(row.names(new.data), "(",new.data$correlations, ")"),
main="ESS05, Ukraine, cor(isei & iseip)")
for (i in 1:nrow(new.data)){
lines(x=c(new.data$lower.value[i],new.data$higest.value[i]), y=c(i,i))
}
grid()
dev.off()
return(new.data)
}
make.cor(ess.ukr)