Tutorial: Using R to Analyze NORC GSS Social Science Data, Part Six, R and ANOVA
A tutorial by Douglas M. Wiig
As discussed in previous segments of this tutorial, for anyone interested in researching social science questions there is a wealth of survey data available through the National Opinion Research Center (NORC) and its associated research universities. The Center has been conducting a national survey each year since 1972 and has compiled a massive database of data from these surveys. Most if not all of these data files can be accessed and downloaded without charge. I have been working with the 2014 edition of the data and for all part of this tutorial will use the GSS2014 data file that is available for download on the Center’s web site. (See the NORC main website at http://www.norc.org/Research/Projects/Pages/general-social-survey.aspx and at http://www3.norc.org/GSS+Website ).
Accessing and loading the NORC GSS2014 data set was discussed in part one of this tutorial. Refer to it if you need specific information on downloading the data set in STATA or SPSS format. In this segment we will use the subset function to select a desired set of cases from all of the cases in the data file that meet certain criteria. As indicated in my previous tutorial the GSS2014 data set contains a total of 2588 cases and 866 variables. Before starting this segment of the tutorial be sure that the foreign package is installed and loaded into your R session. As I have indicated in previous tutorials, use of an IDE such as R Studio greatly facilitates entering and debugging R code when doing research such as is discussed in my tutorials. Import the GSS 2014 data file in SPSS format and load it into the data frame ‘gss14’ using: #########################################################import GSS2014 file in SPSS .sav format #uses foreign package ########################################################require(foreign) gss14<- read.spss("/path to your location/GSS2014.sav", use.value.labels=TRUE,max.value.labels=Inf, to.data.frame=TRUE) #################################################
In this tutorial the analysis of this sample will focus on examining the hypothesis “An individual’s outlook on life is influenced by the amount of education the person has attained.” The GSS variables ‘educ’, education in number of years and ‘life’, whether the respondent rated life DULL, ROUTINE, or EXCITING. A simple approach to testing this hypothesis is to compare mean levels of education for each of the three categories of response. I will do this analysis in two stages. In the first stage I will use techniques discussed in a previous tutorial to select a subset of each response category and display the mean education level for each of the three categories.
The three subsets life1, life2, and life3 are generated using the following code:
###################################################
# create 3 subsets from gss14 view on life by years of education
##################################################
life1 <- subset(gss14, life == “DULL”, select=educ)
life2 <- subset(gss14, life ==”ROUTINE”, select=educ)
life3 <- subset(gss14, life == “EXCITING”, select=educ)
###################################################
#The three means of the subsets are displayed using the code:
# run summary statistics for each subgroup
##################################################
summary(life1)
summary(life2)
summary(life3)
###################################################
resulting the following output:
educ
Min. : 0.00
1st Qu.:10.00
Median :12.00
Mean :11.78
3rd Qu.:13.00
Max. :20.00
summary(life2)
educ
Min. : 0.00
1st Qu.:12.00
Median :13.00
Mean :13.22
3rd Qu.:16.00
Max. :20.00
NA’s :1
summary(life3)
educ
Min. : 2.00
1st Qu.:12.00
Median :14.00
Mean :14.31
3rd Qu.:16.00
Max. :20.00
As is seen above there does appear to be a difference among mean years of education and the corresponding outlook on life. In order to examine whether or not these observed differences are not due to chance a simple one-way Analysis of Variance can be generated.
In the next tutorial I will discuss performing the ANOVA and using pair-wise comparisons to determine which if any means are different.