diff --git a/NEWS b/NEWS index 381dcb8..6f7ffd6 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ qicharts2 0.4.0.9000 * P charts default to percentage on Y axis (thanks to Paul Wildehain). * Add qic.linecol, qic.signalcol, and qic.targetcol to options to allow for custom colours. * Add qic.clshade to options to allow for choosing between lines and shaded area for control limits. +* Fix typos in vignette (thanks to Rmadillo). qicharts2 0.4.0 =============== diff --git a/docs/LICENSE.html b/docs/LICENSE.html index 4051e72..b33218c 100644 --- a/docs/LICENSE.html +++ b/docs/LICENSE.html @@ -731,8 +731,8 @@

License

state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -752,7 +752,7 @@

License

If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: - {project} Copyright (C) {year} {fullname} + <program> Copyright (C) <year> <name of author> This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. diff --git a/docs/articles/index.html b/docs/articles/index.html index 42de5c1..77db92c 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -93,7 +93,7 @@
diff --git a/docs/articles/qicharts2.html b/docs/articles/qicharts2.html index 4192ed7..eb3bfd1 100644 --- a/docs/articles/qicharts2.html +++ b/docs/articles/qicharts2.html @@ -73,7 +73,7 @@

Quality Improvement Charts

An implementation of statistical process control charts for R

Jacob Anhøj

-

2018-03-03

+

2018-05-05

@@ -126,7 +126,7 @@

Walther A. Shewhart, who founded SPC, described two types of variation, chance cause variation and assignable cause variation. Today, the terms common cause and special cause variation are commonly used.

Common cause variation

-

A process will be said to be predictabe when, through the use of past experience, we can describe, at least within limits, how the process will behave in the future.

+

A process will be said to be predictable when, through the use of past experience, we can describe, at least within limits, how the process will behave in the future.

Donald J. Wheeler. Understanding Variation, 2. ed., p 153

The overall purpose of SPC charts is to tell the two types of variation apart.

@@ -164,36 +164,36 @@

qic(y, chart = 'i')

Therefore, many additional tests have been proposed to increase the sensitivity to non-random variation.

-

It is important to realise that while it may be tempting to apply more tests in order to increase the sensitivity of the chart, more test will increase the risk of false signals thereby reducing the specificity of the chart. The choice of which and how many tests to apply is therefore critical.

+

It is important to realise that while it may be tempting to apply more tests in order to increase the sensitivity of the chart, more test will increase the risk of false signals, thereby reducing the specificity of the chart. The choice of which and how many tests to apply is therefore critical.

The Western Electric rules

-

The Best known tests for non-random variation are probably the Western Electric Rules described in the Statistical Quality Control Handbook (Western Electric Company 1956). The WE rules consist of four simple tests that can be applied to control charts by visual inspection and are based on the identification of unusual patterns in the distribution of data points relative to the control and centre lines.

+

The best known tests for non-random variation are probably the Western Electric Rules described in the Statistical Quality Control Handbook (Western Electric Company 1956). The WE rules consist of four simple tests that can be applied to control charts by visual inspection and are based on the identification of unusual patterns in the distribution of data points relative to the control and centre lines.

  1. One or more points outside of the 3-sigma limits (Shewhart’s original 3-sigma rule).

  2. Two out of three successive points beyond a 2-sigma limit (two thirds of the distance between the centre line and the control line).

  3. Four out of five successive points beyond a 1-sigma limit.

  4. A run of eight successive points on one side of the centre line.

-

The WE rules have proven their worth during half a century. One thing to notice is that the WE rules are most effective with control charts that have between 20 and 30 data points. With fewer data points, they loose sensitivity (more false negatives), and with more data points they loose specificity (more false positives).

+

The WE rules have proven their worth during half a century. One thing to notice is that the WE rules are most effective with control charts that have between 20 and 30 data points. With fewer data points, they lose sensitivity (more false negatives), and with more data points they lose specificity (more false positives).

-
+

-The Anhoej rules

-

The least known tests for non-random variation are probably the Anhoej rules proposed and validated by me in two recent publications (Anhøj 2014, Anhøj 2015). The Anhoej rules are the core of qicharts2 and consist of two tests that are based solely on the distribution of data points in relation to the centre line:

+The Anhøj rules

+

The least known tests for non-random variation are probably the Anhøj rules, proposed and validated by me in two recent publications (Anhøj 2014, Anhøj 2015). The Anhøj rules are the core of qicharts2, and consist of two tests that are based solely on the distribution of data points in relation to the centre line:

Critical values for longest runs and number of crossings for 10 – 100 data points are tabulated in Appendix 2.

Apart from being comparable in sensitivity and specificity to WE rules 2-4 with 20-30 data points, the Anhøj rules have some advantages:

-

In the previous control chart, a shift of 2 standard deviations was introduced halfway through the process. While the shift is too small to be picked up by the 3-sigma rule, both Anhoej rules detect the signal. The longest run include 13 data points (upper limit = 8), and the number of crossings is 4 (lower limit = 8). Note that the shift is also picked up by WE rule 4.

-

Non-random variation found by the Anhoej rules is visualised by qic() using a red and dashed centre line.

+

In the previous control chart, a shift of 2 standard deviations was introduced halfway through the process. While the shift is too small to be picked up by the 3-sigma rule, both Anhøj rules detect the signal. The longest run includes 13 data points (upper limit = 8), and the number of crossings is 4 (lower limit = 8). Note that the shift is also picked up by WE rule 4.

+

Non-random variation found by the Anhøj rules is visualised by qic() using a red and dashed centre line.

The parameters of the analysis are available using the summary() function on a qic object. See ?summary.qic for details.

# Save qic object to o
 o <- qic(y, chart = 'i')
@@ -206,14 +206,14 @@ 

#> 1 4 8 1 -2.114884 1.057091 4.229067 #> sigma.signal #> 1 0

-

In summary, many additional test for special cause variation have been proposed since Shewhart invented the 3-sigma rule, and many tests are currently being used. The more tests that are applied to the analysis the higher the risk of false signals. qicharts2 takes a conservative approach by applying only three tests, the 3-sigma rule and the two Anhoej rules. That means that a signal from qic() most likely represents a significant change in the underlying process.

+

Many additional tests for special cause variation have been proposed since Shewhart invented the 3-sigma rule, and many tests are currently being used. However, the more tests that are applied to the analysis, the higher the risk of false signals. qicharts2 takes a conservative approach by applying only three tests, the 3-sigma rule and the two Anhøj rules. That means that a signal from qic() most likely represents a significant change in the underlying process.

Choosing the right control chart

By default, qic() produces run charts. To make a control chart, the chart argument must be specified.

-

While there is only one type of run charts, there are many types of control charts. Each type use an assumed probability model to compute the 3-sigma limits.

+

While there is only one type of run chart, there are many types of control charts. Each type uses an assumed probability model to compute the 3-sigma limits.

qic() includes eleven control charts.

@@ -287,7 +287,7 @@

-

I recommend to always begin any analysis with the “assumption free” run chart. If the Anhøj rules find non-random variation, it makes no sense to compute 3-sigma limits based on assumptions regarding the location and dispersion of data because these figures are meaningless when one or more shifts have already been identified.

+

I recommend to always begin any analysis with the “assumption free” run chart. If the Anhøj rules find non-random variation, it makes no sense to compute 3-sigma limits based on assumptions regarding the location and dispersion of data, because these figures are meaningless when one or more shifts have already been identified.

Over the years, I have developed an increasing affection for the much-neglected run chart: a time plot of your process data with the median drawn in as a reference (yes, the median – not the average). It is “filter No. 1” for any process data and answers the question: “Did this process have at least one shift during this time period?” (This is generally signaled by a clump of eight consecutive data points either all above or below the median.)

If it did, then it makes no sense to do a control chart at this time because the overall average of all these data doesn’t exist. (Sort of like: If I put my right foot in a bucket of boiling water and my left foot in a bucket of ice water, on average, I’m pretty comfortable.)

@@ -297,7 +297,7 @@

Case 1: Patient harm

-

The gtt dataset contains data on patient harm during hospitalisation. Harm is defined as any unintended physical injury resulting from treatment or care during hospitalisation and not a result of the disease itself. The Global Trigger Tool is a methodology for detection of adverse events in hospital patients using a retrospective record review approach. Each month a random sample of 20 patient records is reviewed and the number of adverse events and patient days found in the sample are counted. See ?gtt for details.

+

The gtt dataset contains data on patient harm during hospitalisation. Harm is defined as any unintended physical injury resulting from treatment or care during hospitalisation and not a result of the disease itself. The Global Trigger Tool is a methodology for detection of adverse events in hospital patients using a retrospective record review approach. Each month a random sample of 20 patient records is reviewed and the number of adverse events and patient days found in the sample are counted. See ?gtt for details.

head(gtt)
 #>   admission_id admission_dte discharge_dte      month days harms
 #> 1            1    2010-01-02    2010-01-03 2010-01-01    2     0
@@ -356,12 +356,12 @@ 

#> # A tibble: 6 x 5 #> month harms days n.harmed n #> <date> <dbl> <dbl> <int> <int> -#> 1 2010-01-01 5. 113. 3 20 -#> 2 2010-02-01 7. 132. 6 20 -#> 3 2010-03-01 5. 121. 4 20 -#> 4 2010-04-01 7. 134. 5 20 -#> 5 2010-05-01 7. 116. 7 20 -#> 6 2010-06-01 5. 131. 5 20

+#> 1 2010-01-01 5 113 3 20 +#> 2 2010-02-01 7 132 6 20 +#> 3 2010-03-01 5 121 4 20 +#> 4 2010-04-01 7 134 5 20 +#> 5 2010-05-01 7 116 7 20 +#> 6 2010-06-01 5 131 5 20
qic(month, n.harmed,
     n         = n,
     data      = gtt_by_month,
@@ -379,8 +379,8 @@ 

ylab = NULL, xlab = 'Month')

-

Since both the harm rate and the proportion of harmed patients exhibit common cause variation only, we conclude that the risk of adverse events during hospitalisation is predictable and that we in the future should expect around 60 adverse events per 1000 patient days harming around 33% of patients.

-

Actually, we often do not need to aggregate data in advance. With a little creativity we can make qic do the hard work. The previous plot could have been produced with this code. Note the use of the original gtt dataset and the number of harmed and total number of patients created on the fly.

+

Since both the harm rate and the proportion of harmed patients exhibit common cause variation only, we conclude that the risk of adverse events during hospitalisation is predictable: we in the future should expect around 60 adverse events per 1000 patient days, harming around 33% of patients (regardless of their length of stay), although harm rates anywhere between ~0 – 60% would be considered within common cause variation.

+

Actually, we often do not need to aggregate data in advance. With a little creativity we can make qic do the hard work. The previous plot could have been produced with this code. Note the use of the original gtt dataset and the number of harmed and total number of patients created on the fly.

qic(month, 
     harms > 0,        # TRUE if patient had one or more harms
     days > 0,         # Always TRUE 
@@ -395,7 +395,7 @@ 

Pareto analysis of adverse event types and severity

The Pareto chart, named after Vilfred Pareto, was invented by Joseph M. Juran as a tool to identify the most important causes of a problem.

-

Types and severity of adverse events in gtt are organised in an untidy wide format. Since paretochart() needs a vector of categorical data we need to rearrange harm severity and harm category into separate columns.

+

Types and severity of adverse events in gtt are organised in an untidy wide format. Since paretochart() needs a vector of categorical data, we need to rearrange harm severity and harm category into separate columns.

suppressPackageStartupMessages(library(tidyr))
 
 gtt_ae_types <- gtt %>%
@@ -429,8 +429,8 @@ 

-Case 2: Clostridium difficile infections

-

The cdi dataset contains data on hospital acquired Clostridium difficile infections (CDI) before and after an intervention to reduce the risk of CDI. See ?cdi for details.

+Case 2: Clostridium difficile infections

+

The cdi dataset contains data on hospital acquired Clostridium difficile infections (CDI) before and after an intervention to reduce the risk of CDI. See ?cdi for details.

head(cdi)
 #>        month  n     days period notes
 #> 1 2012-11-01 17 14768.42    pre  <NA>
@@ -490,7 +490,7 @@ 

U chart for infection rate

-

Until now we have assumed that the area of opportunity is constant, i.e. the number of patients or patient days have not changed significantly over time. When the area of opportunity varies, a U chart (U for unequal area of opportunity) is appropriate.

+

Until now we have assumed that the area of opportunity, or exposure, is constant, i.e., the number of patients or patient days have not changed significantly over time. When the area of opportunity varies, a U chart (U for unequal area of opportunity) is more appropriate.

qic(month, n, days,
     data     = cdi,
     chart    = 'u',
@@ -514,14 +514,14 @@ 

  • Is the new process behaviour desirable?

  • Is it intended and expected that the new behaviour will continue?

  • -

    If the answer to any of these question is “no” you should rather seek to find the assignable cause of the shift and, if need be, eliminate it.

    +

    If the answer to any of these question is “no”, you should rather seek to find the assignable cause of the shift and, if need be, eliminate it.

    Thus, when a deliberate change has been made to the process and the chart finds a shift attributable to this change, it may be time to recompute the limits.

    Case 3: Coronary artery bypass graft

    -

    The cabg dataset contains data on individual coronary artery bypass operations. See ?cabg for details.

    +

    The cabg dataset contains data on individual coronary artery bypass operations. See ?cabg for details.

    head(cabg)
     #>         date    age gender los death readmission
     #> 1 2011-07-01 72.534   Male   8 FALSE        TRUE
    @@ -587,7 +587,7 @@ 

    ylab = 'Years', xlab = 'Month')

    -

    Since both the Xbar and the S chart displays common cause variation, we may conclude that the monthly average and standard deviation of patient age is predictable. Note that the mean of the Xbar chart is close to the mean of the individuals chart but that the 3-sigma limits are narrower.

    +

    Since both the Xbar and the S chart display common cause variation, we may conclude that the monthly average and standard deviation of patient age is predictable. Note that the mean of the Xbar chart is close to the mean of the individuals chart but that the 3-sigma limits are narrower.

    @@ -609,7 +609,7 @@

    #> 4 2011-10-01 1 8 60 #> 5 2011-11-01 1 16 67 #> 6 2011-12-01 3 11 69

    -

    Then we use P charts for proportion defectives.

    +

    Then we use P charts for proportion of readmissions.

    qic(month, readmissions, n,
         data      = cabg_by_month,
         chart     = 'p',
    @@ -633,7 +633,7 @@ 

    T and G charts for rare events

    -

    Rare events are often better analysed as time or opportunities between events. First we need to calculate the number of surgeries and days between fatalities.

    +

    Rare events are often better analysed as time or opportunities between events. First, we need to calculate the number of surgeries and days between fatalities.

    fatalities <- cabg %>% 
       mutate(x = row_number()) %>% 
       filter(death) %>% 
    @@ -702,7 +702,7 @@ 

    Case 4: Faceting hospital infections by hospital and infection

    -

    The hospital_infection dataset contains data on hospital acquired bacteremias (BAC), Clostridium difficile infections (CDI), and urinary tract infections (UTI) from six hospitals in the Capital Region of Denmark. See ?hospital_infections for details.

    +

    The hospital_infection dataset contains data on hospital acquired bacteremias (BAC), Clostridium difficile infections (CDI), and urinary tract infections (UTI) from six hospitals in the Capital Region of Denmark. See ?hospital_infections for details.

    head(hospital_infections)
     #>   hospital infection      month  n     days
     #> 1      AHH       BAC 2015-01-01 17 17233.67
    @@ -736,7 +736,7 @@ 

    ylab = 'Cases per 10,000 risk days', xlab = 'Month')

    -

    Now each infection has its own facet We see that all three infections appear to be predictable and that UTI is the most common infection.

    +

    Now each infection has its own facet. We see that all three infections appear to be predictable and that UTI is the most common infection.

    But since these data come from six very different hospitals, we should also facet by hospital.

    @@ -759,7 +759,7 @@

    Funnels plot of infection rates by hospital

    -

    Processes containing only common cause variation over time may be aggregated and compared across other units than time. When data have no natural time order, i.e. when the x variable is categorical the data points are not connected by lines and runs analysis is not performed. To produce a so called funnel plot of infections by hospital, we filter data from a recent stable period and reorder the x variable by size.

    +

    Processes containing only common cause variation over time may be aggregated and compared across other units than time. When data have no natural time order, i.e., when the x variable is categorical, the data points are not connected by lines and runs analysis is not performed. To produce a funnel plot of infections by hospital, we filter data from a recent stable period and reorder the x variable by size.

    hai_2016 <- hospital_infections %>% 
       filter(month    >= '2016-07-01') %>% 
       mutate(hospital = reorder(hospital, days))
    @@ -777,15 +777,15 @@ 

    ylab = 'Cases per 10,000 risk days', xlab = 'Hospital')

    -

    One hospital, NOH, have unusually few bacteremias and urinary tract infections compared to the other hospitals. Another hospital, BFH, have unusually many Clostridium difficile infections. The other hospitals are indistinguishable from each other with respect to the hospital infection rates.

    -

    What can we learn from NOH and BFH? It is important to stress that data presented in funnel plots should be used for learning rather than for judgement. While it may be interesting for some in need of a “case” to point fingers at the good, the bad and the ugly, the full power of SPC will only be released when data are used for learning and improvement.

    +

    One hospital, NOH, has unusually few bacteremias and urinary tract infections compared to the other hospitals. Another hospital, BFH, has unusually many Clostridium difficile infections. The other hospitals are indistinguishable from each other with respect to the hospital infection rates.

    +

    What can we learn from NOH and BFH? It is important to stress that data presented in funnel plots should be used for learning rather than for judgement. While it may be interesting for some in need of a “case” to point fingers at the good, the bad, and the ugly, the full power of SPC will only be released when data are used for learning and improvement.

    Case 5: Prime charts for count data with very large sample sizes

    P and U charts with very large sample sizes sometimes produce narrow 3-sigma limits with most of the data points outside the limits even when the process is stable.

    -

    The NHS accidents dataset contains the number of emergency patients seen within 4 hours of attendance. The sample sizes are very large (> 250,000). See ?nhs_accidents for details.

    +

    The nhs_accidents dataset contains the number of emergency patients seen within 4 hours of attendance. The sample sizes are very large (> 250,000). See ?nhs_accidents for details.

    head(nhs_accidents)
     #>   i      r      n
     #> 1 1 266501 280443
    @@ -804,8 +804,8 @@ 

    ylab = NULL, xlab = 'Week #')

    -

    This is called over-dispersion and happens sometimes because data in practice rarely come from truly binomial or poisson distributions. When the sample sizes are small, this is not a problem. But as sample sizes increase (> 1000) it becomes apparent that the assumptions of constant proportions or rates between subgroups are not true.

    -

    A simple test for over-dispersion is to apply an I chart. If the I chart gives 3-sigma limits that are very different from the U or P chart it is a signal that the underlying probability model of the U or P chart may not be correct.

    +

    This is called over-dispersion, and happens sometimes because data in practice rarely come from truly binomial or poisson distributions. When the sample sizes are small, this is not a problem. But as sample sizes increase (> 1000) it becomes apparent that the assumptions of constant proportions or rates between subgroups are not true.

    +

    A simple test for over-dispersion is to apply an I chart. If the I chart gives 3-sigma limits that are very different from the U or P chart, it is a signal that the underlying probability model of the U or P chart may not be correct.

    qic(i, r, 
         n        = n, 
         data     = nhs_accidents, 
    @@ -816,7 +816,7 @@ 

    xlab = 'Week #')

    In fact, since the I chart estimates 3-sigma limits based on the observed within subgroup variation in data rather than an assumed probability model, it is sort of like the Swiss army knife of SPC. Therefore, the I chart may be used when the true probability model of data is unknown.

    -

    However, the I charts does not account for varying sample sizes and may give false signals when sample sizes vary significantly. Laney proposed an elegant solution that incorporates both the within and the between subgroup variation in the calculation of 3-sigma limits. This is what P’ (P prime) and U’ (U prime) charts are for. See Laney 2002 for details.

    +

    However, the I chart does not account for varying sample sizes and may give false signals when sample sizes vary significantly. Laney proposed an elegant solution that incorporates both within and between subgroup variation in the calculation of 3-sigma limits. This is what P’ (P prime) and U’ (U prime) charts are for. See Laney 2002 for details.

    qic(i, r, 
         n        = n, 
         data     = nhs_accidents, 
    @@ -826,16 +826,16 @@ 

    ylab = NULL, xlab = 'Week #')

    -

    Laney notes that when over-dispersion is not present, prime charts will give the same results as traditional charts and recommends always to use prime charts for proportions and rates.

    -

    Comparing P and P’ charts on readmission rates from the cabg dataset we find that while the 3-sigma limits in the P’ chart are a little wider, the two charts reach similar conclusions.

    +

    Laney notes that when over-dispersion is not present, prime charts will give the same results as traditional charts, and recommends always to use prime charts for proportions and rates.

    +

    Comparing P and P’ charts on readmission rates from the cabg dataset we find that while the 3-sigma limits in the P’ chart are a little wider, the two charts reach similar conclusions.

    Conclusion

    qic() from qicharts2 provides a simple interface for constructing statistical process control charts for time series data.

    -

    The default chart is a run chart, which tests for non-random variation in data over time using the Anhoej rules for unusually long runs and unusually few crossings. The Anhoej rules are most useful for detection of moderate, persistent shifts. To detect larger, possibly transient, shifts, control charts are useful. qic() employs 11 types of control charts for different types of data.

    -

    Since runs analysis based on the Anhoej rules makes no assumptions about the distribution of data, a run chart is the recommended starting point of any analysis of time series data. If the run chart finds random variation only, a control chart may then be used to identify transient shifts in data or to establish the natural process limits to be expected in the future.

    +

    The default chart is a run chart, which tests for non-random variation in data over time using the Anhøj rules for unusually long runs and unusually few crossings. The Anhøj rules are most useful for detection of moderate, persistent shifts. To detect larger, possibly transient, shifts, control charts are useful. qic() employs 11 types of control charts for different types of data.

    +

    Since runs analysis based on the Anhøj rules makes no assumptions about the distribution of data, a run chart is the recommended starting point of any analysis of time series data. If the run chart finds random variation only, a control chart may then be used to identify transient shifts in data or to establish the natural process limits to be expected in the future.

    @@ -872,8 +872,8 @@

  • I charts use the correction suggested by Nelson by excluding moving ranges above the upper range limit from calculations of the 3-sigma limits (Nelson 1982).

  • Runs analysis are not performed on MR charts since individual data points are correlated.

  • 3-sigma limits for the T chart for time between rare events are calculated by applying an I chart to transformed data (\(y=y^{1/3.6}\)) and back transforming the 3-sigma limits (\(cl=cl^{3.6}\)).

  • -
  • In prime charts the calculated standard deviation is multiplied by Laney’s correction factor, which is the average moving range of standardised y values divided by the constant 1.128 (Laney 2002).

  • -
  • Since the count data on a G chart are usually highly skewed, the centre line of the G chart is the median rather than the mean. This way the application of the Anhoej rules is still valid.

  • +
  • In prime charts, the calculated standard deviation is multiplied by Laney’s correction factor, which is the average moving range of standardised y values divided by the constant 1.128 (Laney 2002).

  • +
  • Since the count data on a G chart are usually highly skewed, the centre line of the G chart is the median rather than the mean. This way the application of the Anhøj rules is still valid.

  • @@ -1366,7 +1366,7 @@

  • Testing for special cause variation
  • Choosing the right control chart
  • Case 1: Patient harm
  • -
  • Case 2: Clostridium difficile infections
  • +
  • Case 2: Clostridium difficile infections
  • Case 3: Coronary artery bypass graft
  • Case 4: Faceting hospital infections by hospital and infection
  • Case 5: Prime charts for count data with very large sample sizes
  • diff --git a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-33-1.svg b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-33-1.svg index b83fd8d..cb8e7f0 100644 --- a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-33-1.svg +++ b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-33-1.svg @@ -152,14 +152,14 @@ - + - + - + - + @@ -178,19 +178,19 @@ - - + + - + - + - + - + @@ -213,10 +213,10 @@ - - - - + + + + @@ -231,15 +231,15 @@ - - - - + + + + - + - + diff --git a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-34-1.svg b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-34-1.svg index edf69d0..8bbb969 100644 --- a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-34-1.svg +++ b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-34-1.svg @@ -158,55 +158,55 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - + + + + @@ -217,19 +217,19 @@ - + - - + + - - + + - - - + + + diff --git a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-49-1.svg b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-49-1.svg index 3b16afb..7ca8011 100644 --- a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-49-1.svg +++ b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-49-1.svg @@ -6,48 +6,57 @@ - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + + + + @@ -133,10 +142,19 @@ - + - + + + + + + + + + + @@ -144,173 +162,185 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + - - - - - + + + + + + + + + - - - - - + + + + + + + - - + + + - + - + - - - + + + - - - - + + + + - - - - - - - + + + + + + + - + - - + + - - + + - - + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-51-1.svg b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-51-1.svg index 82a3776..d716b6b 100644 --- a/docs/articles/qicharts2_files/figure-html/unnamed-chunk-51-1.svg +++ b/docs/articles/qicharts2_files/figure-html/unnamed-chunk-51-1.svg @@ -6,49 +6,58 @@ - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - + - + - + @@ -142,6 +151,15 @@ + + + + + + + + + @@ -175,47 +193,56 @@ + - - - - - + + + + + + + + + - - - - - + + + + + + + + + - - - - - + + + + + + + - + + - - + - - - + + - - - + + @@ -225,19 +252,19 @@ - + - - + + - - + + - + diff --git a/docs/index.html b/docs/index.html index eb61b24..c80909c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -128,7 +128,7 @@

    Links

    License

    -

    GPL-3

    +

    file LICENSE

    Developers

    • Jacob Anhoej
      Author, maintainer
    • diff --git a/docs/reference/index.html b/docs/reference/index.html index c620928..96f6517 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -97,7 +97,7 @@