Low income immobility and education

Results:

The below graph shows the percentage of persons in various education categories that entered, exited, or remained in a state of low income.

Each observation is made over two years. The different movements are calculated as follows (quotes taken from StatsCan):

Immobility: “The proportion of the population who stayed in low income in both years as a share of people who were in low income the previous year”

Exit: “The proportion of the population who exited low income as a share of people who were in low income the previous year.”

Entry: “Entry is the proportion of the population who entered low income as a share of people were not in low income the previous year.”

From the above definitions, we can see that the sum of Immobility and Exit need to add to 100%. That is why their changes mirror each other in the below graph.

(click for larger view)

LowIncomeAndEducation

The above graph shows the measures for four different definitions of low income (source).

Before-tax low income cut-offs (1992 base) were determined from an analysis of the 1992 Family Expenditure Survey data. These income limits were selected on the basis that families with incomes below these limits usually spent 54.7% or more of their income on food, shelter and clothing. Low income cut-offs were differentiated by community size of residence and family size.

After-tax low income cut-offs (1992 base) were determined from an analysis of the 1992 Family Expenditure Survey data. These income limits were selected on the basis that families with incomes below these limits usually spent 63.6% or more of their income on food, shelter and clothing. Low income cut-offs were differentiated by community size of residence and family size.

Low income measures (LIMs), are relative measures of low income, set at 50% of adjusted median household income. These measures are categorized according to the number of persons present in the household, reflecting the economies of scale inherent in household size.

The Market Basket Measure (MBM) attempts to measure a standard of living that is a compromise between subsistence and social inclusion. It also reflects differences in living costs across regions. The MBM represents the cost of a basket that includes: a nutritious diet, clothing and footwear, shelter, transportation, and other necessary goods and services (such as personal care items or household supplies). The cost of the basket is compared to disposable income for each family to determine low income rates.

Of these measures, LIM seems to be the most simplistic, and MBM the most inclusive. Unfortunately, the MBM contains the smallest dataset. The initial observations of all the measures roughly show that immobility is less severe in the higher levels of education. The entry rates are highest in the lower education categories, and the trend in entry rates appears to remain fairly constant over time. It will be interesting to look at the MBM after StatsCan releases more data, as the last observation showed a large reversal for the immobility trend. The data sets are quite noisy, so it is difficult to attach too much significance to the latest observation.

It does appear as though the variance in the rates of immobility among the different education categories has been decreasing over time.  This is illustrated in the below graph:

(click for larger image)

LowIncomeImmobilityVariance

Three of the four measures show a trend of decreasing variance. The trendline was fit using simple linear regression, and the orange area represents the 95% confidence interval. Overall it looks like the level of education does not play as strong of a role in low income immobility as it used to; however, it’s hard to say with such noisy data. It will be interesting to revisit when more data gets released.

Data and Methodology:

The data comes from this StatsCan table.  Here is an excel version of the dataset I used:

cansim5951224183038879678

Here’s the R code is used the generate the graphs:

library(ggplot2)
library(reshape)

directory <-  "/Users/Business/Dropbox/Economics Research/Blog/Education and Income/" #set directory
pData <- read.csv(paste(directory,"cansim5951224183038879678.csv", sep=""), na.strings="x") #read in file
pData2 <- subset(pData, pData$STATISTICS=="Percentage of persons")
pData2 <- subset(pData2, pData2$Ref_Date!="2001/2002")
pData2 <- rename(pData2, c("CHARACTERISTIC" = "Education", "LICOTRANS" = "Movement"))
pData2 <- subset(pData2, pData2$Movement!="Resistance (above low income lines both years)")
pData2$Education <- factor(pData2$Education, levels = c("Less than high school", "Graduated high school", 
                                                        "Some postsecondary without degree, certificate or diploma", 
                                                      "Non-university with certificate or diploma", "University degree"))


#I found the between the two hash lines at: http://ryouready.wordpress.com/2009/02/17/r-good-practice-adding-footnotes-to-graphics/
#it's a lovely bit of code that creates a custom function to add a footer to the plots
##############################################################################################################
source <- "Source: StatsCan"
author <- "PosNorm"
footnote <- paste(source, format(Sys.time(), "%d %b %Y"),
                  author, sep=" / ")

# default footnote is today's date, cex=.7 (size) and color
# is a kind of grey

makeFootnote <- function(footnoteText=
                           format(Sys.time(), "%d %b %Y"),
                         size= 0.85, color= grey(.5))
{
  require(grid)
  pushViewport(viewport())
  grid.text(label= footnoteText ,
            x = unit(1,"npc") - unit(2, "mm"),
            y= unit(2, "mm"),
            just=c("right", "bottom"),
            gp=gpar(cex= size, col=color))
  popViewport()
}
##############################################################################################################


#Raw Data
graphTitle <- "Low Income Immobility, Entry, and Exit for Various Levels of Education in Canada"
fileName <- paste(directory,"LowIncomeAndEducation.pdf", sep="")
pdf(fileName, height = 10, width = 17)
p <- ggplot(data=pData2,aes(x=Ref_Date,y=Value,shape=Movement,colour=Education,group=interaction(Education,Movement))) +
  facet_wrap(~CUTOFFBASE, ncol=2)+
  geom_point()+
  geom_line()+
  theme(axis.title.x = element_blank())+
  ylab("Percent of Persons")+
  ggtitle(graphTitle) +
  scale_x_discrete(breaks = unique(pData2$Ref_Date)[seq(1,17,2)])
print(p)
makeFootnote(footnote)
dev.off()

##Variance
pData4 <- pData2[pData2$Movement=="Immobility (below low income lines both years)",]
a <- setNames(aggregate(pData4$Value, list(pData4$CUTOFFBASE,pData4$Ref_Date), var),c("Measure","Ref_Date","Var"))
pData4 <- a

graphTitle <- "Variance of Low Income Immobility Rates in Canada"
fileName <- paste(directory,"LowIncomeImmobilityVariance.pdf", sep="")
pdf(fileName, height = 9.5, width = 12.7)
p <- ggplot(data=pData4,aes(x=Ref_Date,y=Var)) +
  facet_wrap(~Measure, ncol=2)+
  geom_point(color="blue")+
  geom_smooth(method = "lm", se=TRUE,aes(group=1), fill="orange")+
  theme(axis.title.x = element_blank())+
  ylab("Variance of Immobility Accross Levels of Education")+
  ggtitle(graphTitle) +
  scale_x_discrete(breaks = unique(pData2$Ref_Date)[seq(1,17,2)])
print(p)
makeFootnote(footnote)
dev.off()


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s