Difference between revisions of "Worksheets/Week3"
Kevin Dunn (talk | contribs) (→Part 3) |
Kevin Dunn (talk | contribs) (→Part 4) |
||
Line 123: | Line 123: | ||
</code> | </code> | ||
</div></html> | </div></html> | ||
=== Part 5 === | |||
Your group is developing a new product, but have been struggling to get the product’s stability, measured in days, to the level required. You are aiming for a stability value of 50 days or more. | |||
<html><div data-datacamp-exercise data-lang="r" data-height="500px"> | |||
<code data-type="sample-code"> | |||
# Define the 3 factors. This code is a template that you | |||
# can easily extend and reuse for full factorial designs: | |||
base <- c(-1, +1) | |||
design <- expand.grid(A=base, B=base, C=base) | |||
A <- design$A | |||
B <- design$B | |||
C <- design$C | |||
# Type "A", and "B" and "C" at the command prompt | |||
# to verify what these letters contain. Are they in | |||
# standard order? | |||
# The response: stability, in number of days. | |||
y <- c(40, 27, 35, 21, 41, 27, 31, 20) | |||
# Linear model to predict stability from | |||
# A: enzyme strength: -1 == 20%; +1 == 30% | |||
# B: feed concentration: -1 == 5%; +1 == 15% | |||
# C: mixer type: -1 = R mixer; +1 = W mixer | |||
mod.stability <- lm(y ~ A*B*C) | |||
summary(mod.stability) | |||
# Uncomment this line if you run the code in RStudio | |||
#library(pid) | |||
# Comment this line if you run this code in RStudio | |||
source('https://yint.org/paretoPlot.R') | |||
source('https://yint.org/contourPlot.R') | |||
paretoPlot(mod.stability) | |||
contourPlot(mod.stability, 'A', 'B') | |||
contourPlot(mod.stability, 'A', 'C') | |||
</code> | |||
</div></html> | |||
base <- c(-1, +1) | |||
design <- expand.grid(A=base, B=base, C=base) | |||
A <- design$A | |||
B <- design$B | |||
C <- design$C | |||
y <- c(40, 27, 35, 21, 41, 27, 31, 20) | |||
mod.stability <- lm(y ~ A*B*C) | |||
summary(mod.stability) | |||
paretoPlot(mod.stability) | |||
contourPlot(mod.stability, 'A', 'B') | |||
contourPlot(mod.stability, 'A', 'C') |
Revision as of 16:38, 10 March 2019
Part 1
A factorial experiment was run to investigate the settings that minimize the production of an unwanted side product. The two factors being investigated are called A and B for simplicity.
# A = additive at 20mL and 30mL for low and high levels
A <- c(-1, +1, -1, +1)
# B = without (-) or with (+) boiling
B <- c(-1, -1, +1, +1)
# Response y is the amount of side product formed, y [grams]
y <- c(89, 268, 179, 448)
# Fit a linear model
mod.siderxn <- lm(y ~ A + B + A*B)
summary(mod.siderxn)
# Uncomment this line if you run the code in RStudio
#library(pid)
# Comment this line if you run this code in RStudio
source('https://yint.org/contourPlot.R')
# See how the two factors affect the response:
contourPlot(mod.siderxn)
interaction.plot(A, B, y)
interaction.plot(B, A, y)
Part 2
Continuing from above, with 2 extra experimental points:
# A = additive at 20mL and 30mL for low and high levels
A <- c(-1, +1, -1, +1, 0, 0)
# B = without (-) or with (+) boiling
B <- c(-1, -1, +1, +1, -1, +1)
# Response y is the amount of side product formed, y [grams]
y <- c(89, 268, 179, 448, 186, 290)
mod.siderxn.cp <- lm(y ~ A + B + A*B)
summary(mod.siderxn.cp)
# Uncomment this line if you run the code in RStudio
#library(pid)
# Comment this line if you run this code in RStudio
source('https://yint.org/contourPlot.R')
contourPlot(mod.siderxn.cp)
Part 3
Your family runs a small business selling products online. The first factor of interest is whether to provide free shipping over €30 or over €50. The second factor is whether or not the purchaser must first create a profile before completing the transaction. The purchaser can still complete their transaction without creating a profile. Below are the data collected, showing the 8 experiments.
# S = Free shipping if order amount is €30 or more [-1],
# of if order amount is over €50 [+1]
S <- c(-1, +1, -1, +1, -1, +1, -1, +1)
# Does the purchaser need to create a profile first [+1] or not [-1]?
P <- c(-1, -1, +1, +1, -1, -1, +1, +1)
# Response: daily sales amount
y <- c(348, 359, 327, 243, 356, 363, 296, 257)
# Linear model using S, P and S*P to predict the response
mod.sales <- lm(y ~ S*P)
summary(mod.sales)
# Uncomment this line if you run the code in RStudio
#library(pid)
# Comment this line if you run this code in RStudio
source('https://yint.org/contourPlot.R')
contourPlot(mod.sales)
interaction.plot(S, P, y)
interaction.plot(P, S, y)
Part 4
Continuing with the case above:
# S = Free shipping if order amount is €30 or more [-1],
# of if order amount is over €50 [+1]
S <- c(-1, +1, -1, +1, -1, +1, -1, +2)
# Does the purchaser need to create a profile first [+1] or not [-1]?
P <- c(-1, -1, +1, +1, -1, -1, +1, +1)
# Response: daily sales amount
y <- c(348, 359, 327, 243, 356, 363, 296, 220)
# Linear model using S, P and S*P to predict the response
mod.sales.mistake <- lm(y ~ S*P)
summary(mod.sales.mistake)
# Uncomment this line if you run the code in RStudio
#library(pid)
# Comment this line if you run this code in RStudio
source('https://yint.org/contourPlot.R')
contourPlot(mod.sales.mistake)
Part 5
Your group is developing a new product, but have been struggling to get the product’s stability, measured in days, to the level required. You are aiming for a stability value of 50 days or more.
# Define the 3 factors. This code is a template that you
# can easily extend and reuse for full factorial designs:
base <- c(-1, +1)
design <- expand.grid(A=base, B=base, C=base)
A <- design$A
B <- design$B
C <- design$C
# Type "A", and "B" and "C" at the command prompt
# to verify what these letters contain. Are they in
# standard order?
# The response: stability, in number of days.
y <- c(40, 27, 35, 21, 41, 27, 31, 20)
# Linear model to predict stability from
# A: enzyme strength: -1 == 20%; +1 == 30%
# B: feed concentration: -1 == 5%; +1 == 15%
# C: mixer type: -1 = R mixer; +1 = W mixer
mod.stability <- lm(y ~ A*B*C)
summary(mod.stability)
# Uncomment this line if you run the code in RStudio
#library(pid)
# Comment this line if you run this code in RStudio
source('https://yint.org/paretoPlot.R')
source('https://yint.org/contourPlot.R')
paretoPlot(mod.stability)
contourPlot(mod.stability, 'A', 'B')
contourPlot(mod.stability, 'A', 'C')
base <- c(-1, +1) design <- expand.grid(A=base, B=base, C=base) A <- design$A B <- design$B C <- design$C y <- c(40, 27, 35, 21, 41, 27, 31, 20) mod.stability <- lm(y ~ A*B*C) summary(mod.stability) paretoPlot(mod.stability) contourPlot(mod.stability, 'A', 'B') contourPlot(mod.stability, 'A', 'C')