lab05
This commit is contained in:
1 file changed
+67
@@ -0,0 +1,67 @@
|
||||
# Q1 Write a function, hasAntibodies(n) that simulates checking n people and
|
||||
# returns the number with antibodies. Assume people being checked are
|
||||
# independent and that person has a 5% chance of having antibodies.
|
||||
hasAntibodies = function(n)
|
||||
{
|
||||
hasAntibody <- sample(c(0, 1), n, replace=TRUE, prob=c(0.5, 0.5))
|
||||
sumHasAntibody <- sum(hasAntibody == 1)
|
||||
|
||||
return(sumHasAntibody)
|
||||
}
|
||||
|
||||
# Q2 Write a function called truePositives(n) that simulates testing n people
|
||||
# who have COVID-19 antibodies, and returns the number that test positive. Run
|
||||
# your function for n=100000 and give your output.
|
||||
truePositives = function(n)
|
||||
{
|
||||
isPositive <- sample(c(0, 1), n, replace=TRUE, prob=c(0.1, 0.9))
|
||||
sumIsPositive <- sum(isPositive == 1)
|
||||
|
||||
return(sumIsPositive)
|
||||
}
|
||||
|
||||
# Q4 Write a function called falsePositives(n) that simulates testing n
|
||||
# people who do not have COVID-19 antibodies, and returns the number who test
|
||||
# positive
|
||||
falsePositives = function(n)
|
||||
{
|
||||
isNegative <- sample(c(0, 1), n, replace=TRUE, prob=c(0.08, 0.92))
|
||||
sumFalsePositive <- sum(isNegative == 0)
|
||||
|
||||
return(sumFalsePositive)
|
||||
}
|
||||
|
||||
# Q7 Write a function called probNegativeGivenTestsNegative(n) that
|
||||
# simulates testing n samples and returns the following proportion:
|
||||
# num people without covid-19 antibodies who test negative /
|
||||
# total number of people who test negative
|
||||
probNegativeGivenTestsNegative = function(n)
|
||||
{
|
||||
numWith <- hasAntibodies(n)
|
||||
numWithout <- n - numWith
|
||||
|
||||
trueNumWith <- truePositives(numWith)
|
||||
falseNeg <- numWith - trueNumWith
|
||||
|
||||
falsePos <- falsePositives(numWithout)
|
||||
trueNeg <- numWithout - falsePos
|
||||
|
||||
return(trueNeg / (trueNeg + falseNeg))
|
||||
}
|
||||
|
||||
# Q8 write a function called probPositiveGivenTestsPositive(n) to get an
|
||||
# answer to the following question: suppose our test is positive – that is,
|
||||
# our test tells us that the person has COVID-19 antibodies. What is the
|
||||
# probability that our test is correct – that is, the person actually has
|
||||
# COVID-19 antibodies?
|
||||
probPositiveGivenTestsPositive = function(n)
|
||||
{
|
||||
numWith <- hasAntibodies(n)
|
||||
numWithout <- n - numWith
|
||||
|
||||
truePos <- truePositives(numWith)
|
||||
falsePos <- falsePositives(numWithout)
|
||||
|
||||
return(truePos / (truePos + falsePos))
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user