Editing Statistics and Statistical Programming (Winter 2021)/Problem set 4

From CommunityData
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
For this problem set, the programming challenges ask you to apply some of the concepts from ''OpenIntro'' Chapters 1 and 2 using the R and RStudio fundamentals that were introduced in the first three  R tutorials. If you're feeling lost at any point, I recommend you review some of those materials and/or come ask for help!
<small>[[Statistics_and_Statistical_Programming_(Fall_2020)#Week_3_.289.2F29.2C_10.2F1.29|← Back to Week 3]]</small>


The topics/skills covered here include: loading/importing datasets, performing some basic data management, summarizing data, conducting simple arithmetic operations, calculating summary/descriptive statistics for a few different kinds of variables, and creating [[:wikipedia:univariate|univariate]] tables and visualizations.  
For this problem set, the programming challenges ask you to apply some of the concepts from ''OpenIntro'' Chapters 1 and 2 using the R and RStudio fundamentals that were introduced in the recommended R tutorials for Weeks 1 and 3. If you're feeling lost at any point, I recommend you review some of those materials and/or come ask for help!


The problem set is structured to model the workflow you would likely pursue whenever you encounter a new dataset outside of a classroom setting starting with basic inspection and description of variables of interest before moving on to more sophisticated analysis.  
The topics/skills covered here include: loading/importing datasets, performing some basic data management, summarization, and arithmetic operations, calculating summary/descriptive statistics for a few different kinds of variables, and creating univariate tables and visualizations. Also, the problem set is structured to model the sort of workflow you might pursue whenever you encounter a new dataset, starting with basic inspection and description of variables of interest before moving on to more sophisticated analysis.  


== Programming Challenges ==
== Programming Challenges ==
=== PC0. Get started===
=== PC0. Get started===
Open up RStudio, create a new project as you would for any assignment. Once you've got your project set up, create a file for this assignment (likely an R Markdown file, although an R script could work too), add relevant metadata (maybe your name, the date, and a title so that you/we know it is Problem Set 4 for this class?), and save it.
Open up RStudio, create a new file for this assignment (likely an R Markdown script), add relevant metadata (maybe your name, the date, and a title so that you/we know it is Problem Set 1 for this class?), and save it.


=== PC1. Access and describe a dataset provided in an R library ===  
=== PC1. Access and describe a dataset provided in an R library ===  


# Load the <code>openintro</code> R package and the <code>county</code> dataset so that they are available to you. Let's get to know this data! You will already be familiar with it from Chapter 1 of the ''OpenIntro'' textbook and a codebook is available [https://www.openintro.org/data/index.php?data=county on the openintro website]. (''Note: there are a few other datasets in the <code>openintro</code> package with similar names. The one you want is <code>county</code> and is described on the site linked above.'')
# Load the <code>openintro</code> R package and the <code>county</code> dataset so that they are available to you. Let's get to know this data! You may already be familiar with it from Chapter 1 of the ''OpenIntro'' textbook and a codebook is available [https://www.openintro.org/data/index.php?data=county on the openintro website]. (''Note: there are a few other datasets in the <code>openintro</code> package with similar names. The one you want is <code>county</code> and is described on the site linked above.'')
# Find out the class of the <code>county</code> dataset object.  
# Find out the class of the <code>county</code> dataset object.  
# Find out how many rows and how many columns are in the <code>county</code> dataset.  
# Find out how many rows and how many columns are in the <code>county</code> dataset.  
# Find the names of all of the variables (columns) as well as the class of each of the variables.  
# Find the names of all of the variables (columns) as well as the class of each of the variables.  
# Summarize at least one continuous or discrete numeric variable in the dataset. Calculate the length, range (minimum and maximum), mean, and standard deviation.
# Summarize at least one continuous or discrete numeric variable in the dataset. Calculate the length, range (minimum and maximum), mean, and standard deviation.
# Plot a visual summary (maybe a boxplot or a histogram?) for the same numeric variable you used in PC1.5 above.  
# Plot a visual summary (maybe a boxplot or a histogram?) for the same numeric variable you used in PC1.4 above.  
# Summarize at least one categorical variable in the dataset (e.g., if the variable takes values of TRUE/FALSE or NA, how many of each are value are there?).
# Summarize at least one categorical variable in the dataset (e.g., if the variable takes values of TRUE/FALSE or NA, how many of each are value are there?).


=== PC2. Work with a downloaded dataset ===
=== PC2. Work with a dataset from the web ===
# Run the following two commands in your R script. Be sure to replace <code><'''YOUR BIRTHDATE'''></code> with your birthday in ''yyyyddmm'' format (e.g., January 06, 2021 would be <code>20200106</code>). If you run the commands correctly (or maybe even not), R will return a single random integer value between 1 and 20. This integer will be your dataset number for the purposes of PC2:
# Run the following two commands in your R script. Be sure to replace <code><your.birthdate></code> with your birthday in ''ddmmyy'' format (e.g., September 21, 2020 would be <code>210920</code>) or at least something numeric. If you run the commands correctly (or maybe even not), R will return a single random integer value between 1 and 20. This integer will be your dataset number for the purposes of PC2.:
<syntaxhighlight lang="R">
::<code>set.seed(<your.birthdate>)</code></br>
set.seed(<YOUR BIRTHDATE>)
::<code>sample(x= c(1:20), size=1))</code>
sample(x=seq(1, 20), size=1)
# Navigate to the [https://communitydata.science/~ads/teaching/2020/stats/data data repository for the course] and find the RData file in the <code>week_03</code> subdirectory with your dataset number from PC2.1 (e.g., <code>group_<output>.Rdata</code> where <output> is replaced with the dataset number).  
</syntaxhighlight>
# Load the .Rdata file for your dataset number into R. It should contain one variable. Find that variable!
# Navigate to the <code>datasets</code> in the course Dropbox repository and find the RData file in the <code>problem_set_4</code> subdirectory with your dataset number from PC2.1 (e.g., <code>group_<output>.Rdata</code> where <output> is replaced with the dataset number).  
# Load the RData file for your dataset number into R. It should contain one variable. Find that variable!
# Calculate summary statistics for your variable. Be sure to include the length, minimum, maximum, mean, and standard deviation.
# Calculate summary statistics for your variable. Be sure to include the length, minimum, maximum, mean, and standard deviation.
# Create a visualization of your variable: at the very least, create a boxplot or a histogram.
# Create a visualization of your variable: at the very least, create a boxplot or a histogram.
# Some of you may have negative numbers. Let's imagine we have a substantive or theoretical reason to exclude negative values from our analysis. Write code to recode all negative numbers as missing (i.e. <code>NA</code>) in your dataset. Now compute the mean and standard deviation again and note any changes.
# Some of you may have negative numbers. Whoops! This was due to a coding error. Write code to recode all negative numbers as missing (i.e. <code>NA</code>) in your dataset. Now compute the mean and standard deviation again and note any changes.  
# Log transform your dataset (i.e., take the natural logarithm for each value). If you have very small values (close to zero) it may be helpful to add 1 to each value before you take the natural logarithm (this avoids nonsense output in the results). Calculate the new mean and standard deviation of the transformed variable. Also create a new histogram or boxplot.
# Log transform your dataset (i.e., take the natural logarithm for each value). If you have very small values (close to zero) it may be helpful to add 1 to each value before you take the natural logarithm (this avoids nonsense output in the results). Calculate the new mean and standard deviation of the transformed variable. Also create a new histogram or boxplot.


Line 35: Line 33:


===SQ1===  
===SQ1===  
Consider the results of PC1.4 and PC1.5. Do the mean and standard deviation seem likely to provide good representations of the central tendency (i.e., the average or expected value) and variability (i.e., the spread) of this variable? Why or why not? If not, what alternative measures could you use to characterize the central tendency and spread respectively?  
Consider the results of PC1.4 and PC1.5. Do the mean and standard deviation seem likely to provide good representations of the central tendency and spread of this variable? Why or why not? If not, what alternative measures could you use to characterize the central tendency and spread respectively?  


===SQ2===
===SQ2===
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see CommunityData:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)