Visualizing Survey Results with Wordle

By jwmiller5 at March 15, 2010 11:14
Filed Under: Articles, visualization

Statistical surveys are used to collect quantitative information about items in a population. Surveys of human populations and institutions are common in political polling and government, health, social science and marketing research - from Wikipedia

 

We have all filled out surveys. We score our customer service, job satisfaction, political beliefs and more. Surveys are an excellent tool for collecting quantitative data from a large set of people. As more people respond, we can use statistical analysis to predict the entire population's response with increasing precision. This capability leads survey designers to prefer numeric scores. The canonical example is the 1 to 5, Strongly Disagree to Strongly Agree.

survey1

survey2

These constrained answers make it easy to compare scores and aggregate data, but for complex issues with interdependencies, these questions are irrelevant. Can anyone have a 3.8 agreement factor about their child's education? Are you sure your customers have a 4.4 out of 5 positive feeling about your brand? Some survey designers try to include several factors to allow for more nuanced rankings. How can we encourage users to give us the answers to the issues burning deep in their souls while not creating a list of essays for reviewers to read, rank, and aggregate? Is there a good way to quantify qualitative data?

On a recent client engagement, we were analyzing a survey including broad, open-ended questions with no restriction on answers. How do you quantify "What is the best part of your job?" Enter Wordle. This site allows you to enter any test you like, and it will provide the word count, remove common terms (at, of, the, and), and provide a visualization of the relevant terms? When I was working with another developer on it, we found the flow from the question to the most common answers impossible to resist. Our eyes were immediately drawn to the leading answers. Our clients agreed and found the output easy to understand.

demo_wordmap_thumb

 

Wordle runs as a Java applet on your local machine. This means that your anonymous, personal survey results are processed on your local machine and no information is sent back to a central server for storage. The word counts are also available if someone wants to have the specific number of times a topic or word was mentioned.

Disclaimer: I am in no way affiliated with Wordle, I just used it and found it was a perfect fit for our needs.

Visualizing Data with GeoRSS and Virtual Earth

By jwmiller5 at March 23, 2009 06:57
Filed Under: VirtualEarth, visualization, Articles

According to the Federal Geographic Data Committee, 80%-90% of all government data has a geographic component. As we offer data to the public, this offers an incredible opportunity to create richer interfaces and allow users to quickly grasp issues that effect them based on location. As RSS becomes more and more prevalent as a way to publish and share information, it becomes increasingly important that location is described in an interoperable manner so that applications can request, aggregate, share and map geographically tagged feeds

GeoRSS is an encoding standard that allows us to add geographical information to any existing RSS or Atom feed. KML is an XML based language that allows us describe geographical information as well. KML seems better suited for strictly visual browsers (as it offers additional data for creating a "camera view"). I'll focus on GeoRSS since we can easily expose this to users who are currently consuming our feeds.

 

To add GeoRSS data to a feed we need to take two steps

  1. Add the GeoRSS namespace to our feed namespace declarations.
  2. Add a GeoRSS element (point) to our posts.

I've created some extension methods to make this easier if you are using the SyndicationFeed class.

public static class SyndicationFeedExtension

{

    private static XmlQualifiedName geoRssXmlQualifiedName = new XmlQualifiedName("georss", "http://www.w3.org/2000/xmlns/");

    private static string geoRssNamespace = "http://www.georss.org/georss";


    public static void AddGeoRSSPoint(this SyndicationItem feedItem, string Latitude, string Longitude)
    {

        feedItem.ElementExtensions.Add(new SyndicationElementExtension("point", geoRssNamespace,Latitude + " " + Longitude));
    }


    public static void AddGeoRSSNamespace(this SyndicationFeed feed)
    {

        feed.AttributeExtensions.Add(geoRssXmlQualifiedName, geoRssNamespace);
    }

}





At this point we have an RSS/Atom feed with location data. What is the best way to display this data? I would use an online mapping service that users are familiar with like Google Maps or Windows Live Maps. Microsoft offers a Virtual Earth Server control as part of its Windows Live Tools. Once we have installed this toolkit, we can drop the control onto a page and tell it to consume the RSS feed we created earlier.







using Microsoft.Live.ServerControls.VE;

public partial class FeedMap : System.Web.UI.Page
{


protected void Page_Load(object sender, EventArgs e)
{

    ShapeLayer myPoints= new ShapeLayer();
    ShapeSourceSpecification grants = new ShapeSourceSpecification(DataType.GeoRSS, "MyFeed.aspx", myPoints);
    Map1.ImportShapeLayerData(myPoints, null, true); 
}

}