Welcome to Math 497

Intro to Monte Carlo Methods

Introductions

  • San Bernardino, CA

  • CSU Monterey Bay

    • BS Biology
  • San Diego State University

    • Master’s in Public Health
  • UC Riverside

    • PhD in Applied Statistics

Introductions

  • Name

  • Year

  • Major

  • Fun Fact

  • Career Goal

Goals for the Course

  • Gain R Programming Skills

  • Learn Different Monte Carlo Methods

  • Conduct Simulation Studies

Monte Carlo Methods

Monte Carlo Methods is a way to simulate a complex probability distribution using commonly used random variables.

Syllabus

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

Syllabus

Syllabus

Books

Introduction to R

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

R Programming

R is a statistical programming package that allows you to conduct different types of analysis.

R

RStudio

A piece of software that organizes how you conduct statistical analysis in R.

RStudio

Posit Cloud

A web version of RStudio.

Posit Cloud

R Packages

  • Tidyverse

  • csucistats

install.packages('csucistats', 
                 repos = c('https://inqs909.r-universe.dev', 
                           'https://cloud.r-project.org'))

R Basics

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

R as a calculator

R can evaluate different expressions in the console tab.

Try the following:

  1. \(4(4+2)/34\)
  2. \(6^3\)
  3. \(3-1\)
  4. \(4+4/3+45(32*34-54)\)

R Calculator

R Functions

R functions performs tasks to specific data values.

Evaluate the following values in R:

  1. \(\sqrt{3}\)
  2. \(e^3\)
  3. \(\ln(53)\)
  4. \(\log(324)\)
  5. \(\sin(3)\)
  6. \(\sin(3\pi)\)

R Functions

Types of Data

  • Numeric

  • Character

  • Logical

  • Missing

Evaluate the following code:

is.numeric(1)
is.numeric("1")
is.numeric(T)
is.numeric(NA)

Types of Data

Types of Objects

In R, an object contains a set of data. The most common types are vectors and matrix.

Run this code and print out the objects in the console:

x <- 3:34
y <- matrix(1:20, nrow = 4)

Types of objects

Vectors

Use the c() function to create a container of data objects.

Data Frames

Data frames can be thought of as R’s version of a data set.

Play around with mtcars:

mtcars 
#>                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#> Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#> Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
#> Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
#> Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
#> Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#> Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
#> Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
#> Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
#> Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
#> Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
#> Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
#> Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
#> Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
#> Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
#> Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
#> Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
#> Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
#> Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
#> Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
#> AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
#> Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
#> Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
#> Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
#> Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
#> Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
#> Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
#> Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
#> Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
#> Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Lists

List can be thought as an extended vector, but each element is a different R object.

Try playing with this R object:

list_one <- list(mtcars, rep(0, 4),
                 diag(rep(1, 3)))

Lists

Control Flow

The order a computer will complete tasks.

Usually incorporates statements and loops.

Indexing

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

Indexing

Within an R object, you can access an element by indexing it.

Indexing tells R which values to output.

Vectors

A vector can be indexed by adding [] after the object’s name and specifying the number of each element.

Matrices

A matrix can be indexed by adding [] after the object’s name and specifying the number of each element. Separate the values by commas for specific indexes.

Comparing Numbers

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

Comparing Numbers

You can compare two numbers, or objects, that will result in a logical output.

Comparing Numbers Operators

Operator Description
> Greater Than
< Less Than
>= Greater than or equal
<= Less than or equal
== Equals
!= Not Equals

Comparing Vectors

When you compare a number to a vector, it will result as a logical vector.

Example

Try the following code and explain what is happening:

if/else Statements

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

if/else Statements

if/else statements are used to conduct specific tasks depending on the conditions

if Statement

An if statement is used to if you want R to perform a specific function if a certain condition is met. An if statement will only run a task if a logical is returned. You will need type if, followed by the condition (as a logical) in parentheses, then the task.

Example

else statement

An else statement will conduct a different task if the if statement does not conduct the tasks.

Example

Chain if/else statement

If you have more than two options, you can chain if/else statements by adding an if statement immediately after the word else.

Example

for Loops

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

for Loops

for loops are used to conduct an iterative task with slight changes to the input. The general format goes as follows:

for (index in vector){
  Conduct task
}

You will repeat the for loop untie all the elements in the vector have been used.

Example

Compute the mean:

\[ \bar x = \frac{1}{n}\sum^n_{i=1}x_i \]

x <- rnorm(100)
mean(x)
#> [1] 0.1260148

Example

Example

Compute the variance:

\[ s^2 = \frac{1}{n-1}\sum^n_{i-1}(x_i-\bar x)^2 \]

x <- rnorm(100)
var(x)
#> [1] 1.006068

Example

next Statements

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

next Statements

The next statement is used to skip an iteration of a loop. This is used along an if statement.

for (i in vector){
  perform task
  if (condition){
    next
  } else {
    perform task
  }
}

break Statements

  • Syllabus

  • Introduction to R

  • R Basics

  • Indexing

  • Comparing Numbers

  • if/else Statements

  • for Loops

  • next Statements

  • break Statements

break Statements

The break statement is used to stop a loop if the condition is met. This is used along with an if statement.

for (i in vector){
  perform task
  if (condition){
    break
  } else {
    perform task
  }
}