aboutsummaryrefslogtreecommitdiff
path: root/tests/testthat/test_inverse.predict.R
blob: 61484dcb5461edb2e3061c9039fa6dc69ba9b17f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
context("Inverse predictions")

library(chemCal)

test_that("Inverse predictions for unweighted regressions are stable", {
  m1 <- lm(y ~ x, data = massart97ex1)

  # Known values from chemcal Version 0.1-37
  p1.1 <- inverse.predict(m1, 15)
  expect_equal(signif(p1.1$Prediction, 7), 6.09381)
  expect_equal(signif(p1.1$`Standard Error`, 7), 1.767278)
  expect_equal(signif(p1.1$Confidence, 7), 4.906751)

  p1.2 <- inverse.predict(m1, 90)
  expect_equal(signif(p1.2$Prediction, 7), 43.93983)
  expect_equal(signif(p1.2$`Standard Error`, 7), 1.767747)
  expect_equal(signif(p1.2$Confidence, 7), 4.908053)

  p1.3 <- inverse.predict(m1, rep(90, 5))
  expect_equal(signif(p1.3$Prediction, 7), 43.93983)
  expect_equal(signif(p1.3$`Standard Error`, 7), 1.141204)
  expect_equal(signif(p1.3$Confidence, 7), 3.168489)
})

test_that("Inverse predictions for weighted regressions are stable", {
  attach(massart97ex3)
  yx <- split(y, x)
  ybar <- sapply(yx, mean)
  s <- round(sapply(yx, sd), digits = 2)
  w <- round(1 / (s^2), digits = 3)
  weights <- w[factor(x)]
  m3 <- lm(y ~ x, w = weights)

  p3.1 <- inverse.predict(m3, 15, ws = 1.67)
  expect_equal(signif(p3.1$Prediction, 7), 5.865367)
  expect_equal(signif(p3.1$`Standard Error`, 7), 0.8926109)
  expect_equal(signif(p3.1$Confidence, 7), 2.478285)

  p3.2 <- inverse.predict(m3, 90, ws = 0.145)
  expect_equal(signif(p3.2$Prediction, 7), 44.06025)
  expect_equal(signif(p3.2$`Standard Error`, 7), 2.829162)
  expect_equal(signif(p3.2$Confidence, 7), 7.855012)
})

Contact - Imprint