Community group demographic analysis
Summary
I conducted and analyzed a demographic survey for a religious organization in Seoul – specifically, for a large English-language church. NOTE: This is NOT intended to endorse or promote any religion (as I am not religious), but to simply showcase my work. The organization stakeholders wanted to better understand attendees, their needs, and satisfaction with the church. I created a survey, and after it was administered, I used correlational and logistic regression functions in SAS to analyze the data. Very detailed reports were then provided to the stakeholders, which helped them to understand attendees and their needs, and to make changes accordingly.
Methods used: Survey development, correlation and logistic regression in SAS
Result: Lengthy, detailed reports with quantitative and qualitative analysis for stakeholders, which informed decision making and implementation of changes based on the results.
Details
Stakeholders at a large English church in Seoul asked me to lead a survey project, so they could better undeerstand the organization’s attendees, needs, and satisfaction with the church. I researched church surveys online and adapted questions from church polling organizations from the US. I drafted a survey, which was modified in consultation with the stakeholders. The surveys were administered during service times. This was done in 2009, and again in 2011. The survey included the following question types.
- Basic demographics: age, gender, marital status, nationality, ethnicity, language background, length of time in Korea, intended length of stay in Korea
- Religious identity and practices: membership status, activities and degree of involvement in the organization, several questions on religious identity, several questions on personal religious practices, reasons for attending, several questions on whether their needs were met
- Open-ended questions: strengths and weaknesses of the organization, improvements to be made, other comments
A lengthy report was produced (45+ pages, in both 2009 and 2011), with detailed descriptive statistics for each close-ended question, including Excel graphs, and cross-tabulations of various variables. Open-ended responses were sorted in Excel by key demographic categories for a qualitative analysis and understanding of attendees’ needs. Correlational analyses and logistic regression in SAS (proc freq, genmod, catmod) showed specific relationships among variables that were informative to the stakeholders.
The quantitative analysis showed interesting trends. For example, attendees’ status in the country correlated with membership status or plans, which is relevant, since many attendess are Korean-American, foreign Koreans, or non-Korean foreigners. Correlations were found among attendees’ personal religious practices, degree of involvement in the organization, religious experiences, satisfaction with one’s personal life, and satisfaction with the organization and its services. Finally, grouping responses to open-ended questions by key demographic variables helped the stakeholders to better understand different subgroups and subpopulations at the services, and their needs.
The stakeholders found the reports to be extremely helpful, and implemented some changes soon thereafter based on the survey data. The results helped inform their decision making and strategies thereafter.
Sample SAS code
options ls=256 ps=1000 nocenter; data oem ; infile 'h:\oem\survey\oem09survey.sas.txt' firstobs=2 lrecl=613 ; input form … proc genmod ; class … ; /* Over 20 variables here from the survey */ model q15f = q06 q03 q18 q10bible q10pray / dist=mult type3 ; * q06 q03 q17a q18 q10bible q05sg q10pray q10med q10mem q08 q09 ; run; proc catmod data=oem; response logits ; model q15f = q06 q03 q18 q10bi q10pr ; /* contrast '00m-06m' q03 1 -1 0 0 0 0 ; contrast '06m-12y' q03 1 -1 0 0 0 ; contrast '12-23y' q03 0 1 -1 0 0 ; contrast '23-45y' q03 0 0 1 -1 0 ; contrast '45-6y' q03 0 0 0 1 -1 ; quit ; proc freq ; missing ; tables q06*q15a q03*q15a / measures trend cmh chisq nocol ; test scorr; run; proc freq ; missing ; tables q06*q15a q03*q15a q06*q15b q03*q15b q06*q15c q03*q15c q06*q15d q03*q15d q06*q15e q03*q15e q06*q15f q03*q15f / nocum nopercent nocol ; run; /* Q14 feelings of belonging */ proc genmod ; class ... ; model q14 = q06 q03 q05sg q18 q09 / dist=mult type3 ; run; proc catmod data=oem; response logits ; model q14 = q06 q03 q05sg q09 q18 ; *q10pr q10med ; /* contrast '00m-06m' q03 1 -1 0 0 0 0 ; contrast '06m-12y' q03 1 -1 0 0 0 ; contrast '12-23y' q03 0 1 -1 0 0 ; contrast '23-45y' q03 0 0 1 -1 0 ; contrast '45-6y' q03 0 0 0 1 -1 ; */ quit ; proc freq ; missing ; tables q06*q14 q03*q14 / measures trend cmh chisq nocol ; test scorr; run; /* Q12 quality of personal life */ proc genmod ; class … ; model q13 = q06 q03 q08 q10 / dist=mult type3 ; run; proc catmod data=oem; response logits ; model q13 = q06 q03 q08 q10 ; /* contrast '00m-06m' q03 1 -1 0 0 0 0 ; contrast '06m-12y' q03 1 -1 0 0 0 ; contrast '12-23y' q03 0 1 -1 0 0 ; contrast '23-45y' q03 0 0 1 -1 0 ; contrast '45-6y' q03 0 0 0 1 -1 ; */ quit ; proc freq ; missing ; tables q06*q13 q03*q13 / measures trend cmh chisq nocol expected ; test scorr; run; /* MEMBERSHIP factors */ proc genmod ; class … ; model q06 = q03 q04 q05sg q10 q16b q18 / dist=mult type3 ; * q17a q18 q19o q20a q03*q06q q03 q18 q05sg q08 q09 q10bible; run; proc catmod data=oem; response logits; model q06 = q03 q04 q05sg q10 q16b ; contrast 'lg' q16b 1 -1 0 0 0 0 ; /* contrast '00m-06m' q03 1 -1 0 0 0 0 ; contrast '06m-12y' q03 1 -1 0 0 0 ; contrast '12-23y' q03 0 1 -1 0 0 ; contrast '23-45y' q03 0 0 1 -1 0 ; contrast '45-6y' q03 0 0 0 1 -1 ; */ quit ; proc freq ; missing ; tables q15a*q06/ measures trend cmh chisq nocol expected ; test scorr; run; proc genmod ; class … ; model q15a = q06 q03 q18 / dist=mult type3 ; run; proc catmod data=oem; response logits; model q15a = q06 ; *model q15a = q06 q03 q18; /* contrast '00m-06m' q03 1 -1 0 0 0 0 ; contrast '06m-12y' q03 1 -1 0 0 0 ; contrast '12-23y' q03 0 1 -1 0 0 ; contrast '23-45y' q03 0 0 1 -1 0 ; contrast '45-6y' q03 0 0 0 1 -1 ; */ quit ; proc sort out=oem15a; by q15a q03 q06; run; proc freq data=oem15a; missing ; by q15a; tables q15a q03*q06 / out=oem15a1; run; proc print data=oem15a1; run; proc logistic data=oem15a1 ; class q15a q03 q06; freq count; model q15a=q03 q06 ; run; proc catmod data=oem15a1; direct count; model count=q03 q06; quit;