Statistics and Statistical Programming (Winter 2021)/Problem set 4: Difference between revisions

From CommunityData
(Created page with "<small>← Back to Week 3</small> For this problem set, the programming challenges ask yo...")
 
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
<small>[[Statistics_and_Statistical_Programming_(Fall_2020)#Week_3_.289.2F29.2C_10.2F1.29|← Back to Week 3]]</small>
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!


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 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.  


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.  
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.  


== Programming Challenges ==
== Programming Challenges ==
=== PC0. Get started===
=== PC0. Get started===
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.
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.


=== 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 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.'')
# 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.'')
# 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.4 above.  
# Plot a visual summary (maybe a boxplot or a histogram?) for the same numeric variable you used in PC1.5 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 dataset from the web ===
=== PC2. Work with a downloaded dataset ===
# 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.:
# 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:
::<code>set.seed(<your.birthdate>)</code></br>
<syntaxhighlight lang="R">
::<code>sample(x= c(1:20), size=1))</code>
set.seed(<YOUR BIRTHDATE>)
# 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).  
sample(x=seq(1, 20), size=1)
# Load the .Rdata file for your dataset number into R. It should contain one variable. Find that variable!
</syntaxhighlight>
# 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. 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.  
# 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.
# 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 33: Line 35:


===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 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?  
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?  


===SQ2===
===SQ2===

Latest revision as of 03:06, 13 January 2021

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!

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 univariate tables and visualizations.

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.

Programming Challenges[edit]

PC0. Get started[edit]

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.

PC1. Access and describe a dataset provided in an R library[edit]

  1. Load the openintro R package and the county 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 on the openintro website. (Note: there are a few other datasets in the openintro package with similar names. The one you want is county and is described on the site linked above.)
  2. Find out the class of the county dataset object.
  3. Find out how many rows and how many columns are in the county dataset.
  4. Find the names of all of the variables (columns) as well as the class of each of the variables.
  5. Summarize at least one continuous or discrete numeric variable in the dataset. Calculate the length, range (minimum and maximum), mean, and standard deviation.
  6. Plot a visual summary (maybe a boxplot or a histogram?) for the same numeric variable you used in PC1.5 above.
  7. 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[edit]

  1. Run the following two commands in your R script. Be sure to replace <YOUR BIRTHDATE> with your birthday in yyyyddmm format (e.g., January 06, 2021 would be 20200106). 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:
set.seed(<YOUR BIRTHDATE>)
sample(x=seq(1, 20), size=1)
  1. Navigate to the datasets in the course Dropbox repository and find the RData file in the problem_set_4 subdirectory with your dataset number from PC2.1 (e.g., group_<output>.Rdata where <output> is replaced with the dataset number).
  2. Load the RData file for your dataset number into R. It should contain one variable. Find that variable!
  3. Calculate summary statistics for your variable. Be sure to include the length, minimum, maximum, mean, and standard deviation.
  4. Create a visualization of your variable: at the very least, create a boxplot or a histogram.
  5. 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. NA) in your dataset. Now compute the mean and standard deviation again and note any changes.
  6. 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.

Statistical Questions[edit]

SQ1[edit]

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?

SQ2[edit]

Consider the results of PC2.3 and PC2.4. 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?

SQ3[edit]

Briefly discuss any differences you observe between the untransformed/uncleaned version of the variable you summarized in PC2.3 and PC2.4 and the transformed/cleaned version you summarized in PC2.6. Which summary should you prefer and why?