# Edps 589 # c.j.anderson # # Log-linear models for square tables: Migration Data Example # o quasi-independence # o symmetry # o quasi-symmetry # o marginal homogeneity via a loglinear model # # # On the data: # If you want to get more up-to date trends see: #https://www.census.gov/library/stories/2019/04/moves-from-south-west-dominate-recent-migration-flows.html # https://www.census.gov/data/tables/time-series/demo/geographic-mobility/state-to-state-migration.html # library(vcd) library(vcdExtra) def <- expand.grid(r1985=c("NorthEast","MidWest","South","West"), r1980=c("NorthEast","MidWest","South","West")) count <- c(11607, 100, 366, 124, 87,13677, 515, 302, 172, 225,17819, 270, 63, 176, 286, 10192) mig <- data.frame(def,count) mig.tab<- xtabs(count ~ r1980 + r1985,data=mig) # Check the data: (addmargins(mig.tab)) # Finish set-up ....for now... mig$r1980 <- as.factor(mig$r1980) mig$r1985 <- as.factor(mig$r1985) # # Test of independence # summary(ind <- glm(count ~ r1980 + r1985, data=mig,family=poisson)) 1-pchisq(ind$deviance,ind$df.residual) # # Quasi-Independence # # create factor for diagonal mig$qi <- c(1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4) mig$qi <- as.factor(mig$qi) summary(qi<- glm(count ~ r1980 + r1985 + qi,data=mig,family=poisson) 1-pchisq(qi$deviance,qi$df.residual) # # Symmetry # mig$symm <- c(1, 5 , 6, 7, 5, 2, 8, 9, 6, 8, 3, 10, 7, 9, 10, 4) mig$symm <- as.factor(mig$symm) summary(symmetry <- glm(count~ symm,data=mig,family=poisson)) 1-pchisq(symmetry$deviance,symmetry$df.residual) # # Quasi symmetry # summary(quasi_sym <- glm(count~ r1980 + r1985+ symm,data=mig,family=poisson)) 1-pchisq(quasi_sym$deviance,quasi_sym$df.residual) # # (indirect test) marginal homogeneity # anova(symmetry,quasi_sym) 1 - pchisq(240,3)