As your quest for relevant data continues, we’ll discuss how creating and maintaining a data inventory can be an effort that saves you heartache and greatly accelerates many of the technical facets of your project. Similarly, we’ll provide you some tools and best practices for making sure that your meetings are impactful, necessary, and accessible to all participants so that meeting with the group doesn’t cost you any momentum!
Note Pre-Class Preparation
There is no specific pre-class preparation for this module!
Process Design
Tip Learning Objectives
After completing this topic you will be able to:
Articulate core considerations for an effective meeting
Plan effective meetings!
Good meeting design starts with understanding your purpose and objectives, as well as your participants. Once you understand why you need to meet (your overarching goal) and what you want to accomplish (the specific outcomes you are driving toward), you can turn to how you will accomplish your purpose (i.e. the agenda of activities, timings, and tech) and who will play what roles. You want participants to know their role and how to be at their best.
A good rule of thumb is to allow 2-3x as much time to plan a meeting as its duration.
Meeting Roles
Tip Learning Objectives
After completing this topic you will be able to:
Identify useful roles for any meeting
It’s very difficult to both facilitate a conversation and engage fully in it as a participant. If you add taking notes on top of that, it’s sure to become overwhelming. So recruit some help. The number of roles you need to fill will depend on the size of the group and the complexity of the process. Online meetings particularly benefit from a team approach to facilitation. Share and rotate duties over time:
Process facilitator - sets tone and pace, mediates conflicts, and ensures all voices are being heard, interpersonal dynamics are positive/effective, and group is staying on task
Meeting chair (optional) - keeps an eye on the overall vision and progress of the meeting
Timekeeper - may also be the chair or facilitator
Tech Host - monitors chat, sets up breakout rooms, records meeting, troubleshoots technology as needed in virtual/hybrid meetings
Notetaker - captures action items and notes, often in a google doc that can be viewed and added to by others; may also produce a meeting summary
Scribe - captures important points that can be seen in real time by the whole group, usually on a whiteboard or flipchart
Spotter - keeps a running list of who is waiting to speak (especially in large groups or intense discussions)
Relationship monitor - tracks group dynamics and actively works to help everyone feel included and engaged on personal and social levels, may also be the facilitator
Participation monitor - engineers opportunities for participation, quells interrupters, amplifies and credits the messages of quieter participants, may also be the facilitator
As you get to know your team members, you can start to match people to these different roles based on their skills and recruit them to help. Also, be aware of who has been performing a given role so that you don’t risk repeatedly trapping one group member in an administrative role across many meetings where they can’t contribute fully on an intellectual level.
Online Meetings
Tip Learning Objectives
Explain methods for improving the experience of virtual participants on hybrid teams
Online meetings benefit from all the same considerations as in person meetings, plus a little extra care and planning. Keeping your team engaged is doubly challenging in a virtual setting: our computers are full of distractions (email! notifications! internet rabbit holes!) and as the facilitator, it’s harder to tell whether participants are engaged when all you have to go on is a small video window. Managing people’s energy and attention and creating opportunities for real human connection are real challenges. On the flip side, online meetings allow distributed teams to stay connected and can provide a dynamic and rich platform for shared work.
In addition to the general tips above, in online settings:
Be thoughtful and equitable when scheduling across time zones
Develop online meeting norms for your team and enforce them (e.g., use of chat, indicating you want to speak)
Ask a team member to help you monitor the chat and assist participants with tech or connectivity challenges
Encourage personal connection (e.g., with check ins, invitations to have video on)
Check engagement regularly
Provide breaks (bio breaks, silence, invitations to step away from the screen for reflection)
Make video optional
Take advantage of tech tools (breakout rooms, polls, shared notes, virtual whiteboards, recording, transcription, etc.)
Alternatives to Conventional Meeting Structures
Tip Learning Objectives
After completing this topic you will be able to:
Explain how some meeting microstructures privilege different thinking styles
Use some common microstructures
Differences in thinking and learning styles, disciplinary background, power, and other dimensions of diversity mean that there’s no such thing as a one-size-fits-all approach for participatory processes. Nonetheless, we tend to default to a small set of traditional ways of sharing information and engaging people when we meet. These conventional structures are often either too limiting (presentations, status reports, and managed discussions) or too free-form and disorganized (open discussions and brainstorms) to effectively tap the wisdom of the group (Lipmanowicz and McCandless, 2014). To support the engagement of all participants, we need to break out of those traditional ways of meeting.
Books and websites like Liberating Structures, Gamestorming, and the Facilitator’s Guide to Participatory Decision Making offer dozens of alternative group processes (see Resources). Known as microstructures or knowledge games, these simple, fun activities are designed to include everyone, distribute control, and unleash creativity. One or more activities can be matched to your intended outcomes and arranged in a sequence to advance the team toward your overall goal. Liberating Structures offers a matching matrix to help you identify microstructures that could fit your needs and an app you can use to browse and assemble strings of activities. Gamestorming organizes their activities into categories (e.g. games for opening, games for decision-making) for exploration.
Microstructures for Small Group Meetings
Here are a few microstructures that work well for small group virtual meetings. They also work for larger groups and in person settings:
Microstructure
Thinking Preference
Purpose
How It Works
Icebreaker / check in
Relational
Connect as a team, start on a positive, human note
Many versions exist, e.g., one word to describe how you are arriving; one thing you are feeling grateful for today; coolest thing you’ve learned lately; describe where you grew up without using any place names, etc.
Round robin / go around
Analytical, Relational
Hear from everyone
Everyone answers the same prompt. Alternatives to going in order: each speaker calls on the next person after they have shared - keeping track of who has / hasn’t spoken keeps people paying attention; popcorn-style - people share in the order that they feel moved to speak
Specify simple rules the group must follow to achieve your purpose
1,2,4,all format; Individuals brainstorm things the group must do or must not do to achieve its purpose; Share in pairs or small groups; Pare the list down to the minimum set of rules you could follow and still achieve the purpose
Make sense of past progress or experiences and decide on future actions
What - As a group, compile the facts and observations relevant to the context; So What - Reflect on the facts and their implications, identify patterns, generate hypotheses; Now What - Draw conclusions - What actions make sense?
Use when ready to close a discussion or make a decision; Invite participants to rate their level of agreement with a proposal on a scale of 0-5; Five fingers means “absolute, total agreement or support” and a fist means “complete opposition”
Polling
Analytical, Practical
Rank alternatives
Before you start - clarify how you will use the results - are you gathering information or taking a vote to make a decision?; Decide how many votes per person; In person - use sticky dots; Virtually - use +1s in a google doc or a digital polling tool (e.g., Zoom, Mural, slido)
Feasibility-Impact Matrix (see figure below)
Analytical, Practical, Experimental
Compare alternatives
Discuss and agree on definitions for two criteria for evaluating ideas: feasibility of implementation and impact potential; Rate each idea against these two axes and map onto 2x2 grid
Harvesting Meeting Content
Tip Learning Objectives
After completing this topic you will be able to:
Paraphrase why recording meeting content ‘as you go’ is useful
As you go, and definitely before your meeting is over, engage your team in synthesizing and capturing the information that has been discussed. This helps you to deepen understanding, document your workflow and decisions, and pick up easily next time. Use a consistent system - like a running notes document linked in the calendar item. Graphics or drawings can be a valuable complement to oral and written content in making thinking visible.
Making thinking visible, Credit: Nancy Margulies, World Cafe, Flickr
Consider using:
Grids to organize information
Conceptual models or mind maps to articulate shared understanding of complex systems
Manifestos, abstracts, and other written collateral to distill ideas
When capturing notes, try to use people’s own words; if necessary ask them to distill long or complex points into a headline you can capture. Invite them to offer corrections if the notetaker didn’t capture what they meant.
On your own, think about an upcoming team meeting that hasn’t yet been planned
Why will you be meeting?
What do you think should be the purpose of that meeting?
In your project teams:
Decide as a group which upcoming meeting you want to focus on
Identify a facilitator, timekeeper, reporter for today’s breakout session (not the meeting)
Use round robin or silent Google Doc-ing to hear everyone’s answers to the prompt
Plan your next meeting together (resources: EasyRetro board, tools highlighted above)
Agree on the meeting purpose
Identify 1-3 intended outcomes
Draft an agenda for the meeting
What activities will you use to make your meeting inclusive? Can you include an activity that preferences each thinking style?
Identify roles and responsibilities
What’s your plan for harvesting content?
Identify any prep work for participants and for the facilitator(s)
Discuss:
How might things get off track?
What’s your plan if they do?
Modify your plan as needed
As a whole class, let’s discuss your answers to the following questions:
What activities did you identify to help make your meeting inclusive to all the thinking styles on your team?
Where would you like advice from the class?
Are there other questions you are holding related to inclusive facilitation?
Data Visualization for Synthesis
Tip Learning Objectives
After completing this topic you will be able to:
Describe how data visualization fits into the synthesis process
As shown in the graphic below, visualization can be valuable throughout the lifecycle of a synthesis project, albeit in different ways at different phases of a project.
Diagram of data stages from raw data to published products. Credit: Margaret O’Brian & Li Kui & Sarah Elmendorf
Visualization for Exploration
Tip Learning Objectives
After completing this topic you will be able to:
Explain how data visualization can be used to explore data
Exploratory data visualization is an important part of any scientific project. Before launching into analysis it is valuable to make some simple plots to scan the contents. These plots may reveal any number of issues, such as typos, sensor calibration problems or differences in the protocol over time.
These “fitness for use” visualizations are even more critical for synthesis projects. In synthesis, we are often re-purposing publicly available datasets to answer questions that differ from the original motivations for data collection. As a result, the metadata included with a published dataset may be insufficient to assess whether the data are useful for your group’s question. Datasets may not have been carefully quality-controlled prior to publication and could include any number of ‘warts’ that can complicate analyses or bias results. Some of these idiosyncrasies you may be able to anticipate in advance (e.g. spelling errors in taxonomy) and we encourage you to explicitly test for those and rectify them during the data harmonization process. Others may come as a surprise.
During the early stages of a synthesis project, you will want to gain skill to quickly scan through large volumes of data. The figures you make will typically be for internal use only, and therefore have low emphasis on aesthetics.
Exploratory Visualization Applications
Specific applications of exploratory data visualization include identifying:
This may include temporal, spatial, or taxonomic coverage, to name a few.
For example, the metadata might indicate a dataset covers the period 2010-2020. That could mean one data point in 2010 and one in 2020! This may not be useful for a time-series analysis.
Do the units “make sense” with the figure? Typos in metadata do occur, so if you find yourself with elephants weighing only a few grams, it may be necessary to reach out to the dataset contact.
Consider the following:
Do the data from sequential years, replicate sites, different providers generally fall into the same ranges or is there sensor drift or changes in protocols that need to be addressed?
A risk of synthesis projects is that you may find you are comparing apples to oranges across datasets, as the individual datasets included in your project were likely not collected in a coordinated fashion.
A benefit of synthesis projects is you will typically have large volumes of data, collected from many locations or timepoints. This data volume can be leveraged to give you a good idea of how your response variable looks at a ‘typical’ location as well as inform your gestalt sense of how much site-to-site, study-to-study, or year-to-year variability is expected. In our experience, where one particular dataset, or time period, strongly differs from the others, the most common root cause is differences in methodology that need to be addressed in the data harmonization process.
In addition to those other uses of exploratory visualization, you may also find:
Harmonization issues
Are all your datasets measured in units that can be converted to the same units?
If not, can you envision metrics (relative abundance? Effect size?) that would make datasets intercomparable?
Some entire datasets cannot be used
Parts of some datasets cannot be used
Additional quality control is needed (e.g. filtering large outliers)
Identifying all of these pieces of information is an important precursor to the data harmonization stage, where you will process the datasets you have selected into an analysis-ready format. Visualization is a–relatively–easy way of doing these checks!
Warning Activity: Data Sleuth
In this activity, you’ll play the role of data detective. You will have many potential datasets to look through. It is important to do it correctly, but you likely won’t need or want to develop boutique code to examine each dataset, especially since some may be discarded after an initial pass.
As a project team, discuss the following points:
Decide on a structure for tracking results of exploratory data checks
Git issues? Additional columns in your team-data-inventory google sheet? Something else?
Draft a list of ‘generic checks’ you would want to apply to each dataset before inclusion in your synthesis
Use the summarytools and/or datacleanr packages to explore one exemplar dataset that you intend to include in your project
Discuss any issues you discover
Create a “to do” list for the exemplar dataset that details additional steps needed to make that dataset analysis ready (e.g. remove 1993 due to incomplete sampling, convert concentrations from mmols to mg/L, contact dataset providers to ask about anomalous values in April 2021)
Revise the list of ‘generic checks’ for remaining datasets as necessary
If you choose to save any images and/or code you used in your exploratory data visualization, decide on a naming convention and storage location
Will you add these files to your .gitignore or do you plan on committing them?
What additional plots would you ideally make that are not available through these generic tools?
# Load the librarylibrary(summarytools)# Load datadataset_1 <-read_csv("your_file_name_here.csv")# View the data in your Rstudio environmentsummarytools::view(summarytools::dfSummary(dataset_1), footnote =NA)# Alternatively,save the results for viewing later, or to share with your teamprint(summarytools::dfSummary(dataset_1), footnote =NA,file ='dataset_01_summary.html')
1
Careful! Use lowercase ‘v’ in the view function of the summarytools package
# Load the librarylibrary(datacleanr)# Load datadataset_1 <-read_csv("your_file_name_here.csv")# Launch the shiny app and view the data interactivelydatacleanr::dcr_app(dataset_1)
Both of these packages have extensive vignettes and online instructional materials. See here for one from summarytools and here for one from datacleanr.
Final Pre-Code Step: Draw!
Tip Learning Objectives
After completing this topic you will be able to:
Explain why drawing a graph is a useful step before writing code to ‘actually’ make the graph
It may sound facile, but one of the best things you can do to make your life easier when you ‘actually’ start making graphs is to draw your hypothetical graph. You will likely find that creating a small sketch of your ideal figure will help you make some critical decisions. This can save you time so you don’t laboriously code a graph that–once created–doesn’t meet your expectations. You may still change your mind once you’ve seen the graph your code produces (and that is okay!) but you’ll likely make some of the necessary larger decisions with pen and paper and streamline your process in generating a visualization that perfectly meets your needs.
Warning Activity: Sketch-y Graphing
On a piece of scrap paper, draw one graph you think might be helpful in your project. Then, ask yourself the following questions:
Does the graph make it clear whether your hypothesis is or is not supported?
How / will you identify statistical significance?
What type of graph makes the most sense (e.g., boxplot vs. violin plot, etc.)?
What information is contained in the axes versus stored in other graph elements (e.g., point shape, color, transparency, etc.)?
Graphing with ggplot2
Tip Learning Objectives
After completing this topic you will be able to:
Define fundamental ggplot2 vocabulary
Createggplot2 graphs
You may already be familiar with the ggplot2 package in R but if you are not, it is a popular graphing library based on The Grammar of Graphics. Every ggplot is composed of four elements:
A ‘core’ ggplot function call
Aesthetics
Geometries
Theme
Note that the theme component may be implicit in some graphs because there is a suite of default theme elements that applies unless otherwise specified.
This module will use example data to demonstrate these tools but as we work through these topics you should feel free to substitute a dataset of your choosing! If you don’t have one in mind, you can use the example dataset shown in the code chunks throughout this module. This dataset comes from the lterdatasampler R package and the data are about fiddler crabs (Minuca pugnax) at the Plum Island Ecosystems (PIE) LTER site.
# Load needed librarieslibrary(tidyverse); library(lterdatasampler)# Load the fiddler crab datasetdata(pie_crab)# Check its structurestr(pie_crab)
Let’s begin with a scatterplot of crab size on the Y-axis with latitude on the X. We’ll forgo doing anything to the theme elements at this point to focus on the other three elements.
ggplot(data = pie_crab, mapping =aes(x = latitude, y = size, fill = site)) +geom_point(pch =21, size =2, alpha =0.5)
1
We’re defining both the data and the X/Y aesthetics in this top-level bit of the plot. Also, note that each line ends with a plus sign
2
Because we defined the data and aesthetics in the ggplot() function call above, this geometry can assume those mappings without re-specifying
We can improve on this graph by tweaking theme elements to make it use fewer of the default settings.
All theme elements require these element_... helper functions. element_blank removes theme elements but otherwise you’ll need to use the helper function that corresponds to the type of theme element (e.g., element_text for theme elements affecting graph text)
We can further modify ggplot2 graphs by adding multiple geometries if you find it valuable to do so. Note however that geometry order matters! Geometries added later will be “in front of” those added earlier. Also, adding too much data to a plot will begin to make it difficult for others to understand the central take-away of the graph so you may want to be careful about the level of information density in each graph. Let’s add boxplots behind the points to characterize the distribution of points more quantitatively.
By putting the boxplot geometry first we ensure that it doesn’t cover up the points that overlap with the ‘box’ part of each boxplot
ggplot2 also supports adding more than one data object to the same graph! While this module doesn’t cover map creation, maps are a common example of a graph with more than one data object. Another common use would be to include both the full dataset and some summarized facet of it in the same plot.
Let’s calculate some summary statistics of crab size to include that in our plot.
# Load the supportR librarylibrary(supportR)# Summarize crab size within latitude groupscrab_summary <- supportR::summary_table(data = pie_crab, groups =c("site", "latitude"),response ="size", drop_na =TRUE)# Check the structurestr(crab_summary)
'data.frame': 13 obs. of 6 variables:
$ site : chr "BC" "CC" "CT" "DB" ...
$ latitude : num 42.2 41.9 41.3 39.1 30 39.6 41.6 33.3 42.7 34.7 ...
$ mean : num 16.2 16.8 14.7 15.6 12.4 ...
$ std_dev : num 4.81 2.05 2.36 2.12 1.8 2.72 2.29 2.42 2.3 2.34 ...
$ sample_size: int 37 27 33 30 28 30 29 30 28 25 ...
$ std_error : num 0.79 0.39 0.41 0.39 0.34 0.5 0.43 0.44 0.43 0.47 ...
With this data object in-hand, we can make a graph that includes both this and the original, un-summarized crab data. To better focus on the ‘multiple data objects’ bit of this example we’ll pare down on the actual graph code.
ggplot() +geom_point(pie_crab, mapping =aes(x = latitude, y = size, fill = site),pch =21, size =2, alpha =0.2) +geom_errorbar(crab_summary, mapping =aes(x = latitude,ymax = mean + std_error,ymin = mean - std_error),width =0.2) +geom_point(crab_summary, mapping =aes(x = latitude, y = mean, fill = site),pch =23, size =3) +theme(legend.title =element_blank(),panel.background =element_blank(),axis.line =element_line(color ="black"))
1
If you want multiple data objects in the same ggplot2 graph you need to leave this top level ggplot() call empty! Otherwise you’ll get weird errors with aesthetics later in the graph
2
This geometry adds the error bars and it’s important that we add it before the summarized data points themselves if we want the error bars to be ‘behind’ their respective points
Warning Activity: Graph Creation
In a script, attempt the following with one of either your or your group’s datasets:
Make a graph using ggplot2
Include at least one geometry
Include at least one aesthetic (beyond X/Y axes)
Modify at least one theme element from the default
Multi-Panel Graphs
Tip Learning Objectives
After completing this topic you will be able to:
Describe the difference(s) between “faceted” graphs and “plot grids”
Create faceted ggplot2 graphs
Assemble grids of plots
It is sometimes the case that you want to make a single graph file that has multiple panels. For many of us, we might default to creating the separate graphs that we want, exporting them, and then using software like Microsoft PowerPoint to stitch those panels into the single image we had in mind from the start. However, as all of us who have used this method know, this is hugely cumbersome when your advisor/committee/reviewers ask for edits and you now have to redo all of the manual work behind your multi-panel graph.
Fortunately, there are two nice–entirely scripted–alternatives that you might consider: Faceted graphs and Plot grids. See below for more information on both.
In a faceted graph, every panel of the graph has the same aesthetics. These are often used when you want to show the relationship between two (or more) variables but separated by some other variable. In synthesis work, you might show the relationship between your core response and explanatory variables but facet by the original study. This would leave you with one panel per study where each would show the relationship only at that particular study.
Let’s check out an example.
ggplot(pie_crab, aes(x = date, y = size, color = site))+geom_point(size =2) +facet_wrap(. ~ site) +theme_bw() +theme(legend.position ="none")
1
This is a ggplot2 function that assumes you want panels laid out in a regular grid. There are other facet_... alternatives that let you specify row versus column arrangement. You could also facet by multiple variables by putting something to the left of the tilde
2
We can remove the legend because the site names are in the facet titles in the gray boxes
In a plot grid, each panel is completely independent of all others. These are often used in publications where you want to highlight several different relationships that have some thematic connection. In synthesis work, your hypotheses may be more complicated than in primary research and such a plot grid would then be necessary to put all visual evidence for a hypothesis in the same location. On a practical note, plot grids are also a common way of circumventing figure number limits enforced by journals.
Let’s check out an example that relies on the cowplot library.
# Load a needed librarylibrary(cowplot)# Create the first graphcrab_p1 <-ggplot(pie_crab, aes(x = site, y = size, fill = site)) +geom_violin() +coord_flip() +theme_bw() +theme(legend.position ="none")# Create the secondcrab_p2 <-ggplot(pie_crab, aes(x = air_temp, y = water_temp)) +geom_errorbar(aes(ymax = water_temp + water_temp_sd, ymin = water_temp - water_temp_sd),width =0.1) +geom_errorbarh(aes(xmax = air_temp + air_temp_sd, xmin = air_temp - air_temp_sd),width =0.1) +geom_point(aes(fill = site), pch =23, size =3) +theme_bw()# Assemble into a plot gridcowplot::plot_grid(crab_p1, crab_p2, labels ="AUTO", nrow =1)
1
Note that we’re assigning these graphs to objects!
2
This is a handy function for flipping X and Y axes without re-mapping the aesthetics
3
This geometry is responsible for horizontal error bars (note the “h” at the end of the function name)
4
The labels = "AUTO" argument means that each panel of the plot grid gets the next sequential capital letter. You could also substitute that for a vector with labels of your choosing
Warning Activity: Multi-Panel Graph Creation
In a script, attempt the following:
Create two graphs with ggplot2 that have different geometries
Assemble the appropriate type of multi-panel graph
If appropriate, facet one of the two graphs by some grouping variable and re-generate the multi-panel graph from step 2