diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 27bd9cec7..b6bb7b0d8 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -129,9 +129,8 @@ After `runAnalysis()`, check: / ├── R/ # Backend R analysis functions ├── inst/ -│ ├── qml/ # QML interface definitions +│ ├── qml/ # QML interface definitions (help via info/infoBottom) │ ├── Descriptions/ # Analysis descriptions (Description.qml) -│ ├── help/ # Markdown help files │ └── Upgrades.qml # Version upgrade mappings ├── examples/ # Example .jasp files for testing ├── tests/testthat/ # Unit tests using jaspTools diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 78c02609e..9ef61a8b7 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -130,9 +130,8 @@ After `runAnalysis()`, check: / ├── R/ # Backend R analysis functions ├── inst/ -│ ├── qml/ # QML interface definitions +│ ├── qml/ # QML interface definitions (help via info/infoBottom) │ ├── Descriptions/ # Analysis descriptions (Description.qml) -│ ├── help/ # Markdown help files │ └── Upgrades.qml # Version upgrade mappings ├── examples/ # Example .jasp files for testing ├── tests/testthat/ # Unit tests using jaspTools diff --git a/inst/help/attributesCharts.md b/inst/help/attributesCharts.md deleted file mode 100644 index 7012ff81a..000000000 --- a/inst/help/attributesCharts.md +++ /dev/null @@ -1,71 +0,0 @@ -Attribute Charts -========================== - -A Shewhart control chart is a graph used to study how a process changes over time. The obtained measurements can be either variables or attributes data, and subgroups are taken from the process at regular intervals. From each subgroup one or more statistical measures (such as average, dispersion, or proportion) are plotted in time order. Each chart always has a central line usually the average of the subgroup statistic or may be based on past experience, if the process is in a state of statistical control. The control chart has two statistically determined boundaries, one on either side of the central line, which are called the upper control limit (UCL) and the lower control limit (LCL). They are typically based on and placed at a distance of three times the standard deviation of the statistic being plotted. By comparing current data to these lines, conclusions can be drawn about whether the process variation is consistent (i.e., in control) or is unpredictable (i.e., out of control, and affected by special causes of variation). Control charts for variables data are always used in pairs. The top chart monitors the averages i.e., the centring of the data from the process. The bottom chart monitors the ranges i.e., the spread of the distribution. Control charts for attributes data consist of a single chart. Attributes data represent observations obtained by noting the presence or absence of some characteristic (attributes) in each of the items in the subgroup under consideration, then counting how many items do or do not possess the attribute, or how many such events occur in the item, group or area. Attributes data are generally rapid and inexpensive to obtain and often do not require specialised collection skills. - -The assumed distribution for attributes data has only one independent parameter, the average level. The p and np control charts are based on the binomial distribution (for defectives), while the u and c control charts are based on the Poisson distribution (for defects).There are many types of count based data that cannot be characterised by either a binomial (p and np) or a Poisson (u and c) distribution. When such data are placed on p, np, u, or c control charts the limits based on these models would be wrong. The Laney p′ (p prime) and u′ (u prime) charts are used to monitor attributes data if the sample sizes are variable and often very large. In such cases, it is common for the average proportion or rate to vary over the sampling period, a phenomenon known as overdispersion. Overdispersion means the sample-to-sample variation (i.e., the between sample variation) is much larger than the variation within the sample. Underdispersion is the opposite. - -Unlike the attributes control charts, the X-mR control chart makes no assumptions about the relationship between the location and the dispersion parameter. It directly measures the location with the average and the dispersion with the moving ranges. Thus, while the p, np, u, and c control charts use “theoretical” limits, the X-mR control chart uses “empirical” limits. X-mR control charts are used if the sample sizes are reasonable constant. Laney control charts are used if sample sizes vary; if the sample size is constant the Laney control chart is exactly the same as the X mR control chart. - - -## Assumptions -------- -The assumptions for attributes control charts are: -- p/np control chart are used if the observed data are approximately binomial distributed; -- u/c control chart are used if the observed data are approximately Poisson distributed; -- np/c control chart: the subgroup size used for data collection is constant; -- p/u control chart: the subgroup size used for data collection is either variable or constant; -- Laney p'/u': the observed data cannot be modelled by either a binomial or a Poisson distribution and the subgroup size is variable. - -## Input -------- -### Assignment Box -- Defectives/Defects: the number of observations collected from a process that do or do not possess the attribute. -- Sample: sample size of each observation. - -## Output -------- -### Charts -Defectives charts: Defectives charts are used for products that are either defective or not defective (binary). - - p chart, which charts the proportion of non-conforming (defective) products, rejects or unacceptable outcomes, or conforming/accepted items in each subgroup. - - np chart, which charts the number of non-conforming (defective) products or only the conforming items in each subgroup. - - Laney p' chart, which charts the variation proportion of non-conforming (defective) products in each subgroup with adjusted control limits. - -Defects charts: Defects charts are used for products that have multiple defects per unit (the possible occurrences could be infinite). - - u chart, which charts the proportion of defects or non-conformities in each subgroup. Subgroup size is variable. - - chart, which charts the number of defects or non-conformities in each subgroup. Subgroup size is constant. - - Laney u' chart, which charts the variation proportion of defects or non-conformities in products in each subgroup with adjusted control limits. - -X-mR chart, which charts the process values (individuals) and moving range (mR) over time. - - -### Out-of-control Signals -------- - To indicate special cause variation the following unnatural patterns are used: - -- Signal 1: One point beyond the control limits (sporadic issue). One point more than three standard deviations from the central line equivalent to violation of UCL or LCL. -- Signal 2: Seven consecutive points above or below the central line (mean shift). Seven points in a row on same side of centre line equivalent to a run above or below centre line. -- Signal 3: A run up or down of seven consecutive points (trend). Seven points in a row all increasing or all decreasing equivalent to a run downward or upward. -- Signal 4: Two out of three consecutive points beyond the warning (two sigma) limits (increasing variation). -- Signal 5:Hugging the central line, this is indicated when 15 consecutive points are within the one sigma limits (reducing variation). -- Signal 6: Eight consecutive points are beyond the one sigma limits, regardless of which side of the central line (bimodal distribution). - -The lack of control in both average and variation charts is generally found in the initial stages of setting up of control charts, sometimes called Phase 1 control charts. Using all six signals is only applicable for the average chart during Phase 1 when the control chart is used as an analysis tool. The first three signals are used always, for variables as well as attributes control charts. - -In the case that the data of the individual and moving Range chart (X-mR chart) violate the pre assumption (normality and independently distributed) only signal 1 is applied. Autocorrelation is an indication of that. - - -## References -------- - -- Duncan, A.J. (1986), *Quality control and industrial statistics*, Richard D. Irwin, Inc. -- Automotive Industry Action Group, *Statistical Process Control – Reference Manual* (July 2005, 2nd Edition) -- International Organization for Standardization, *Control charts – Part 2: Shewhart control charts*, ISO 7870-2:2023 (E) - - -## R Packages -------- -- ggplot2 -- qcc -- jaspGraphs -- ggrepel diff --git a/inst/help/doeAnalysis.md b/inst/help/doeAnalysis.md deleted file mode 100644 index 134a443c5..000000000 --- a/inst/help/doeAnalysis.md +++ /dev/null @@ -1,74 +0,0 @@ -Analyse Design -========================== - -The purpose of analysing both factorial and response surface designs is to identify influential factors and optimal response conditions. This analysis helps uncover which variables significantly impact the outcome and how they interact. It allows researchers to systematically optimize processes and improve product quality. Ultimately, it enables the achievement of better performance and efficiency. - -## Design type -------- -Select the type of experimental design you want to analyse. - -### Factorial design -A factorial design is an experimental setup used to study the effects of multiple factors by varying them simultaneously. Each factor is tested at different levels and in different combinations with other factors. This design allows for the examination of both the main effects of each factor and the interactions between factors. It provides a systematic approach to understanding how different variables influence the outcome. - -### Response surface design -A response surface design is an experimental framework used to optimize and understand the relationships between several explanatory variables and one or more response variables. By systematically varying the input variables, researchers can explore the effects of these variables on the response, identify optimal conditions, and understand the interactions between variables. Response surface designs are particularly useful in situations where the goal is to optimize a process or product, as they provide a detailed map of the response landscape, enabling precise fine-tuning and improvement. - -## Input -------- - -### Assignment box -- Response: The measured outcome variable of the process under investigation. -- Discrete factors: The columns corresponding to the discrete factors in the design. -- Continuous factors: The columns corresponding to the continuous factors in the design. -- Covariates: The columns corresponding to the covariates in the design. The difference between a covariate and a continuous factor is that the covariate will not be analysed for interaction effects and excluded from effect plots. -- Blocks: The columns corresponding to the blocks in the design. The difference between a block variable and a discrete factor is that the blocks will not be analysed for interaction effects and excluded from effect plots. - -## Analysis options -------- - -### Factor levels -For the ordering of contrasts and to identify the alpha points in a response surface design, the low and high levels of all factors need to be specified. There are two options to handle this. - -- Automatically detect low/high: Attempts to automatically detect the low and high levels by taking the minimum and maximum for continuous factors, and by ordering discrete factors alphabetically. For response surface designs, this might recognize alpha values as low/high levels. In this case, manual specification is needed. - -- Manually specify low/high: Shows all factors in the analysis to allow for manual specification of the low and high levels. - -### Other analysis options - -- Use alias names: Check to assign alias names to factors. Useful when factors have long names. -- Show regression equation: Check to display the regression coefficients as an equation predicting the response. -- Display result in coded units: Check to display the results in coded units. This means, all factor levels are standardized between -1 and 1. -- Show optimal response: Check to display the factor levels yielding the optimal response. - -## Model options -------- - -There are different options available to determine the terms that should be added to the model. - -### Select predefined model / highest order interaction term -Check to use one of the predefined models offered for analysing RSM designs, or to define the model based on the highest order interaction terms to include. - -### Define manually -Allows manually defining the terms in the model. When analysing RSM designs, a second assignment box for defining squared terms is available. - -## Plots -------- - -### Residual plots -- Normal probability plot: Check to show a normal probability plot of the residuals. -- Histogram: Check to show a histogram of the residuals. -- Residuals vs. fitted values: Check to show a plot of the residuals per fitted value. -- Residuals vs. run order: Check to show a plot of the residuals per run order value. -- Residuals four-in-one plot: Check to show all of the above plots in a 2x2 matrix. - -### Other plots -- Pareto plot of effects: Check to show a pareto plot of the standardized effects. -- Normal plot of effects: Check to show a normal probability plot of the standardized effects. -- Contour/surface plot: Check to show a contour (2D) or surface (3D) plot. - - Show legend: Check to show a legend next to the plot. - - Divide surface into N parts: Select the number of division in the surface of the contour/surface plot. - -## Advanced options -------- -- Histogram bin width type: Select the method used to calculate the bin-widths or specify a manual number of bins. -- Sums of squares type: Select the method use to calculate the sums of squares. \ No newline at end of file diff --git a/inst/help/doeFactorial.md b/inst/help/doeFactorial.md deleted file mode 100644 index 36a99d0ed..000000000 --- a/inst/help/doeFactorial.md +++ /dev/null @@ -1,46 +0,0 @@ -Factorial Design -========================== - -A factorial design is an experimental setup used to study the effects of multiple factors by varying them simultaneously. Each factor is tested at different levels and in different combinations with other factors. This design allows for the examination of both the main effects of each factor and the interactions between factors. It provides a systematic approach to understanding how different variables influence the outcome. - -## Display design -------- -Check to display the design table in the output. One of the pre-set designs needs to be selected in the "Design Table". - -- Coded units: Whether to display the levels of the predictor in the given units or in coded units. -- Sort by run/standard order: Whether to sort the runs in the design by run order or standard order. - -## Save design -------- -Option to save the design as a .csv file. Specify a name and path for the file or use the browse option. Check "Export design" to save the selected design. - -## Design settings -------- - -- Number of predictors: Set the total number of predictors in the desired design. - -- Maximum predictor levels: Set the maximum number of levels for the predictors in the design. Only applicable for general full factorial designs, else predictors always have two levels. If a predictor has fewer levels than the maximum number of levels in the design, leave the remaining level cells empty or add a space. - -- Design type: - - 2-level factorial (default generator): Generate a two-level factorial design using the default generator. - - 2-level factorial (specify generator): Generate a two-level factorial design using a custom generator. - - Design generator: Specify the generator for the design. - - 2-level split-plot (hard-to-change factors): Generate a two-level split-plot design containing hard-to-change factors. - - Number of hard-to-change factors: Select the number of hard-to-change factors. - - General full factorial: Generate a general full factorial design. - -- Predictor names and levels: Set the names of the predictors and give the values for each level. - -- Design table: Select one of the pre-set designs by clicking on it in the table. - -- Alias structure: Check to display alias structure of the generated design. - -- Repeatability (Seed): Set a seed to reproduce a certain random order. - -- Blocks: Select the number of blocks in the design. - -- Centre points per block: Select the number of center points per block to add to the design. - -- Replications: Select the number of replications of the whole design. - -- Repetitions: Select the number of randomly selected runs to repeat. \ No newline at end of file diff --git a/inst/help/doeResponseSurfaceMethodology.md b/inst/help/doeResponseSurfaceMethodology.md deleted file mode 100644 index b57403c99..000000000 --- a/inst/help/doeResponseSurfaceMethodology.md +++ /dev/null @@ -1,103 +0,0 @@ -Response surface methodology -========================== - -A response surface design is an experimental framework used to optimize and understand the relationships between several explanatory variables and one or more response variables. By systematically varying the input variables, researchers can explore the effects of these variables on the response, identify optimal conditions, and understand the interactions between variables. Response surface designs are particularly useful in situations where the goal is to optimize a process or product, as they provide a detailed map of the response landscape, enabling precise fine-tuning and improvement. - -# Options -------- - -## Display design -------- -Check to display the design table in the output. - -- Coded units: Whether to display the levels of the predictor in the given units or in coded units. -- Sort by run/standard order: Whether to sort the runs in the design by run order or standard order. - -## Save design -------- -Option to save the design as a .csv file. Specify a name and path for the file or use the browse option. Check "Export design" to save the selected design. - -## Design settings -------- - -- Design type: - - Central composite design: Select to generate a central composite design. - - Box-Behnken design: Select to generate a Box-Behnken design. - -- Number of continuous predictors: Set the total number of continuous predictors in the desired design. - -- Number of discrete predictors: Set the total number of discrete predictors in the desired design. - -- Maximum discrete levels: Set the maximum number of levels for the discrete predictors in the design. Continuous predictors always have two defined levels (low/high). If a discrete predictor has fewer levels than the maximum number of levels in the design, leave the remaining level cells empty or add a space. - -- Design table: Select one of the pre-set designs by clicking on it in the table. - -- Alpha: Select how the alpha value in the design is determined. - - Default: Use the default alpha value displayed in "Design Table". - - Face centred: Use a face centred alpha value. - - Custom: Enter a custom alpha value. - -- Center points: Select how the number of center points in the design is determined. - - Default: Use the default number of center points displayed in "Design Table". - - Custom: Enter a custom number of center points. - - Cube block: Enter the number of cube center points. - - Axial block: Enter the number of axial center points. - -- Replicates: Select the number of replications of the whole design. - -- Repeatability (Seed): Set a seed to reproduce a certain random order. - - -# Background -------- -A response surface experiment extends the screening design to allow estimation of quadratic effects. After resolving confounding, the screening experiment allows coefficient estimates for main effects and interactions. The response surface experiment expands this equation by adding quadratic or even cubic terms. The form of the empirical model with quadratic terms is: - -*y = c0 + c1X1 + c2X2 + ... + cnXn + c12X1X2 + c13X1X3 + ... + c(n-1)(n)Xn-1Xn + c11X12 + c22X22 + ... + cnnXn2* - -Estimating the coefficients of the model shown in the above equation requires an experiment with at least three factor levels. A full factorial experiment with three levels includes enough trials to estimate all interactions, but quickly becomes large as the number of factors increases. - -Full factorial experiments include all interactions. The hierarchical ordering principle and the effect heredity principle imply that higher order interactions may be ignored, and that any interaction will not be statistically significant at a level of 5% unless the corresponding main effects are also statistically significant at a level of 5%. This allows accurate predictions with 2nd or 3rd order polynomials which can be created with significantly less trials than a full factorial experiment. - -## Central composite design -------- -*Central composite designs* (CCD) were first proposed by Box and Wilson for building a second order (quadratic) model for the response variable without needing to use a complete three-level factorial experiment. A central composite design contains an imbedded factorial (or fractional factorial of resolution V) design with nF factorial points and with nC centre points augmented with a group of star (axial) points that allows estimation of curvature. A central composite design always contains twice as many star (or axial) points (2k) as there are factors (k) in the design. These designs are constructed from three main parts, each of which comprises a set of experimental points. The three parts can be characterised as: - -a) The 2k vertices (±1, ±1, ..., ±1) of a *k*-dimensional "cube"; - -b) The 2k vertices (±α, 0, 0, ..., 0), (0, ±α, 0, 0, ..., 0), ..., (0, 0, ..., 0, ±α) of a *k*-dimensional "star"; - -c) A number of centre points (0, 0, ..., 0). - -Part a) is simply a 2k factorial design or a fractional factorial design. The variable coding is chosen so that the two levels (low and high) are -1 or +1. This part is often referred to as "cube" whatever the number of variables may be. - -Part b) consists of pairs of experimental points on the coordinate axes all at a distance α from the origin. The quantity α is often a value between 1.4 and 2 but is dependent on the number of variables and the properties of the design under study. This part is often referred to as "star" or "axial". - -![An image of the rsm design shapes: cube, star, and cube + star](%HELP_FOLDER%/images/doeResponseSurfaceMethodology/rsmDesignShapes.JPG) - -There are three general types of central composite designs: - -### Central composite circumscribed (CCC) -CCC designs are the original form of the central composite design. The star (or axial) points are located on a circle encompassing the screening design. This is shown in using -1 and +1 as the low and high levels of the original screening design with two factors. These designs have circular, spherical, or hyper-spherical symmetry and require five levels for each factor. It may not be possible to augment a screening design, represented by the corners of the square, if the levels of the screening design are absolute minimum and maximum as the star (or axial) points exceed these values. - -### Face centred central composite (CCF) -In the CCF design the star points are located at the centre of each face, i.e. at the middle lines of the square (for two factor designs) or at the centre of the square of the cube (for three factors) formed by the screening design. This variety requires three levels of each factor. This design is not rotatable, and has slightly less precision for coefficient estimation. Its advantage is that star (or axial) points can be added to prior screening designs. - -### Central composite inscribed (CCI) -For those situations in which the limits specified for factor settings are truly limits, the CCI design uses star (or axial) points which are set at the minimum and maximum levels. If augmenting a screening design, the levels of the screening design will be within the absolute limits to allow the expanded settings for the star (or axial) points. This design also requires five levels of each factor. - -![An image of the CCD types: circumscribed, face-centered, and inscribed.](%HELP_FOLDER%/images/doeResponseSurfaceMethodology/rsmCCDTypes.JPG) - -## Box-Behnken design -------- - -A *Box-Behnken design* (BBD) is an independent quadratic design in that it does not contain an embedded factorial (or fractional factorial) design i.e., all factors are never set at their high levels simultaneously. In this design the treatment combinations are at the midpoints of edges of the process space and at the centre. These designs are rotatable (or near rotatable) and require three levels of each factor. The designs have limited capability for orthogonal blocking compared to the central composite designs. - -![An image of the BBD.](%HELP_FOLDER%/images/doeResponseSurfaceMethodology/rsmBBD.JPG) - -The Box-Behnken set-up consists of twelve "edge" points (shown as red dots) all lying on a single sphere about the centre of the experimental region (shown as a blue dot), plus a few replicates of the centre point, e.g., three (blue) centre points. - -## References -------- -- Dodson, L., Dodson, M., and Klerx, R. (2010), *A study of the hierarchical ordering principle and the effect heredity principle in factorial experimental designs*, 10th Annual Transaction of ENBIS (12 16 September 2010, Antwerp). -- Box, G.E.P., and Wilson, K.B. (1951), On the experimental attainment of optimum conditions. *Journal of the Royal Statistical Society 13*(1), 1-45. -- Automotive Industry Action Group (July 2005), *Statistical process control (SPC) – Reference manual*, AIAG. diff --git a/inst/help/images/doeResponseSurfaceMethodology/rsmBBD.JPG b/inst/help/images/doeResponseSurfaceMethodology/rsmBBD.JPG deleted file mode 100644 index 5b5a7880d..000000000 Binary files a/inst/help/images/doeResponseSurfaceMethodology/rsmBBD.JPG and /dev/null differ diff --git a/inst/help/images/doeResponseSurfaceMethodology/rsmCCDTypes.JPG b/inst/help/images/doeResponseSurfaceMethodology/rsmCCDTypes.JPG deleted file mode 100644 index 53597ded8..000000000 Binary files a/inst/help/images/doeResponseSurfaceMethodology/rsmCCDTypes.JPG and /dev/null differ diff --git a/inst/help/images/doeResponseSurfaceMethodology/rsmDesignShapes.JPG b/inst/help/images/doeResponseSurfaceMethodology/rsmDesignShapes.JPG deleted file mode 100644 index 2b05cc8cb..000000000 Binary files a/inst/help/images/doeResponseSurfaceMethodology/rsmDesignShapes.JPG and /dev/null differ diff --git a/inst/help/msaAttribute.md b/inst/help/msaAttribute.md deleted file mode 100644 index 4d231f0c4..000000000 --- a/inst/help/msaAttribute.md +++ /dev/null @@ -1,47 +0,0 @@ -Attribute Agreement Analysis -========================== -Attribute Agreement Analysis is used to deem the agreement between operators' and known standard's ratings. -One of the aims is thus to determine the accuracy of the investigated operators. - -## Input -------- -### Data Format -Data can be in the form of all observations in one column ("Single column") or across rows with a subgroup index ("Across rows"). - -### Assignment Box -- Operators: the operators in the measurement system. -- Parts: the parts of the measurement system. -- Result: The ratings made by the operators. -- Standard (optional): the ratings by the known standard. - -### Options -#### Kappa Studies (Binary Data) -- Cohen's kappa (interrater kappa): compute Cohen's kappa per operator. -- Fleiss's kappa (multirater kappa): compute Fleiss's kappa per operator. -- Positive reference: the positive reference used for the rating classifications (for example, "Yes", "fit", "Good"). - -#### Tau Studies (Ordinal Data) -- Kendall's tau: compute the correlations between the operators and their ratings. - -## Output -------- -### Tables -- Study effectiveness summary: Effectiveness, Miss rate, and False alarm rate per operator with an evaluation of acceptance. -- Within Appraisers: matching between the inspected items and operators, with a 95% confidence interval. -- Each Appraiser vs Standard: matching between the known standard and inspected items per operator, with a 95% confidence interval. -- Between Appraisers: matching between the different operators, with a 95% confidence interval. -- All Appraisers vs Standard: matching between all operators and known standard, with a 95% confidence interval. - -### Plots -- Within Appraisers: plotting the matching's percentage within appraiser and its confidence intervals. -- Each Appraiser vs Standard: plotting the matching's percentage between the known standard and inspected items per operator and its confidence intervals. -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) – Reference manual, AIAG. -## R Packages -------- -- jaspGraphs -- ggplot2 -- tidyr -- psych -- irr \ No newline at end of file diff --git a/inst/help/msaGaugeLinearity.md b/inst/help/msaGaugeLinearity.md deleted file mode 100644 index 5202c0eeb..000000000 --- a/inst/help/msaGaugeLinearity.md +++ /dev/null @@ -1,39 +0,0 @@ -Gauge Linearity and Bias -========================== -Gauge Linearity and Bias study is used to investigate the linearity (accuracy across the expected range of measurements) and -bias (matching between measurements and reference values) of a system. - -## Input -------- -### Assignment Box -- Parts: the parts of the measurement system. -- Measurements: the observations/data collected from a process. -- Standard: the reference values. - -## Options -### Analysis options -- Process variation: the number of standard deviations used to calculate the bias, by default 6. -- Linearity table: outputs the regression model and gauge linearity tables. -- Bias table: outputs the gauge bias table. - -### Plots -- Linearity and bias graph: plots the linear relationship between the bias and reference values. -- Percent process variation graph: plots the percentage of the gauge bias and linearity in relation to the process variation. - -## Output -------- -- Gauge Bias table: per part the- reference values, mean per reference value, bias per reference value, and a t-test of the bias against a value of 0. -- Regression Model table: the predictors' (intercept and slope) coefficients, t-statistics, standard errors, and p-values. -- Gauge Linearity table: the regression model's sigma (S), absolute coefficient values multiplied by the process variation (linearity), r-squared, the percentage of linearity in relation to the process variation. -- Bias and linearity plot: linear relationship between the bias and reference values, reference values' means (red dots), and values (black axes) given the linear equation. -- Percentage Process Variation Graph: percentage of linearity and bias in relation to the process variation. - -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) – Reference manual, AIAG. - -## R Packages -------- -- jaspGraphs -- ggplot2 -- ggpubr \ No newline at end of file diff --git a/inst/help/msaGaugeRR.md b/inst/help/msaGaugeRR.md deleted file mode 100644 index 18629bca4..000000000 --- a/inst/help/msaGaugeRR.md +++ /dev/null @@ -1,61 +0,0 @@ -Gauge r&R -========================== -Gauge Repeatability and Reproducibility (Gauge R & R) is an analysis aimed at defining the amount of variation in measurements given a measurement system. -The variation detected in the measurement is sourced in two factors, repeatability (equipment variation) and reproducibility (operator variation). -
-Both attribute and variable measurement data can be used in the analysis. - -## Input -### Data Format -------- -Data can be in the form of all observations in one column ("Single column") or across rows with a subgroup index ("Across rows"). - -### Assignment Box -- Operators: the operators in the measurement system. -- Parts: the parts of the measurement system. -- Measurements: the observations/data collected from a process. - -### Gauge r&R Method -The method used in the analysis. -- Analysis of Variance method: analysis is based on analysis of variance (ANOVA). - -### Options (Analysis of Variance method) -#### Analysis options -- Std.Deviation reference: either a historically known standard deviation (Historical process std.Deviation) or estimated from the data (Study std.Deviation). -- Tolerance: include a value for tolerance. -- r&R table Analysis of Variance method: options for the Analysis of Variance table. - - Alpha interaction removal: value for alpha level. - - Study Var. multiplier type: multiplier based on either Std.Deviation or Percent. - - Study Var. multiplier value: value for the multiplier. - - Components of variation: display the components of variation (contribution, study variation, and tolerance) plot. -- Descriptives table: display descriptive statistics for the operator. - -#### Plots -- R chart by operator: display a plot of the range chart across operators by parts. -- X-bar chart by operator: display a plot of the average chart across operators by parts. -- Scatter plots operators: display a matrix plot of the relationship between the operators. - - Fit line: fit a linear line to the data points. - - Show origin line: displays the origin line of the data points. -- Measurement by part plot: display a plot of the measurement's means across parts. - - Display all measurements: display all measurement values across parts. -- Measurement by operators plot: display a box plot of the measurement's values across operators. -- Part x operator interaction plot: display the measurements' mean across parts per operator. -- Traffic light graph: display total Gague r & R in relation to the tolerance and process variation in percentage. - -## Output -------- -- Analysis of Variance table: Two-way analysis of variance tables with and without interactions for the input variables, repeatability, reproducibility, and total Gauge r&R. -- Gauge r&R Variance Components: variance and contribution in percentage of the input variables, repeatability, reproducibility, and total Gauge r&R. -- Gauge Evaluation: the standard deviations, study variations, and percent of study variation and tolerance for input variables, repeatability, reproducibility, and total Gauge r&R. - -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) – Reference manual, AIAG. - -## R Packages -------- -- jaspGraphs -- ggplot2 -- tidyr -- qcc -- cowplot \ No newline at end of file diff --git a/inst/help/msaGaugeRRnonrep.md b/inst/help/msaGaugeRRnonrep.md deleted file mode 100644 index a4e432163..000000000 --- a/inst/help/msaGaugeRRnonrep.md +++ /dev/null @@ -1,65 +0,0 @@ -Gauge r&R (Non-replicable Measurements) -========================== -Gauge repeatability and Reproducibility (Gauge r&R) is an analysis method aimed at defining the amount of variation in measurements given a measurement system. The variation detected in the measurement is sourced in two factors, repeatability (equipment variation) and Reproducibility (operator variation). This is the version of the analysis for non-replicable measurements. - -## Input -### Data format -------- -Data can be in the form of all observations in one column ("Single column") or across rows with a part identification ("Across rows"). - -### Assignment box -- Operators: the appraisers using the measurement system. -- Parts: the parts selected from the process and representing its entire operating range. -- Measurements: the repeated measurements of each part. - - - -### Gauge r&R analysis - -#### Analysis options -- Std.Deviation reference: either a historically known standard deviation (Historical process std.Deviation) or estimated from the data (Study std.Deviation). -- Tolerance: include a value for tolerance. -- r&R tables: options for the Gauge r&R tables. - - Study Var. multiplier type: multiplier based on either Std.Deviation or Percent. - - Study Var. multiplier value: value for the multiplier. - - Graph variation components: display the components of variation (contribution, study variation, and tolerance) plot. - -#### Plots -- Range chart by operator: displays the variation in the measurements made by each operator, allowing you to compare operators to each other. -- Average chart by operator: displays the measurements in relation to the overall average for each operator, allowing you to compare operators to each other, and to the average. -- Scatter plots operators: displays a matrix plot of the relationship between the operators. - - Fit line: fits a linear line to the data points. - - Show origin line: displays the origin line of the data points. -- Measurement by part displays the main effect for the parts, so you can compare the average measurement for each part. - - Display all measurements: displays all measurement values across parts. -- Measurement by operators: displays the main effect for the operators, so you can compare average measurement for each operator. If you have many replicates, boxplots are displayed on the By Operator graph. - - -## Output -------- -- Gauge r&R (Nested): Nested Analysis of Variance table for the input variables, repeatability, reproducibility, and total Gauge r&R. -- Gauge r&R Variance Components: variance and contribution in percentage of the input variables, repeatability, reproducibility, and total Gauge r&R. -- Gauge Evaluation: the standard deviations, study variations, and percent of study variation and tolerance for input variables, repeatability, reproducibility, and total Gauge r&R. - -## General guideline for acceptance of measurement systems -If the total gauge r&R contribution in the %Study Var. column (%Tolerance, %Process) is: -- %r&R ≤ 10%: measurement system is generally considered to be acceptable -- 10% < %r&R ≤ 30%: may be acceptable for some applications -- %r&R > 30%: measurement system is considered to be unacceptable. - -If you are looking at the %Contribution column, the corresponding standards are: -- Less than 1%: the measurement system is acceptable -- Between 1% and 9%: the measurement system is acceptable depending on the application, the cost of the measuring device, cost of repair, or other factors -- Greater than 9%: the measurement system is unacceptable and should be improved. - -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) – Reference manual, AIAG. - -## R Packages -------- -- jaspGraphs -- ggplot2 -- tidyr -- qcc -- cowplot \ No newline at end of file diff --git a/inst/help/msaTestRetest.md b/inst/help/msaTestRetest.md deleted file mode 100644 index 6632fb27c..000000000 --- a/inst/help/msaTestRetest.md +++ /dev/null @@ -1,46 +0,0 @@ -Test-retest -========================== -Test-retest aims to approximate an overall picture of the measurement system's variability as it does not distinguish the variability to its repeatability and reproducibility components. - -## Input -------- -### Data Format -Data can be in the form of all observations in one column ("Single column") or across rows with a subgroup index ("Across rows"). - -### Assignment Box -- operators: the operators of the measurement system. -- Parts: the parts of the measurement system. -- Measurements: the observations/data collected from a process. - -## Options -### Range Method Options -- Process Std. Deviation: historical process standard variation. -- Tolerance: value for tolerance. -- r&R table: outputs the short gauge study table. - -### Plots -- Run chart of parts: plots the measurements' values agianst the parts. -- Scatter plot: plots a scatter plot of the measurements. - - Regression line: fits a regression line to the scatter plot. - - jitter: adds jitter to the scatter plot. -- Range chart: plots the range chart by part. -- Traffic light graph: plots the traffic light graph. - -## Output -------- -- Short gauge study table: sample size, R-bar, historical standard variation, tolerance, GRR, GRR's percentage of the standard variation and tolerance. -- Traffic light graph: GRR's percentage of the standard variation and tolerance. -- Run chart of parts: all measurements' values per part. -- Range chart by part: range chart for the measurements using the parts as subgroups. -- Scatter plot: a scatter plot of the measurements. - - -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) – Reference manual, AIAG. - -## R Packages -------- -- jaspGraphs -- tidyr -- ggplot2 \ No newline at end of file diff --git a/inst/help/msaType1Gauge.md b/inst/help/msaType1Gauge.md deleted file mode 100644 index d0f01e79b..000000000 --- a/inst/help/msaType1Gauge.md +++ /dev/null @@ -1,49 +0,0 @@ -Type 1 Gauge -========================== -Type 1 Gauge is performed before a Gauge r & R study to determine the measurement's capability using bias and repeatability. - -## Input -------- -### Assignment Box -- Measurements: the observations/data collected from a process. - -## Options -### Analysis options -- Reference value: value for reference. -- Tolerance range: value for tolerance. -- Percent of tolerance for Cg: value for Cg. -- Study var. (number of std. deviations): value for the number of standard deviations. -- Bias and instrument capability table: display the Basic statistics and Capability tables. -- One sample T-test: display the T-Test table. - - Confidence interval for bias: value for the confidence interval's width. - -### Plots -- Run chart: display the run chart of the measurement. - - Display individual measurements: display the measurement's individual values. - - Display tolerance limits: display the tolerance limits. -- Histogram: display the bias histogram. - - Bin width type: specify the type of bin width. - - Number of bins: value for the number of bins. - - Display mean: display the mean value of the measurement. - - Confidence interval for mean: value for the mean confidence interval's width. - - Display reference value: display the reference value. - -## Output -------- -- Run chart plot: plots the measurement's values across observations/samples. -- Basic statistics table: table of the reference value, mean, bias, standard deviation, study variation (SD of the measurement times the Study var.), tolerance, and percent of bias (bias's percentage of the tolerance). -- Capability table: Cg, CgK, percent of the variance of Repeatability and Repeatability and bias. -- T-Test of observed bias: degrees of freedom, Bias, Confidence interval limits, t-statistic, and p-value for the test of observed bias against a value of zero. -- Bias histogram: histogram of the measurement. - -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) – Reference manual, AIAG. - -## R Packages -------- -- jaspGraphs -- jaspDescriptives -- tidyr -- ggplot2 -- ggrepel \ No newline at end of file diff --git a/inst/help/processCapabilityStudies.md b/inst/help/processCapabilityStudies.md deleted file mode 100644 index 4172d7a25..000000000 --- a/inst/help/processCapabilityStudies.md +++ /dev/null @@ -1,145 +0,0 @@ -Process capability Studies -========================== -A process capability study is the analysis of a process in order to determine whether the process under study is capable of providing good quality products. This analysis uses data from an initial run of parts to predict whether a manufacturing process can repeatably produce parts that meet specifications. -A subgroup is a group of pars that are produced under the same set of conditions. -Rational subgroup: "A subgroup gathered in such a manner as to give the maximum chance for the measurements in each subgroup to be alike and the maximum chance for the subgroups to differ from the other. This subgrouping scheme enables a determination of whether the process variation includes special cause variation." [1] - - -## Input -------- -### Data Format -Data can be in the form of all observations in one column ("Single column") or across rows with a subgroup index ("Across rows"). - -### Assignment Box -- Measurements: the observations/data collected from a certain process parameter -- Subgroups ("Column" option): the subgroup that each observation is assigned to, if all observations are in the same column. -- Timestamp ("Row" option): optinal subgroup names for each row of observations, that are used as x-axis labels. -- Stages: a column to split the analysis into multiple parts by assigning a stage to each subgroup. In "row" format, only one stage per subgroup is possible. In "column" format, only the first specified stage for each subgroup is considered. - -### Specifying Subgroups in "Column" Format -------- -- Through grouping variable: a single-column subgroup variable is specified that assigns each observation to a subgroup. -- Through grouping variable: a single-column subgroup variable is specified that assigns each observation to a subgroup. - - Grouping method: if identical values of the subgroup variable are not adjacent in the dataset (top to bottom), there are two methods to handle this. If the grouping method is "Subgroup value change", only series of identical and adjacent subgroup values form a group. If the grouping method is "Same subgroup value", all identical subgroup values form a group, regardless of their adjacency. For instance, if the values of the subgroup variable are [A, A, B, B, A], the method "Subgroup value change" would yield three groups: [A, A], [B, B] and [A]. The method "Same subgroup value" would yield two groups, [A, A, A] and [B, B]. -- Manual subgroup size: the observations are assigned in the order of appearence (from top to bottom) to subgroups of the specified size. If the number of observations cannot be equally divided into subgroups of the specified size, the last subgroup has the size of the remaining observations. - -### Handling Unequal Subgroup Sizes -------- -The size of the subgroups is relevant for the calculation of the process variance and subsequently the calculation of the control limits. If not all subgroups are of the same size, there are two options to handle this: -- Assume equal subgroup sizes: the control limits are calculated with the assumption that all subgroups have the same size, and the same control limits are calculated for all groups. In this case, the size of the largest subgroup is used for the calculation. -- Calculate with actual size: the control limits are calculated per subgroup and the actual subgroup sizes are used for the calculation. - -### Options - -#### Data transformation -- Transform data before any analysis. - - **None**: The data is analysed as-is - - **Box-Cox**: The data is transformed using the equation $y = (x+\text{shift})^\lambda$ if $\lambda \neq 0$, otherwise $y = \ln(x + \text{shift})$. - - **Box-Cox (auto)**: The data is transformed using the Box-Cox transformation, but with the $\lambda$ parameter automatically estimated using one of the methods specified (see 'Method'). - - **Yeo-Johnson**: The data is transformed using the Yeo-Johnson transform as described in Yeo & Johnson (2000). It can be used for unbounded data. - - **Yeo-Johnson (auto)**: The data is transformed using the Yeo-Johnson transform, but with the $\lambda$ parameter automatically estimated using the profile likelihood of a normal distribution. This procedure allows only process performance results (no process capability). - - **Johnson**: The data is transformed using the Johnson transform. It can be used for unbounded data (but some forms of the transform will impose restrictions on the specification limits). The transform is fully automatic, as described in Chou, Polanski, & Mason (1998). This procedure allows only process performance results (no process capability). - -- **Shift** numerical value of the shift parameter used for transforms that accept bounded data. This option is disabled for unbounded transforms (Yeo-Johnson, Johnson) -- **Lambda** numerical value of the $\lambda$ parameter of the transforms. This option is disabled for transforms which automatically estimate their parameter(s). -- **Method** method for selecting the best $\lambda$ value. 'Log-Lik' maximizes the normal-likelihood of the transformed variable. 'SD' minimizes the sums of squares of the power-transformed variable. 'Average moving range' minimizes the estimate of variabiliy based on the average moving range of the power-transformed variable. 'Log-Lik' and 'Sd' are appropriate for grouped data, 'Average moving range' is appropriate for individual's data. -- **Continuity Adjustment** if enabled, the Box-Cox transform includes the adjustment term $y = \frac{(x+\text{shift})^\lambda-1}{\lambda}$. - -#### Type of data distribution -- Type of data distribution: indicate whether the data approximates a normal distribution or another distribution (the available distributions are: Weibull, Lognormal, Gamma, Exponential, Logistic, Log-logistic, 3-parameter Weibull, and 3-parameter lognormal) - - Specify a distribution: the non-normal distribution to be used. - - Non-normal capability statistics: the method used to calculate the capability statistics for non-normally distributed data. - - Historical parameters: Select which parameters should use fixed historical values instead of being estimated. Note that if not all parameters are set historically, JASP keeps the historical parameters fixed while estimating the remaining parameters freely. - -#### Capability studies -- Specification limits: - - Lower specification limit: the value used as the lower tolerance limit. - - Boundary: whether the lower specification limit is a physicial boundary that cannot be exceeded. - - Target value: the value used as the target. - - Upper specification limit: the value used as the upper tolerance limit. - - Boundary: whether the upper specification limit is a physicial boundary that cannot be exceeded. -- Process capability plot: - - Number of bins: the number of classes to be plotted. - - Process capability tables. - - Confidence interval: the percentage of confidence used for calculating the intervals of process capability's statistics (Cp, Cpk, Pp, Ppk, and Cpm). - -#### Distribution of the process -- Histogram: - - Fit distribution: add a line to the data, which represents the fitted distribution. - - Number of bins: number of bins to be used for the histogram. -- Probability table and plot - - Null distribution: the distribution used to exam the data displayed in the probability plot to determine whether the data are distributed approximately normally or any other distribution. - - Display grid lines: add grid lines to the probability plot. - -### Advanced Options -- Rank method: the method used to calculate the rank of the data, displayed in the probability plot (Benard's median rank method is the most commonly used method, and is very close to the exact method). - -## Output -------- -### Control charts: -- X-bar & R control chart: charts the process average (x-bar) and process range (R = maximum - minimum) over time. -- X-bar & s control chart: charts the process average (x-bar) and standard deviation (s) over time. -- X-mR contrl chart: charts the individual measurement and the moving range (mR) of two consecutive measurements over time. -- X-bar & mR control chart: charts the process average (x-bar) and the moving range (mR) of two consecutive subgroup means over time. - -### Histogram: -- plots the frequency of the values in classes. A histogram is a graphical representation of data points organized into user-specified ranges. Similar in appearance to a bar graph, the histogram condenses a data series into an easily interpreted visual by taking many data points and grouping them into logical classes or bins. - -### Probability table and plot -- Probability table: the number of observations, the process's mean, the process's standard deviation, the Anderson-Darling statistic, and the *p*-value associated with the former. -- Probability plot: plots the data against a theoretical distribution in such a way that the plotted points should form approximately a straight line. - -### Capability studies -- Process summary (only displayed if one or both specification limits are filled in): Produces a table of statistics consisting of the lower specification limit, target, upper specification limit, sample size, overall average, overall (total) standard deviation, and the within (subgroup) standard deviation. The within standard deviation is estimated according to the selected method (R-bar, S-bar, or Pooled). Pooled standard deviation is a common default for capability analysis and is the most efficient estimate of the within-subgroup variation, especially for larger or unequal subgroups. -- Capability of the process: plots the frequency distribution with the fitted distribution based on the overall (total) process variation and the inherent (within) process variation. It compares the process spread to the customer requirements (the upper and lower specification limits displayed as red vertical lines). The two curved lines indicate how well the selected distribution fits to the data. The two distributions are based on the within (red curve) and overall (blue curve) process variation. -- Process capability (within): the Cp and its confidence interval's values, CpL, cpK, and its confidence interval's values. - - Process capability is determined by the variation that comes from common causes. It generally represents the best (potential) performance of the process. This is demonstrated when the process is being operated in a state of statistical control regardless the specifications [1]. - Capability index Cp compares the process capability to the maximum allowable variation as indicated by the tolerance. - Cp is not impacted by the process location. This index can be calculated only for bilateral (two-sided) tolerances, it has no meaning for the one-sided situation (unilateral tolerance, with only one specification limit). - Capability index Cpk takes the process location as well as the capability into account. Cpk will always be less than or equal to Cp. Z (ST) is equal to 3 * Cpk and corresponds to the distance of the process mean to the nearest bound in standard deviation units. Z.bench (ST) is the short-term sigma level computed from the total expected defect probability across both specification limits (based on the within standard deviation), i.e. the standard normal quantile of one minus that probability. It equals Z (ST) only for one-sided tolerances; for two-sided tolerances it is smaller because both tails contribute. - *Note*: Capability study reports contain meaningless numbers if processes are not in a state of statistical control. - -- Process performance (total): the Pp and its confidence interval's values, PpL, PpU, PpK and its confidence interval's values, Cpm and its confidence interval's values. - - Process performance is the overall output of the process and how it relates to the requirements (defined by specifications). - Performance index Pp compares the process performance to the maximum allowable variation as indicated by the tolerance [1]. - Pp is not impacted by the process location. This index can be calculated only for bilateral (two-sided) tolerances, it has no meaning for the one-sided situation (unilateral tolerance, with only one specification limit). - Performance index Ppk takes the process location as well as the performance into account. - Ppk will always be less than or equal to Pp. Z (LT) is equal to 3 * Ppk and corresponds to the distance of the process mean to the nearest bound in standard deviation units. Z.bench (LT) is the long-term sigma level computed from the total expected defect probability across both specification limits (based on the overall standard deviation), i.e. the standard normal quantile of one minus that probability. It equals Z (LT) only for one-sided tolerances; for two-sided tolerances it is smaller because both tails contribute. - The Cpm index indicates how well the process can produce within specifications. Its calculation is similar to Cp, except that the standard deviation is calculated using the target value instead of the mean. The larger the Cpm, the more likely the process will produce output that meets specifications and is close to the target value. - -- Non-conformance statistics: the observed of ppm outside the specification limits, the expected ppm outside the specifications limits based on the overall standard deviation and the within standard deviation. - - - ppm < LSL for observed performance is the actual number of parts per million (ppm) that have measurements that are less than the lower specification limit (LSL). - - ppm > USL for observed performance is the actual number of parts per million (ppm) that have measurements that are greater than the upper specification limit (USL). - - ppm total for observed performance is the actual number of parts per million (ppm) that have measurements that are outside the specification limits. ppm total equals the sum of ppm < LSL and ppm > USL. - - ppm < LSL for expected overall performance is the expected number of parts per million (ppm) that have measurements that are less than the lower specification limit (LSL). Expected overall performance values are calculated using overall standard deviation. ppm < LSL for expected overall performance is 1,000,000 times the probability that the measurement of a randomly selected part from the overall process distribution is less than LSL. - - ppm > USL for expected overall performance is the expected number of parts per million (ppm) that have measurements that are greater than the upper specification limit (USL). Expected overall performance values are calculated using overall standard deviation. ppm > USL for expected overall performance is 1,000,000 times the probability that the measurement of a randomly selected part from the overall process distribution is greater than USL. - - ppm total for expected overall performance is the expected number of parts per million (ppm) that are outside the specification limits. Expected overall performance values are calculated using overall standard deviation. ppm total for expected overall performance is 1,000,000 times the probability that the measurement of a randomly selected part from the overall process distribution is outside the specification limits. - - ppm < LSL for expected within performance is the expected number of parts per million (ppm) that have measurements that are less than the lower specification limit (LSL). Expected within performance values are calculated using the within-subgroup standard deviation. ppm < LSL for expected within performance is 1,000,000 times the probability that the measurement of a randomly selected part from the within-subgroup process distribution is less than LSL. - - ppm > USL for expected within performance is the expected number of parts per million (ppm) that have measurements that are greater than the upper specification limit (USL). Expected within performance values are calculated using the within-subgroup standard deviation. ppm > USL for expected within performance is 1,000,000 times the probability that the measurement of a randomly selected part from the within-subgroup process distribution is greater than USL. - - ppm total for expected within performance is the expected number of parts per million (ppm) that have measurements that are outside the specification limits. Expected within performance values are calculated using the within-subgroup standard deviation. ppm total for expected within performance is 1,000,000 times the probability that the measurement of a randomly selected part from the within-subgroup process distribution is outside the specification limits. - - - -## References -------- -1. Automotive Industry Action Group, *Statistical Process Control - Reference Manual* (July 2005, 2nd Edition) -2. Yeo, I. K., & Johnson, R. A. (2000). A new family of power transformations to improve normality or symmetry. Biometrika, 87(4), 954-959. -3. Chou, Y. M., Polansky, A. M., & Mason, R. L. (1998). Transforming non-normal data to normality in statistical process control. Journal of Quality Technology, 30(2), 133-141. - - -## R Packages -------- -- ggplot2 -- qcc -- jaspGraphs -- ggrepel -- FAdist -- goftest -- fitdistrplus -- tidyr -- tibble -- EnvStats -- weibullness diff --git a/inst/help/rareEventCharts.md b/inst/help/rareEventCharts.md deleted file mode 100644 index bd212fa7e..000000000 --- a/inst/help/rareEventCharts.md +++ /dev/null @@ -1,74 +0,0 @@ -Rare Event Charts -========================== -Two very effective alternatives to the Shewhart control chart may be used when monitoring rare events or when small process shifts are of interest: the g chart and the t chart. These charts are particularly useful for situations where events occur infrequently and traditional Shewhart control charts may not be as effective. The g and t charts belong to the broader category of rare event control charts and are designed to handle scenarios where monitoring time between events or the number of opportunities between events is more meaningful than tracking continuous data points. - -- **G Chart**: Used to monitor the number of opportunities (such as units produced or time intervals) between rare events. It is particularly effective in processes where defects are infrequent and the main interest is in the distance between these occurrences. - -- **T Chart**: Used to monitor the time between rare events. This chart is suitable for processes where time intervals are of interest, such as monitoring the time between machine breakdowns, customer complaints, or other rare events. - -The g and t charts are essential tools in Statistical Quality Control (SQC) when dealing with rare events, providing a more sensitive approach to detect shifts in processes where events do not occur frequently enough for traditional methods to be effective. - -## Input --------- - -### Assignment box --------- -- Variable: either the timepoint when the event took place or the intervals beetween events. -- Stages: a column to split the analysis into multiple parts by assigning a stage to each subgroup. - -### Data type -------- -- Date/time: if your data specify a timepoint at which the event took place. - - Structure: the structure of your timepoints, either only dates (e.g., 01/12), only time (e.g., 12:30), date and time (e.g., 01/12 12:30), or time and date (e.g., 12:30 01/12). - - Date format: the date format in your data, where D = day, M = month, Y = year, thus, DMY = Day Month Year, for example 30/12/2024. The symbol used as separator does not matter. - - Time format: the time format in your data, where H = hour, M = minute, S = second, thus, HMS = Hour Minute Second, for example 01:02:03. The symbol used as separator does not matter. Ip and IpM refer to integer hours and integer hours with minutes, for example, 12pm or 12:30pm. -- Interval between events: if your data specify the time or number of opportunities between events. - - Interval type: the unit in which your interval is expressed. Opportunities, hours (decimal) and days (decimal) are read as is, where times are treated as decimal, so 1.25 hours = 1 hour 15 minutes. If you select time as interval type, you will need to specify the time format, as explained above. - -### Chart options --------- -- G chart: select to display a G chart. - - Proportion estimated from data: the proportion is calculated from the data and used for all other calculations of the G chart. - - Proportion historical: a historical proportion value is used for all other calculations of the G chart. - -- T chart: select to display a T chart. - - Based on Weibull/exponential distribution: the distribution function that used to calculate the control limits in the T chart. - - Distribution parameters estimed from data: the distribution parameters for the Weibull/exponentital distribution are calculated from the data (best fit) and used for all other calculations of the T chart. - - Distribution parameters historical: historical distribution parameters for the Weibull/exponentital distribution are provided and used for all other calculations of the T chart. - -## Output --------- -### Charts --------- -- G chart: A graphical representation showing the number of time units or opportunities between rare events, highlighting any deviations from expected intervals that might indicate a process shift. - -- T chart: A graphical representation showing the time intervals between rare events, allowing for easy identification of shifts in the process that could signify increased risk or process degradation. - -### Out-of-control Signals -------- - -#### JASP Default Tests - -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). - -#### Custom Test Selection -Select manually which tests you want to apply and modify them as desired: - -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - N consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of N consecutive points (trend). -- Test 8: Oscillation - N points in a row are alternating increase and decrease (oscillation). -- Test 9: Benneyan test - N points in a row are equal to 0 (Benneyan test). - - - -## References --------- -- Montgomery, D. C. (2009). *Introduction to Statistical Quality Control*. John Wiley & Sons. - -## R Packages -------- -- ggplot2 -- qcc -- jaspGraphs -- ggrepel diff --git a/inst/help/timeWeightedCharts.md b/inst/help/timeWeightedCharts.md deleted file mode 100644 index 35a03cddf..000000000 --- a/inst/help/timeWeightedCharts.md +++ /dev/null @@ -1,83 +0,0 @@ -Time Weighted Charts -========================== -Two very effective alternatives to the Shewhart control chart may be used when small process shifts are of interest: the cumulative sum (CUSUM) control chart, and the exponentially weighted moving average (EWMA) control chart. CUSUM and EWMA control charts are excellent alternatives to the Shewhart control chart for phase II process monitoring situations. Collectively, the CUSUM and EWMA control chart are sometimes called time-weighted control charts. - -The cumulative sum chart and the exponentially weighted moving average (EWMA) charts are also monitors the mean of the process, but the basic difference is unlike X-bar charts they consider the previous value means at each point. Moreover, these charts are considered as a reliable estimate when correct standard deviation exists. - -## CUSUM control chart --------- -### Features of cumulative sum (CUSUM) control charts --------- -A CUSUM control chart is essentially a running total of deviations from some preselected reference value. The mean of any group of consecutive values is represented visually by the current slope of the graph. The basic advantage of a CUSUM chart is that it is more sensitive to small shifts of the process mean when compared to the Shewhart control charts. - -### When to use --------- -- The false alarm rate of a Shewhart control chart is too high. -- The process rate is so high that false alarms are hardly acceptable. -- Small process changes (less than one sigma) must be detected quickly. -- Automation is available to update the chart in real time. - -In general, the underlying distribution is supposed to be normal, but CUSUM control charts can be used as well for binomial and Poisson distributions for modelling nonconformities and fraction nonconforming. - -### Assumptions --------- -The basic assumptions for a CUSUM control chart are: - -1. the measurements must be sequential or time sequenced; -2. the measurements are independent of each other – one data point does not determine or impact the next data point; -3. the measurements are approximately normally distributed, or the sample size of each plotted point is large enough so the average yields an approximate normal distribution. - -## Input --------- - -### Assignment box --------- -- Measurements: the observations collected from a process. -- Subgroups ("Column" option): the subgroup that each observation is assigned to, if all observations are in the same column. -- Timestamp ("Row" option): optinal subgroup names for each row of observations, that are used as x-axis labels. -- Stages: a column to split the analysis into multiple parts by assigning a stage to each subgroup. In "row" format, only one stage per subgroup is possible. In "column" format, only the first specified stage for each subgroup is considered. - -### Specifying subgroups in "Column" format -------- -- Through grouping variable: a single-column subgroup variable is specified that assigns each observation to a subgroup. - - Grouping method: if identical values of the subgroup variable are not adjacent in the dataset (top to bottom), there are two methods to handle this. If the grouping method is "Subgroup value change", only series of identical and adjacent subgroup values form a group. If the grouping method is "Same subgroup value", all identical subgroup values form a group, regardless of their adjacency. For instance, if the values of the subgroup variable are [A, A, B, B, A], the method "Subgroup value change" would yield three groups: [A, A], [B, B] and [A]. The method "Same subgroup value" would yield two groups, [A, A, A] and [B, B]. -- Subgroup size: the observations are assigned in the order of appearence (from top to bottom) to subgroups of the specified size. If the number of observations cannot be equally divided into subgroups of the specified size, the last subgroup has the size of the remaining observations. - -### Chart options --------- -- Target: Value to use as a target - -- Average run length (ARL): The number of plotted points until special cause variation is signalled is the average run length (ARL). It is a function of the process mean shift. - -- Number of standard deviations (*h*): Standardised decision interval - -- Shift size (*k*): *k* is usually called the reference value (or the allowance, or the slack value), and it is often chosen about halfway between the target (µ0) and the out‑of‑control value of the mean (µ1) that we are interested in detecting quickly. - -The proper selection of these two parameters (*h* and *k*) is quite important, as it has substantial impact on the performance of the CUSUM. Calculate the reference value or allowable slack, since CUSUM chart is used to monitor the small shifts, generally 0.5 to 1 σ will be considered. *k* = 0.5 σ. Compute decision interval *h*, generally ± 4 σ will be considered (some place ± 5 σ also be used). - -## Recommendations for CUSUM design --------- -The tabular CUSUM is designed by choosing values for the reference value *k* and the decision interval *h*. It is usually recommended that these parameters be selected to provide good average run length performance. There have been many analytical studies of CUSUM ARL performance. Based on these studies, we may give some general recommendations for selecting *h* and *k*. Define H = *h* σ and K = *k* σ, where σ is the standard deviation of the sample variable used in forming the CUSUM. Using *h* = 4 or *h* = 5 and *k* = ½ will generally provide a CUSUM that has good ARL properties against a shift of about 1 σ in the process mean. - -## Output --------- -### Charts --------- -CUSUM statistics are cumulative deviations from the target, or nominal. - -Graphical display for the tabular CUSUM. These charts are sometimes called CUSUM status charts. They are constructed by plotting C+i and C−i versus the sample number. - -## References --------- -- Page, E.S. (1954), *Continuous inspection schemes*, Biometrika, Vol. 41, No. 1-2, pp. 100-115 -- Roberts, S.W. (1959), *Control chart tests based on geometric moving averages*, Technometrics, Vol. 1, No. 3, pp. 239-250 -- Automotive Industry Action Group (July 2005), *Statistical process control (SPC) – Reference manual*, AIAG. -- International Organization for Standardization, *Control charts – Part 4: Cumulative sum charts*, ISO 7870-4:2021 (E) -- Montgomery D. C. (2013), *Introduction to statistical quality control (7th Ed.)*, John Wiley & Sons, Inc , Hoboken (NJ) - -## R Packages -------- -- ggplot2 -- qcc -- jaspGraphs -- ggrepel diff --git a/inst/help/variablesChartsIndividuals.md b/inst/help/variablesChartsIndividuals.md deleted file mode 100644 index ef6f9b75a..000000000 --- a/inst/help/variablesChartsIndividuals.md +++ /dev/null @@ -1,98 +0,0 @@ -Variable Charts Indviduals -========================== -A control chart is also called a Shewhart control chart. A control chart is a graph used to study how a process changes over time. The data are plotted in time order. Each chart always has a central line for the average, an upper line for the upper control limit, and a lower line for the lower control limit. These lines are determined based on historical data. By comparing current data to these lines, conclusions can be drawn about whether the process variation is consistent (in control) or is unpredictable (out of control, and affected by special causes of variation). Control charts for variables data are always used in pairs. The top chart monitors the average, or the centring of the data from the process. The bottom chart monitors the range, or the spread of the distribution. - -For low volume production runs the best alternative for X-bar & R and X-bar & s control charts is an individual moving Range (X-mR) chart. -An X-mR chart is also useful when there is no obvious source of variation related to a rational subgroup or when there is no practical subgroup. -An individual moving Range (X-mR) chart is used in the absence of subgroups or/and the source of process variation is unclear. It is therefore an alternative to the X-bar & R and X-bar & s control charts when analyzing small-scale production data. - -An Autocorrelation chart models the pairwise correlation of values returned from a certain function. The correlation can be based on values following one another (lag of 1) or -on every second value (lag of 2). - -## Assumptions -------- -The assumptions associated with the I-mR chart are: -- sequential or time-sequenced measurements must be used. -- the data points are independent of one another- a given data point is unrelated to the next. -- the data must be approximately normally distributed. - -The assumptions associated with the Autocorrelation chart are: -- the data points are dependent on one another -- a given data point is related to the next. - -## Input -------- -### Assignment Box -- Variables: the observations collected from a process. - -### Options -- X-mR chart: - - Moving range length: the size of the range between observations. -- Autocorrelation: - - Number of lags: the number of lags to be used. - - Confidence size: the size of the confidence interval used to calculate the limits. - -## Output -------- -### Charts -------- -- X-mR chart: outlines the process's value and moving range (MR) over time. -- Autocorrelation: outlines the autocorrelation over the lags. - -### Out-of-control Signals -------- - -#### JASP Default Tests -_Statistical process control handbook page 23:_ - -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - Seven consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of seven consecutive points (trend). -- Test 4: Increasing variation - Two out of three consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 5: Reducing variation - Hugging the central line, this is indicated when 15 consecutive points are within the one sigma limits (reducing variation). -- Test 6: Bimodal distribution - Eight consecutive points are beyond the one sigma limits, regardless of which side of the central line (bimodal distribution). - -#### Nelson Laws -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - Nine consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of six consecutive points (trend). -- Test 4: Increasing variation - Two out of three consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 5: Reducing variation - Hugging the central line, this is indicated when 15 consecutive points are within the one sigma limits (reducing variation). -- Test 6: Bimodal distribution - Eight consecutive points are beyond the one sigma limits, regardless of which side of the central line (bimodal distribution). -- Test 7: Slightly increasing variation - Four out of five consecutive points beyond the warning (one sigma) limits (slightly increasing variation). -- Test 8: Oscillation - Fourteen points in a row are alternating increase and decrease (oscillation). - -#### Western Electric Rules -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - Eight consecutive points above or below the central line (mean shift). -- Test 4: Increasing variation - Two out of three consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 7: Slightly increasing variation - Four out of five consecutive points beyond the warning (one sigma) limits (slightly increasing variation). - -#### Custom Test Selection -Select manually which tests you want to apply and modify them as desired: - -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - N consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of N consecutive points (trend). -- Test 4: Increasing variation - N out of N+1 consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 5: Reducing variation - Hugging the central line, this is indicated when N consecutive points are within the one sigma limits (reducing variation). -- Test 6: Bimodal distribution - N consecutive points are beyond the one sigma limits, regardless of which side of the central line (bimodal distribution). -- Test 7: Slightly increasing variation - N out of N+1 consecutive points beyond the warning (one sigma) limits (slightly increasing variation). -- Test 8: Oscillation - N points in a row are alternating increase and decrease (oscillation). - -Only Test 1, Test 2, Test 3 and Test 8 will be applied to the moving range chart. - - -## References -------- -- Duncan, A.J. (1986), *Quality control and industrial statistics*, Richard D. Irwin, Inc. -- Automotive Industry Action Group, *Statistical Process Control – Reference Manual* (July 2005, 2nd Edition) - - -## R Packages -------- -- ggplot2 -- qcc -- jaspGraphs -- ggrepel -- stats \ No newline at end of file diff --git a/inst/help/variablesChartsSubgroups.md b/inst/help/variablesChartsSubgroups.md deleted file mode 100644 index bbc65a4bd..000000000 --- a/inst/help/variablesChartsSubgroups.md +++ /dev/null @@ -1,94 +0,0 @@ -Variable Charts Subgroups -========================== -Control charts are a set of tools used to model the variation of a process, thereby indicating its stability and establishing a state of statistical control. - -Variable charts for subgroups are used to monitor the behavior of a dimensional variable. -Depending on the data collected from a given process, the analysis can be executed using historical data (Phase 2) or new data (Phase 1). - -## Input -------- -### Data Format -Data can be in the form of all observations in one column ("Single column") or across rows, with one group per row ("Across rows"). - -### Assignment Box -------- -- Measurements: the observations collected from a process. -- Subgroups ("Column" option): the subgroup that each observation is assigned to, if all observations are in the same column. -- Timestamp ("Row" option): optinal subgroup names for each row of observations, that are used as x-axis labels. -- Stages: a column to split the analysis into multiple parts by assigning a stage to each subgroup. In "row" format, only one stage per subgroup is possible. In "column" format, only the first specified stage for each subgroup is considered. - -### Specifying Subgroups in "Column" Format -------- -- Through grouping variable: a single-column subgroup variable is specified that assigns each observation to a subgroup. - - Grouping method: if identical values of the subgroup variable are not adjacent in the dataset (top to bottom), there are two methods to handle this. If the grouping method is "Subgroup value change", only series of identical and adjacent subgroup values form a group. If the grouping method is "Same subgroup value", all identical subgroup values form a group, regardless of their adjacency. For instance, if the values of the subgroup variable are [A, A, B, B, A], the method "Subgroup value change" would yield three groups: [A, A], [B, B] and [A]. The method "Same subgroup value" would yield two groups, [A, A, A] and [B, B]. -- Manual subgroup size: the observations are assigned in the order of appearence (from top to bottom) to subgroups of the specified size. If the number of observations cannot be equally divided into subgroups of the specified size, the last subgroup has the size of the remaining observations. - -### Handling Unequal Subgroup Sizes -------- -The size of the subgroups is relevant for the calculation of the process variance and subsequently the calculation of the control limits. If not all subgroups are of the same size, there are two options to handle this: -- Assume equal subgroup sizes: the control limits are calculated with the assumption that all subgroups have the same size, and the same control limits are calculated for all groups. In this case, the size of the largest subgroup is used for the calculation. -- Calculate with actual size: the control limits are calculated per subgroup and the actual subgroup sizes are used for the calculation. - -### Plotting Options -------- -- Warning limits: plots limits one and two standard deviations from the central line. -- Known parameters: enables the use of historic parameter values (Phase 2). - -## Output -### Charts -------- -- X-bar & R chart: plots the process mean (x-bar) and process range (R) over time. -- X-bar & s chart: plots the process mean (x-bar) and process standard deviation (s) over time. - -### Out-of-control Signals -------- - -#### JASP Default Tests -_Statistical process control handbook page 23:_ - -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - Seven consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of seven consecutive points (trend). - -#### Nelson Laws -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - Nine consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of six consecutive points (trend). -- Test 4: Increasing variation - Two out of three consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 5: Reducing variation - Hugging the central line, this is indicated when 15 consecutive points are within the one sigma limits (reducing variation). -- Test 6: Bimodal distribution - Eight consecutive points are beyond the one sigma limits, regardless of which side of the central line (bimodal distribution). -- Test 7: Slightly increasing variation - Four out of five consecutive points beyond the warning (one sigma) limits (slightly increasing variation). -- Test 8: Oscillation - Fourteen points in a row are alternating increase and decrease (oscillation). - -#### Western Electric Rules -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - Eight consecutive points above or below the central line (mean shift). -- Test 4: Increasing variation - Two out of three consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 7: Slightly increasing variation - Four out of five consecutive points beyond the warning (one sigma) limits (slightly increasing variation). - -#### Custom Test Selection -Select manually which tests you want to apply and modify them as desired: - -- Test 1: Beyond limit - One point beyond the control limits (sporadic issue). -- Test 2: Shift - N consecutive points above or below the central line (mean shift). -- Test 3: Trend - A run up or down of N consecutive points (trend). -- Test 4: Increasing variation - N out of N+1 consecutive points beyond the warning (two sigma) limits (increasing variation). -- Test 5: Reducing variation - Hugging the central line, this is indicated when N consecutive points are within the one sigma limits (reducing variation). -- Test 6: Bimodal distribution - N consecutive points are beyond the one sigma limits, regardless of which side of the central line (bimodal distribution). -- Test 7: Slightly increasing variation - N out of N+1 consecutive points beyond the warning (one sigma) limits (slightly increasing variation). -- Test 8: Oscillation - N points in a row are alternating increase and decrease (oscillation). - - -## References -------- -- Duncan, A.J. (1986), Quality control and industrial statistics, Richard D. Irwin, Inc., and Automotive Industry Action Group (July 2005), Statistical process control (SPC) - Reference manual, AIAG - - -## R Packages -------- -- ggplot2 -- qcc -- jaspGraphs -- ggrepel -- tidyr -- tibble diff --git a/inst/qml/attributesCharts.qml b/inst/qml/attributesCharts.qml index aaeeea7cf..ef70baa0d 100644 --- a/inst/qml/attributesCharts.qml +++ b/inst/qml/attributesCharts.qml @@ -5,7 +5,25 @@ import JASP.Controls Form { columns: 1 - + + info: qsTr("Control charts for attributes monitor count-based data obtained by noting the presence or absence of a characteristic in items of a subgroup. p and np charts are based on the binomial distribution (defectives); u and c charts on the Poisson distribution (defects). Laney p' and u' charts adjust the limits for overdispersion when sample sizes are variable and large. The X-mR chart uses empirical limits and makes no distributional assumption.") + + infoBottom: "## " + qsTr("Assumptions") + "\n" + + "- " + qsTr("p/np charts: data approximately binomial; u/c charts: data approximately Poisson.") + "\n" + + "- " + qsTr("np/c charts require a constant subgroup size; p/u charts allow variable or constant sizes.") + "\n" + + "- " + qsTr("Laney p'/u': data not modelled by a binomial or Poisson distribution and a variable subgroup size (overdispersion).") + "\n" + + "\n---\n## " + qsTr("Output") + "\n" + + "- " + qsTr("Defectives charts (binary defective/not defective): p, np, and Laney p' charts.") + "\n" + + "- " + qsTr("Defects charts (multiple defects per unit): u, c, and Laney u' charts.") + "\n" + + "- " + qsTr("X-mR chart: the process values (individuals) and moving range (mR) over time.") + "\n" + + "- " + qsTr("Out-of-control signals flag special-cause variation; the first three signals always apply, and only signal 1 applies to the X-mR chart when its assumptions are violated.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.") + "\n" + + "- " + qsTr("Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual (2nd ed.). AIAG.") + "\n" + + "- " + qsTr("International Organization for Standardization (2023). Control charts – Part 2: Shewhart control charts. ISO 7870-2:2023.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- qcc\n- jaspGraphs\n- ggrepel\n" + VariablesForm { preferredHeight: jaspTheme.smallDefaultVariablesFormHeight @@ -21,6 +39,7 @@ Form title: qsTr("Defectives/Defects") allowedColumns: ["scale"] singleVariable: true + info: qsTr("The number of items that do or do not possess the attribute (defectives), or the number of defects per subgroup.") } AssignedVariablesList @@ -29,6 +48,7 @@ Form title: qsTr("Total") allowedColumns: ["scale"] singleVariable: true + info: qsTr("The sample (subgroup) size of each observation.") } AssignedVariablesList @@ -38,23 +58,26 @@ Form id: timeStamp singleVariable: true allowedColumns: ["nominal"] + info: qsTr("Optional column used as x-axis labels.") } } Group { - + RadioButtonGroup { name: "attributesChart" title: qsTr("Charts for Attributes") columns: 3 + info: qsTr("Type of attributes chart to display.") RadioButton { name: "defectives" label: qsTr("Defectives") checked: true + info: qsTr("Charts for products that are either defective or not defective (binary).") RadioButtonGroup { @@ -65,18 +88,21 @@ Form name: "npChart" label: qsTr("np chart") checked: true + info: qsTr("Charts the number of non-conforming (defective) items per subgroup; subgroup size is constant.") } RadioButton { name: "pChart" label: qsTr("p chart") + info: qsTr("Charts the proportion of non-conforming (defective) items per subgroup; subgroup size may be variable.") } RadioButton { name: "laneyPPrimeChart" label: qsTr("Laney p'(p-prime) chart") + info: qsTr("Charts the proportion of defectives per subgroup with control limits adjusted for overdispersion.") } } } @@ -85,28 +111,32 @@ Form { value: "defects" label: qsTr("Defects") + info: qsTr("Charts for products that can have multiple defects per unit.") RadioButtonGroup { name: "attributesChartDefectsChartType" - + RadioButton { value: "cChart" label: qsTr("c chart") checked: true + info: qsTr("Charts the number of defects per subgroup; subgroup size is constant.") } RadioButton { value: "uChart" label: qsTr("u chart") + info: qsTr("Charts the proportion of defects per subgroup; subgroup size may be variable.") } RadioButton { value: "laneyUPrimeChart" label: qsTr("Laney u'(u-prime) chart") + info: qsTr("Charts the proportion of defects per subgroup with control limits adjusted for overdispersion.") } } } @@ -115,6 +145,7 @@ Form { value: "xmr" label: qsTr("X-mR chart") + info: qsTr("Charts the process values (individuals) and moving range (mR) over time using empirical limits.") } } } @@ -128,6 +159,7 @@ Form name: "report" label: qsTr("Show Report") columns: 1 + info: qsTr("Display a formatted report of the attribute control charts combining the selected metadata.") CheckBox { @@ -135,6 +167,7 @@ Form label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, name, appraiser, ID, etc.) in the report.") CheckBox { diff --git a/inst/qml/common/ControlChartTests.qml b/inst/qml/common/ControlChartTests.qml index 48fb40f86..a54e0ecc8 100644 --- a/inst/qml/common/ControlChartTests.qml +++ b/inst/qml/common/ControlChartTests.qml @@ -20,6 +20,7 @@ import JASP Group { title: qsTr("Tests for control charts") + info: qsTr("Out-of-control tests used to flag special-cause variation. Choose a predefined test set (JASP defaults, Nelson laws, or Western Electric rules) or a custom selection in which each test can be individually enabled and its parameter adjusted.") DropDown { @@ -27,6 +28,7 @@ Group label: qsTr("Test set") id: testSet indexDefaultValue: 0 + info: qsTr("Predefined set of out-of-control tests, or a custom selection that can be individually modified.") values: [ { label: qsTr("JASP"), value: "jaspDefault"}, { label: qsTr("Nelson laws"), value: "nelsonLaws"}, @@ -42,6 +44,7 @@ Group label: qsTr("One point outside of control limits - Test 1: Beyond limit") checked: true visible: testSet.currentValue == "custom" + info: qsTr("Test 1 (beyond limit): flag one point beyond the control limits (a sporadic issue).") } CheckBox @@ -51,6 +54,7 @@ Group checked: true visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 2 (shift): flag N consecutive points on the same side of the central line (a mean shift).") IntegerField { @@ -69,6 +73,7 @@ Group checked: testSet.currentValue != "westernElectric" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 3 (trend): flag N consecutive points all increasing or all decreasing (a trend).") IntegerField { @@ -87,6 +92,7 @@ Group checked: true visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 4 (increasing variation): flag when k out of k+1 points are more than two standard deviations from the central line on the same side.") IntegerField { @@ -105,6 +111,7 @@ Group checked: testSet.currentValue == "nelsonLaws" | testSet.currentValue == "custom" | testSet.currentValue == "jaspDefault" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 5 (reducing variation): flag N consecutive points within one standard deviation of the central line (hugging the central line).") IntegerField { @@ -123,6 +130,7 @@ Group checked: testSet.currentValue == "nelsonLaws" | testSet.currentValue == "custom" | testSet.currentValue == "jaspDefault" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 6 (bimodal distribution): flag N consecutive points beyond one standard deviation from the central line on either side.") IntegerField { @@ -141,6 +149,7 @@ Group checked: testSet.currentValue != "jaspDefault" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 7 (slightly increasing variation): flag when k out of k+1 points are more than one standard deviation from the central line on the same side.") IntegerField { @@ -159,6 +168,7 @@ Group checked: testSet.currentValue == "nelsonLaws" | testSet.currentValue == "custom" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 8 (oscillation): flag N consecutive points alternating up and down.") IntegerField { diff --git a/inst/qml/common/ShowAndExportDesign.qml b/inst/qml/common/ShowAndExportDesign.qml index b15f3c0b2..6b14079de 100644 --- a/inst/qml/common/ShowAndExportDesign.qml +++ b/inst/qml/common/ShowAndExportDesign.qml @@ -21,11 +21,13 @@ Group { columns : 1 - CheckBox { name: "displayDesign"; label: qsTr("Display design"); checked: true - CheckBox{ name: "codedOutput"; label: qsTr("Coded units")} + CheckBox { name: "displayDesign"; label: qsTr("Display design"); checked: true + info: qsTr("Display the design table in the output. One of the preset designs must be selected in the design table.") + CheckBox{ name: "codedOutput"; label: qsTr("Coded units"); info: qsTr("Display the factor levels in coded units rather than the given units.")} RadioButtonGroup { name: "runOrder" + info: qsTr("Whether the runs in the design are sorted by run order or by standard order.") RadioButton { @@ -52,6 +54,7 @@ Group placeholderText: qsTr("e.g. design.csv") filter: "*.csv" save: true + info: qsTr("Name and path of the .csv file to save the design to.") } CheckBox @@ -61,6 +64,7 @@ Group label: qsTr("Export design") Layout.leftMargin: 25 * preferencesModel.uiScale enabled: exportDesignFile.value != "" + info: qsTr("Save the selected design to the specified .csv file.") } } diff --git a/inst/qml/definitiveScreeningAnalysis.qml b/inst/qml/definitiveScreeningAnalysis.qml index 5527a2fd1..3cbd32a89 100644 --- a/inst/qml/definitiveScreeningAnalysis.qml +++ b/inst/qml/definitiveScreeningAnalysis.qml @@ -21,6 +21,8 @@ Form { columns: 1 + info: qsTr("Analyse a definitive screening design to identify the influential factors. A regression model is fitted to the response and the standardised effects are assessed against the chosen alpha level.") + VariablesForm { AvailableVariablesList @@ -34,12 +36,14 @@ Form name: "DSAresponse" singleVariable: true label: qsTr("Response variable") + info: qsTr("The measured response variable of the design.") } AssignedVariablesList { name: "DSAassignedFactors" label: qsTr("Assigned factors") + info: qsTr("The factor columns of the design.") } AssignedVariablesList @@ -48,6 +52,7 @@ Form name: "DSArunOrder" singleVariable: true label: qsTr("Run order") + info: qsTr("The column specifying the run order of the design.") } } @@ -58,6 +63,7 @@ Form defaultValue: 0.05 min: 0.01 max: 0.20 + info: qsTr("Alpha (significance) level used to assess the effects.") } CheckBox @@ -65,6 +71,7 @@ Form debug: true name: "DSparetoPlot" label: qsTr("Pareto plot of standardized effects") + info: qsTr("Show a Pareto plot of the standardised effects.") } Group @@ -76,12 +83,14 @@ Form { name: "DSresNorm" label: qsTr("Normal probability plot of residuals") + info: qsTr("Show a normal probability plot of the residuals.") } CheckBox { name: "DSresHist" label: qsTr("Histogram of residuals") + info: qsTr("Show a histogram of the residuals.") } CheckBox @@ -89,6 +98,7 @@ Form debug: true name: "DSresFitted" label: qsTr("Residuals vs fitted value") + info: qsTr("Show a plot of the residuals against the fitted values.") } CheckBox @@ -96,6 +106,7 @@ Form debug: true name: "DSresOrder" label: qsTr("Residuals vs run order") + info: qsTr("Show a plot of the residuals against the run order.") } } } diff --git a/inst/qml/doeAnalysis.qml b/inst/qml/doeAnalysis.qml index c938e4228..4644a7a2d 100644 --- a/inst/qml/doeAnalysis.qml +++ b/inst/qml/doeAnalysis.qml @@ -6,12 +6,21 @@ import JASP Form { + info: qsTr("Analyse a factorial or response surface design to identify influential factors and optimal response conditions. This uncovers which variables significantly impact the outcome and how they interact, supporting systematic process optimisation and quality improvement.") + + infoBottom: "## " + qsTr("References") + "\n" + + "- " + qsTr("Box, G. E. P., & Wilson, K. B. (1951). On the experimental attainment of optimum conditions. Journal of the Royal Statistical Society, 13(1), 1-45.") + "\n" + + "- " + qsTr("Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- jaspGraphs\n- car\n" + DropDown { id: designType name: "designType" label: qsTr("Design type") indexDefaultValue: 0 + info: qsTr("The type of experimental design to analyse: a factorial design or a response surface design.") values: [ { label: qsTr("Factorial design"), value: "factorialDesign"}, { label: qsTr("Response surface design"), value: "responseSurfaceDesign"} @@ -34,18 +43,19 @@ Form allowedColumns: ["scale"] label: qsTr("Responses") height: 50 * preferencesModel.uiScale + info: qsTr("The measured outcome variable(s) of the process under investigation.") } - + DropDown { name: "stepwiseMethodFactorial" label: qsTr("Method") - info: qsTr("Specify the order in which the predictors are entered into the model. A block of one or more predictors represents one step in the hierarchy. Note that the present release does not allow for more than one block. The backward and forward method are based on model AIC.") + info: qsTr("Specify the order in which the factors are entered into the model. A block of one or more factors represents one step in the hierarchy. Note that the present release does not allow for more than one block. The backward and forward method are based on model AIC.") values: [ - { label: qsTr("Enter"), info: qsTr("All predictors are entered into the model simultaneously.") ,value: "enter"}, - { label: qsTr("Backward"), info: qsTr("Starting with the full model, predictors are removed sequentially based on AIC."), value: "backward"}, - { label: qsTr("Forward"), info: qsTr("Starting with the intercept-only model, predictors are entered sequentially based on AIC.") , value: "forward"}, - { label: qsTr("Stepwise"), info: qsTr("Starting with the intercept-only model, predictors are entered or removed sequentially based on AIC, combining both forward addition and backward elimination at each step.") , value: "both"} + { label: qsTr("Enter"), info: qsTr("All factors are entered into the model simultaneously.") ,value: "enter"}, + { label: qsTr("Backward"), info: qsTr("Starting with the full model, factors are removed sequentially based on AIC."), value: "backward"}, + { label: qsTr("Forward"), info: qsTr("Starting with the intercept-only model, factors are entered sequentially based on AIC.") , value: "forward"}, + { label: qsTr("Stepwise"), info: qsTr("Starting with the intercept-only model, factors are entered or removed sequentially based on AIC, combining both forward addition and backward elimination at each step.") , value: "both"} ] } @@ -56,6 +66,7 @@ Form allowedColumns: ["nominal"] label: qsTr("Discrete factors") height: 75 * preferencesModel.uiScale + info: qsTr("The columns corresponding to the discrete factors in the design.") } AssignedVariablesList @@ -65,6 +76,7 @@ Form allowedColumns: ["scale"] label: qsTr("Continuous factors") height: 75 * preferencesModel.uiScale + info: qsTr("The columns corresponding to the continuous factors in the design.") } AssignedVariablesList @@ -74,6 +86,7 @@ Form label: qsTr("Covariates") allowedColumns: ["scale"] height: 50 * preferencesModel.uiScale + info: qsTr("Continuous columns that are not analysed for interaction effects and are excluded from effect plots (unlike continuous factors).") } AssignedVariablesList @@ -82,6 +95,7 @@ Form singleVariable: true label: qsTr("Blocks") allowedColumns: ["nominal"] + info: qsTr("The block column. Blocks are not analysed for interaction effects and are excluded from effect plots (unlike discrete factors).") } } @@ -101,18 +115,19 @@ Form allowedColumns: ["scale"] label: qsTr("Responses") height: 50 * preferencesModel.uiScale + info: qsTr("The measured outcome variable(s) of the process under investigation.") } - + DropDown { name: "stepwiseMethodResponseSurface" label: qsTr("Method") - info: qsTr("Specify the order in which the predictors are entered into the model. A block of one or more predictors represents one step in the hierarchy. Note that the present release does not allow for more than one block.") + info: qsTr("Specify the order in which the factors are entered into the model. A block of one or more factors represents one step in the hierarchy. Note that the present release does not allow for more than one block.") values: [ - { label: qsTr("Enter"), info: qsTr("All predictors are entered into the model simultaneously.") ,value: "enter"}, - { label: qsTr("Backward"), info: qsTr("Starting with the full model, predictors are removed sequentially based on AIC."), value: "backward"}, - { label: qsTr("Forward"), info: qsTr("Starting with the intercept-only model, predictors are entered sequentially based on AIC.") , value: "forward"}, - { label: qsTr("Stepwise"), info: qsTr("Starting with the intercept-only model, predictors are entered or removed sequentially based on AIC, combining both forward addition and backward elimination at each step.") , value: "both"} + { label: qsTr("Enter"), info: qsTr("All factors are entered into the model simultaneously.") ,value: "enter"}, + { label: qsTr("Backward"), info: qsTr("Starting with the full model, factors are removed sequentially based on AIC."), value: "backward"}, + { label: qsTr("Forward"), info: qsTr("Starting with the intercept-only model, factors are entered sequentially based on AIC.") , value: "forward"}, + { label: qsTr("Stepwise"), info: qsTr("Starting with the intercept-only model, factors are entered or removed sequentially based on AIC, combining both forward addition and backward elimination at each step.") , value: "both"} ] } @@ -123,6 +138,7 @@ Form allowedColumns: ["scale"] label: qsTr("Continuous factors") height: 100 * preferencesModel.uiScale + info: qsTr("The columns corresponding to the continuous factors in the design.") } AssignedVariablesList @@ -132,6 +148,7 @@ Form allowedColumns: ["nominal"] label: qsTr("Discrete factors") height: 100 * preferencesModel.uiScale + info: qsTr("The columns corresponding to the discrete factors in the design.") } AssignedVariablesList @@ -140,6 +157,7 @@ Form singleVariable: true label: qsTr("Blocks") allowedColumns: ["nominal"] + info: qsTr("The block column. Blocks are not analysed for interaction effects and are excluded from effect plots.") } } @@ -155,18 +173,21 @@ Form name: "codeFactorsMethod" id: codeFactorsMethod title: qsTr("Factor levels") + info: qsTr("How the low and high levels of the factors are determined (needed for the ordering of contrasts and to identify alpha points in response surface designs).") RadioButton { name: "automatic" label: qsTr("Automatically detect low/high") checked: true + info: qsTr("Detect the low and high levels automatically (minimum/maximum for continuous factors, alphabetical ordering for discrete factors). May misidentify alpha values in response surface designs.") } RadioButton { name: "manual" label: qsTr("Manually specify low/high") + info: qsTr("Show all factors to manually specify their low and high levels.") } @@ -228,6 +249,7 @@ Form name: "tableAlias" label: "Use alias names" checked: true + info: qsTr("Assign alias names to factors. Useful when factors have long names.") } CheckBox @@ -235,6 +257,7 @@ Form name: "tableEquation" checked: true label: qsTr("Show regression equation") + info: qsTr("Display the regression coefficients as an equation predicting the response.") } CheckBox @@ -242,6 +265,7 @@ Form name: "codeFactors" checked: true label: qsTr("Display results in coded units") + info: qsTr("Display the results in coded units, standardising all factor levels between -1 and 1.") } } } @@ -249,6 +273,7 @@ Form Section { title: qsTr("Model") + info: qsTr("Determine which terms are included in the model.") CheckBox { @@ -257,6 +282,7 @@ Form label: qsTr("Define by highest order interaction term") visible: designType.currentValue == "factorialDesign" checked: true + info: qsTr("Define the model by the highest order of interaction terms to include.") IntegerField { @@ -265,6 +291,7 @@ Form min: 1 max: (fixedFactorsFactorial.count + continuousFactorsFactorial.count) > 1 ? (fixedFactorsFactorial.count + continuousFactorsFactorial.count) : 999 label: qsTr("Highest order interaction term") + info: qsTr("The highest order of interaction term included in the model.") } } @@ -275,6 +302,7 @@ Form label: qsTr("Select predefined model") visible: designType.currentValue == "responseSurfaceDesign" checked: designType.currentValue == "responseSurfaceDesign" + info: qsTr("Use one of the predefined models for analysing response surface designs.") DropDown { @@ -282,6 +310,7 @@ Form name: "rsmPredefinedTerms" label: qsTr("Include following terms") indexDefaultValue: 3 + info: qsTr("Which terms to include in the predefined model.") values: [ { label: qsTr("Linear"), value: "linear"}, { label: qsTr("Linear and interaction terms"), value: "linearAndInteractions"}, @@ -303,13 +332,14 @@ Form source: designType.currentValue == "factorialDesign" ? ["continuousFactorsFactorial", "fixedFactorsFactorial"] : ["continuousFactorsResponseSurface", "fixedFactorsResponseSurface"] } - AssignedVariablesList - { - name: "modelTerms" - id: modelTerms - title: designType.currentValue == "factorialDesign" ? qsTr("Model terms") : qsTr("Main and interaction terms") + AssignedVariablesList + { + name: "modelTerms" + id: modelTerms + title: designType.currentValue == "factorialDesign" ? qsTr("Model terms") : qsTr("Main and interaction terms") listViewType: JASP.Interaction addInteractionsByDefault: false + info: qsTr("Manually specify the main effects and interaction terms included in the model.") //rowComponentTitle: designType.currentValue == "factorialDesign" ? "" : qsTr("Add squared term") //rowComponent: CheckBox { name: "squaredTerm"; checked: false; visible: designType.currentValue == "responseSurfaceDesign"} } @@ -328,11 +358,12 @@ Form source: "continuousFactorsResponseSurface" } - AssignedVariablesList - { - name: "squaredTerms" - id: squaredTerms - title: qsTr("Squared terms") + AssignedVariablesList + { + name: "squaredTerms" + id: squaredTerms + title: qsTr("Squared terms") + info: qsTr("Continuous factors to include as squared (quadratic) terms in the model.") } } @@ -351,30 +382,35 @@ Form { name: "plotNorm" label: qsTr("Normal probability plot") + info: qsTr("Show a normal probability plot of the residuals.") } CheckBox { name: "plotHist" label: qsTr("Histogram") + info: qsTr("Show a histogram of the residuals.") } CheckBox { name: "plotFitted" label: qsTr("Residuals vs. fitted values") + info: qsTr("Show a plot of the residuals against the fitted values.") } CheckBox { name: "plotRunOrder" label: qsTr("Residuals vs. run order") + info: qsTr("Show a plot of the residuals against the run order.") } CheckBox { name: "fourInOneResidualPlot" label: qsTr("Residuals four-in-one plot") + info: qsTr("Show all four residual plots in a 2x2 matrix.") } } @@ -386,25 +422,29 @@ Form { name: "plotPareto" label: qsTr("Pareto plot of effects") + info: qsTr("Show a Pareto plot of the standardised effects.") } CheckBox { name: "normalEffectsPlot" label: qsTr("Normal plot of effects") + info: qsTr("Show a normal probability plot of the standardised effects.") } } CheckBox { - name: "contourSurfacePlot" + name: "contourSurfacePlot" label: qsTr("Contour/surface plots") + info: qsTr("Show a contour (2D) or surface (3D) plot of the fitted response.") RadioButtonGroup { name: "contourSurfacePlotType" id: contourSurfacePlotType title: qsTr("Plot type") + info: qsTr("Whether to show a 2D contour plot or a 3D surface plot.") RadioButton { @@ -434,10 +474,11 @@ Form } AssignedVariablesList - { - name: "contourSurfacePlotVariables" - allowedColumns: ["scale"] + { + name: "contourSurfacePlotVariables" + allowedColumns: ["scale"] title: qsTr("Plotting variables") + info: qsTr("The continuous factors plotted on the axes of the contour/surface plot.") } } @@ -453,6 +494,7 @@ Form value: 5 min: 2 max: 10 + info: qsTr("Number of divisions of the response surface in the contour/surface plot.") } Group @@ -468,6 +510,7 @@ Form max: 360 decimals: 0 visible: contourSurfacePlotType.value == "surfacePlot" + info: qsTr("Rotation angle of the surface plot in the vertical plane.") } Slider @@ -480,6 +523,7 @@ Form decimals: 0 vertical: false visible: contourSurfacePlotType.value == "surfacePlot" + info: qsTr("Rotation angle of the surface plot in the horizontal plane.") } } } @@ -490,6 +534,7 @@ Form { title: qsTr("Response optimizer") columns: 2 + info: qsTr("Find the factor settings that optimise one or more responses using desirability functions.") VariablesForm { @@ -510,6 +555,7 @@ Form id: responsesResponseOptimizer allowedColumns: ["scale"] label: qsTr("Included responses") + info: qsTr("The responses to include in the optimisation, each with a goal, bounds, target, weight, and importance.") width: 450 * preferencesModel.uiScale property int rowWidth: Math.round(width / 12) @@ -593,6 +639,7 @@ Form name: "optimizationSolutionTable" label: qsTr("Show optimal solution") checked: true + info: qsTr("Display the factor levels yielding the optimal response.") } CheckBox @@ -600,6 +647,7 @@ Form name: "optimizationPlot" label: qsTr("Show optimization plot") checked: true + info: qsTr("Display the optimisation plot showing the effect of each factor on the prediction.") DropDown { @@ -607,6 +655,7 @@ Form label: qsTr("Predict") id: optimizationPlotPredictionType indexDefaultValue: 0 + info: qsTr("Whether the plot predicts the response or the individual desirability.") values: [ { label: qsTr("Response"), value: "response"}, { label: qsTr("Individual desirability"), value: "individualDesirability"} @@ -619,6 +668,7 @@ Form id: optimizationPlotCustomParameters label: qsTr("Set input parameters manually") checked: false + info: qsTr("Manually set the input parameter values used in the optimisation plot.") } VariablesList @@ -647,6 +697,7 @@ Form id: responseOptimizerManualBounds label: qsTr("Set all bounds manually") checked: false + info: qsTr("Enable manual specification of the lower and upper bounds for all responses.") } CheckBox @@ -655,6 +706,7 @@ Form id: responseOptimizerManualTarget label: qsTr("Set all targets manually") checked: false + info: qsTr("Enable manual specification of the target value for all responses.") } } } @@ -671,6 +723,7 @@ Form label: qsTr("Histogram bin width type") id: binWidthType indexDefaultValue: 0 + info: qsTr("Method used to determine the histogram bin width.") values: [ { label: qsTr("Sturges"), value: "sturges"}, { label: qsTr("Scott"), value: "scott"}, @@ -688,6 +741,7 @@ Form min: 3 max: 10000 enabled: binWidthType.currentValue === "manual" + info: qsTr("Number of bins to use when the bin width type is set to Manual.") } } @@ -697,6 +751,7 @@ Form label: qsTr("Sum of squares type") id: sumOfSquaresType indexDefaultValue: 2 + info: qsTr("Method used to calculate the sums of squares in the ANOVA.") values: [ { label: qsTr("Type I"), value: "type1"}, { label: qsTr("Type II"), value: "type2"}, @@ -709,6 +764,7 @@ Form name: "squaredTermsCoded" label: qsTr("Use coded data to calculate squared terms") visible: designType.currentValue == "responseSurfaceDesign" + info: qsTr("Use coded (standardised) data when calculating the squared terms.") } } } diff --git a/inst/qml/doeFactorial.qml b/inst/qml/doeFactorial.qml index 1250440ad..3e6de2470 100644 --- a/inst/qml/doeFactorial.qml +++ b/inst/qml/doeFactorial.qml @@ -24,6 +24,8 @@ Form { columns: 1 + info: qsTr("A factorial design studies the effects of multiple factors by varying them simultaneously. Each factor is tested at different levels and in different combinations, allowing the examination of both the main effects of each factor and the interactions between factors. This analysis creates a factorial worksheet that can be exported and filled in with measured responses.") + Common.ShowAndExportDesign {} Group @@ -34,10 +36,12 @@ Form { IntegerField { id: numberOfCategorical; label: qsTr("Number of factors"); name: "numberOfCategorical"; min: 2; defaultValue: 3; max: 256 + info: qsTr("Total number of factors in the design.") property int intValue: defaultValue onValueChanged : { intValue = value !== "" ? value : 0 ; factorialDesignTypeSplitPlotNumberHardToChangeFactors.value = 1 } } IntegerField { id: numberOfLevels; label: qsTr("Maximum factor levels"); name: "categoricalNoLevels"; min: 2; defaultValue: 2; max: 20; enabled: factorialType.value == "generalFullFactorial" + info: qsTr("Maximum number of levels per factor. Only applicable to general full factorial designs; otherwise factors always have two levels.") property int intValue: defaultValue onValueChanged : { intValue = value !== "" ? value : 0} } @@ -47,6 +51,7 @@ Form { name: "factorialType" id: factorialType + info: qsTr("Type of factorial design to generate.") onValueChanged : {numberOfLevels.value = value !== "generalFullFactorial" ? 2 : 3} RadioButton @@ -55,6 +60,7 @@ Form name: "factorialTypeDefault" label: qsTr("2-level factorial (default generator)") checked: true + info: qsTr("Generate a two-level factorial design using the default generator.") } RadioButton @@ -62,6 +68,7 @@ Form id: factorialTypeSpecify name: "factorialTypeSpecify" label: qsTr("2-level factorial (specify generator)") + info: qsTr("Generate a two-level factorial design using a custom generator.") TextArea { @@ -71,6 +78,7 @@ Form visible: factorialTypeSpecify.checked title: qsTr("Design generator") textType: JASP.TextTypeSource + info: qsTr("Specify the generator for the design.") } } @@ -80,6 +88,7 @@ Form visible: numberOfCategorical.value > 3 | factorialRuns.currentIndex > 0 name: "factorialTypeSplit" label: qsTr("2-level split-plot (hard-to-change factors)") + info: qsTr("Generate a two-level split-plot design containing hard-to-change factors.") IntegerField { @@ -90,6 +99,7 @@ Form defaultValue: 1 min: 1 max: {numberOfCategorical.value > 3 ? 3 : numberOfCategorical.value - 1} + info: qsTr("Number of hard-to-change factors in the split-plot design.") } } @@ -98,6 +108,7 @@ Form id: generalFullFactorial name: "generalFullFactorial" label: qsTr("General full factorial") + info: qsTr("Generate a general full factorial design.") } } } @@ -121,6 +132,7 @@ Form name : "categoricalVariables" cornerText : qsTr("Factor") itemType : JASP.String + info : qsTr("Set the names of the factors and the value of each level. If a factor has fewer levels than the maximum, leave the remaining level cells empty.") function getColHeaderText(headerText, colIndex) { return colIndex === 0 ? qsTr("Name") : qsTr("Level %1").arg(colIndex); } function getRowHeaderText(headerText, rowIndex) { @@ -433,7 +445,7 @@ Form IntegerField { name: "selectedRow"; label: qsTr("debug selected row"); defaultValue: selectedDesign2.rowSelected; negativeValues: true; visible: false } IntegerField { name: "selectedCol"; label: qsTr("debug selected col"); defaultValue: selectedDesign2.colSelected; negativeValues: true; visible: false } - CheckBox { name: "showAliasStructure"; label: qsTr("Alias structure"); enabled: factorialTypeDefault.checked} + CheckBox { name: "showAliasStructure"; label: qsTr("Alias structure"); enabled: factorialTypeDefault.checked; info: qsTr("Display the alias structure of the generated design.")} SetSeed{} } @@ -451,6 +463,7 @@ Form enabled: !factorialTypeSplit.checked & !generalFullFactorial.checked label: qsTr("Blocks") indexDefaultValue: 0 + info: qsTr("Number of blocks in the design.") values: [ { label: qsTr("1"), value: "1"}, { label: qsTr("2"), value: "2"}, @@ -467,6 +480,7 @@ Form defaultValue: 0 min: 0 max: 2**(numberOfCategorical.value - 1) + info: qsTr("Number of centre points per block to add to the design.") } IntegerField @@ -476,6 +490,7 @@ Form defaultValue: 1 min: 1 max: 8 + info: qsTr("Number of replications of the whole design.") } /* @@ -486,6 +501,7 @@ Form defaultValue: 0 min: 0 max: 10 + info: qsTr("Number of randomly selected runs to repeat.") } */ } diff --git a/inst/qml/doeFull.qml b/inst/qml/doeFull.qml index 2175c0c03..8af290460 100644 --- a/inst/qml/doeFull.qml +++ b/inst/qml/doeFull.qml @@ -22,6 +22,8 @@ Form { columns: 1 + info: qsTr("Create a general full factorial worksheet, where every combination of the specified factor levels is included. Define the factors and their levels, then display or export the design to fill in with measured responses.") + Group { title: qsTr("Design Space") @@ -44,6 +46,7 @@ Form name: "runOrder" title: qsTr("Run Order") enabled: !factorialTypeSplit.checked + info: qsTr("Whether the runs are sorted in standard order or randomised.") RadioButton { @@ -60,8 +63,8 @@ Form } } - - IntegerField + + IntegerField { id: numberOfFactors name: "numberOfFactors" @@ -69,6 +72,7 @@ Form defaultValue: 0 min: 0 max: 256 + info: qsTr("Total number of factors in the design.") // onValueChanged: updateModel(value) } @@ -176,6 +180,7 @@ Form defaultValue: 1 min: 1 max: 8 + info: qsTr("Number of replications of the whole design.") } CheckBox @@ -183,6 +188,7 @@ Form name: "fullRepeats" label: qsTr("Repeats only") visible: fullCornerReplicates.value > 1 + info: qsTr("Treat the replications as repeats (repeated measurements) rather than full replications.") } IntegerField @@ -192,6 +198,7 @@ Form defaultValue: 0 min: 0 max: 10 + info: qsTr("Number of randomly selected runs to repeat.") } } @@ -199,6 +206,7 @@ Form { name: "displayFullDesign" label: qsTr("Display selected design") + info: qsTr("Display the generated design in the output.") } Group @@ -209,6 +217,7 @@ Form label: qsTr("Save as:") filter: "*.csv" save: true + info: qsTr("Name and path of the .csv file to save the design to.") } Button diff --git a/inst/qml/doeModifyDesign.qml b/inst/qml/doeModifyDesign.qml index ecf0f6cc7..48e9bc2f3 100644 --- a/inst/qml/doeModifyDesign.qml +++ b/inst/qml/doeModifyDesign.qml @@ -21,6 +21,8 @@ Form { columns: 1 + info: qsTr("Modify an existing factorial design: reassign factors and run order, change the display units, and generate a desired two-level factorial design from the assigned factors.") + VariablesForm { AvailableVariablesList @@ -34,6 +36,7 @@ Form name: "responseVariable" singleVariable: true label: qsTr("Response variable") + info: qsTr("The measured response variable of the design.") } AssignedVariablesList @@ -41,6 +44,7 @@ Form name: "assignedFactors" label: qsTr("Assigned factors") id: assignedFactors + info: qsTr("The factor columns of the design.") } // AssignedVariablesList @@ -57,6 +61,7 @@ Form label: qsTr("Run order") id: runOrder singleVariable: true + info: qsTr("The column specifying the run order of the design.") } } @@ -64,6 +69,7 @@ Form { name: "unitDisplay" title: qsTr("Unit Display") + info: qsTr("Whether the factor levels are displayed in coded or uncoded (given) units.") RadioButton { @@ -86,6 +92,7 @@ Form name: "displayedRunOrder" title: qsTr("Run Order") enabled: !factorialTypeSplit.checked + info: qsTr("Whether the runs are displayed in random or standard order.") RadioButton { @@ -105,6 +112,7 @@ Form { title: qsTr("Desired Two-level Factorial Design Options") columns: 2 + info: qsTr("Options for generating a desired two-level factorial design from the assigned factors.") Group { @@ -113,6 +121,7 @@ Form RadioButtonGroup { name: "designOptionsType" + info: qsTr("How the desired design is specified: by number of runs, by resolution, or by fraction.") RadioButton { @@ -120,6 +129,7 @@ Form label: qsTr("Number of runs") childrenOnSameRow: true checked: true + info: qsTr("Specify the design by the number of runs.") DropDown { @@ -142,6 +152,7 @@ Form label: qsTr("Resolution") id: resolution childrenOnSameRow: true + info: qsTr("Specify the design by its resolution.") DropDown { @@ -165,6 +176,7 @@ Form name: "fraction" label: qsTr("Fraction") childrenOnSameRow: true + info: qsTr("Specify the design by the fraction of the full factorial.") DropDown { @@ -213,6 +225,7 @@ Form defaultValue: 0 min: 0 max: 2**(numberOfFactorsForTable.value - 1) + info: qsTr("Number of centre points to add to the design.") } IntegerField @@ -222,6 +235,7 @@ Form defaultValue: 0 min: 0 max: 10 + info: qsTr("Number of randomly selected runs to repeat.") } } } @@ -230,6 +244,7 @@ Form { name: "desiredDesignTable" label: qsTr("Show desired design") + info: qsTr("Display the generated desired design in the output.") } IntegerField diff --git a/inst/qml/doeResponseSurfaceMethodology.qml b/inst/qml/doeResponseSurfaceMethodology.qml index 451aa476f..2fc84a838 100644 --- a/inst/qml/doeResponseSurfaceMethodology.qml +++ b/inst/qml/doeResponseSurfaceMethodology.qml @@ -25,15 +25,22 @@ Form id: form columns: 1 + info: qsTr("A response surface design is an experimental framework for optimising and understanding the relationships between several explanatory variables and one or more response variables. By systematically varying the input variables it maps the response landscape, allowing estimation of quadratic effects and identification of optimal conditions. Central composite designs build a second-order (quadratic) model from an embedded factorial design augmented with star (axial) and centre points; Box-Behnken designs place treatment combinations at the midpoints of the edges of the process space and require three levels per factor.") + + infoBottom: "## " + qsTr("References") + "\n" + + "- " + qsTr("Box, G. E. P., & Wilson, K. B. (1951). On the experimental attainment of optimum conditions. Journal of the Royal Statistical Society, 13(1), 1-45.") + "\n" + + "- " + qsTr("Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + Common.ShowAndExportDesign {} RadioButtonGroup { name : "designType" title : qsTr("Design type") + info : qsTr("Type of response surface design to generate.") - RadioButton { name: "centralCompositeDesign"; label: qsTr("Central composite design"); checked: true; id: centralCompositeDesign } - RadioButton { name: "boxBehnkenDesign"; label: qsTr("Box-Behnken design"); } + RadioButton { name: "centralCompositeDesign"; label: qsTr("Central composite design"); checked: true; id: centralCompositeDesign; info: qsTr("Generate a central composite design: an embedded factorial design augmented with star (axial) and centre points to estimate curvature.") } + RadioButton { name: "boxBehnkenDesign"; label: qsTr("Box-Behnken design"); info: qsTr("Generate a Box-Behnken design with treatment combinations at the midpoints of the edges of the process space and at the centre; requires three levels per factor.") } } @@ -42,14 +49,17 @@ Form // Could probably use a custom IntegerField type... IntegerField { id: numberOfContinuous; label: qsTr("Number of continuous factors"); name: "numberOfContinuous"; min: centralCompositeDesign.checked ? 2 : 3; defaultValue: centralCompositeDesign.checked ? 2 : 3; max: centralCompositeDesign.checked ? 10 : 7 + info: qsTr("Total number of continuous factors in the design. Continuous factors always have two defined levels (low/high).") property int intValue: defaultValue onValueChanged : { intValue = value !== "" ? value : 0 } } IntegerField { id: numberOfCategorical; label: qsTr("Number of discrete factors"); name: "numberOfCategorical"; min: 0; defaultValue: 0; max: 10 + info: qsTr("Total number of discrete factors in the design.") property int intValue: defaultValue onValueChanged : { intValue = value !== "" ? value : 0 } } IntegerField { id: numberOfLevels; label: qsTr("Maximum discrete levels"); name: "categoricalNoLevels"; min: 2; defaultValue: 2; max: 10 + info: qsTr("Maximum number of levels per discrete factor. If a factor has fewer levels, leave the remaining level cells empty.") property int intValue: defaultValue onValueChanged : { intValue = value !== "" ? value : 0 } } @@ -72,6 +82,7 @@ Form name : "continuousVariables" cornerText : qsTr("Factor") columnNames : [qsTr("Name"), qsTr("Low"), qsTr("High")] + info : qsTr("Set the name and the low and high levels of each continuous factor.") isFirstColEditable : true itemType : JASP.Double itemTypePerColumn : [JASP.String] // first column is string, all others are double @@ -104,6 +115,7 @@ Form name : "categoricalVariables" cornerText : qsTr("Factor") itemType : JASP.String + info : qsTr("Set the names of the discrete factors and the value of each level.") function getColHeaderText(headerText, colIndex) { return colIndex === 0 ? qsTr("Name") : qsTr("Level %1").arg(colIndex); } function getRowHeaderText(headerText, rowIndex) { return String.fromCharCode(65 + rowIndex + numberOfContinuous.intValue); } @@ -301,10 +313,11 @@ Form visible: centralCompositeDesign.checked name: "alphaType" title: qsTr("Alpha") + info: qsTr("How the alpha value (distance of the axial points from the centre) is determined.") - RadioButton { name: "default"; label: qsTr("Default"); checked: true } - RadioButton { name: "faceCentered"; label: qsTr("Face centred"); } - RadioButton { name: "custom"; label: qsTr("Custom"); + RadioButton { name: "default"; label: qsTr("Default"); checked: true; info: qsTr("Use the default alpha value shown in the design table.") } + RadioButton { name: "faceCentered"; label: qsTr("Face centred"); info: qsTr("Use a face-centred alpha value (axial points at the centre of each face).") } + RadioButton { name: "custom"; label: qsTr("Custom"); info: qsTr("Enter a custom alpha value.") childrenOnSameRow: true DoubleField { @@ -318,9 +331,10 @@ Form { name: "centerPointType" title: qsTr("Center points") + info: qsTr("How the number of centre points in the design is determined.") - RadioButton { name: "default"; label: qsTr("Default"); checked: true } - RadioButton { name: "custom"; label: qsTr("Custom"); + RadioButton { name: "default"; label: qsTr("Default"); checked: true; info: qsTr("Use the default number of centre points shown in the design table.") } + RadioButton { name: "custom"; label: qsTr("Custom"); info: qsTr("Enter a custom number of centre points.") // TODO: these doublefields should only be enable if the selected element has a nonzero number of cube/ axial points childrenOnSameRow: !centralCompositeDesign.checked DoubleField @@ -341,7 +355,7 @@ Form // show user labels or just -1, 1? SetSeed{} - IntegerField { name: "replicates"; label: qsTr("Replicates"); defaultValue: 1; min: 1; max: 100 } + IntegerField { name: "replicates"; label: qsTr("Replicates"); defaultValue: 1; min: 1; max: 100; info: qsTr("Number of replications of the whole design.") } } diff --git a/inst/qml/doeScreening.qml b/inst/qml/doeScreening.qml index e7c1c9fc5..c0f6cab52 100644 --- a/inst/qml/doeScreening.qml +++ b/inst/qml/doeScreening.qml @@ -21,12 +21,15 @@ Form { columns: 1 + info: qsTr("Create a screening design worksheet to identify the most influential factors from a large set with relatively few runs. Plackett-Burman designs screen two-level factors; definitive screening designs use three levels and can also detect curvature.") + DropDown { id: screeningType name: "screeningType" label: qsTr("Type of Screening Design") indexDefaultValue: 0 + info: qsTr("Type of screening design: Plackett-Burman (two-level) or definitive screening (three-level).") values: [ { value: "PBdes", label: qsTr("Plackett-Burman") }, @@ -49,6 +52,7 @@ Form defaultValue: screeningType.currentIndex == 1 ? 4 : 0 min: screeningType.currentIndex == 1 ? 4 : 0 max: 12 + info: qsTr("Number of three-level factors in the definitive screening design.") } IntegerField @@ -67,6 +71,7 @@ Form defaultValue: screeningType.currentIndex == 0 ? 5 : 0 min: screeningType.currentIndex == 0 ? 4 : 0 max: screeningType.currentIndex == 0 ? 256 : 4 + info: qsTr("Number of two-level factors in the design.") } IntegerField @@ -83,6 +88,7 @@ Form label: qsTr("Number of runs") visible: screeningType.currentIndex == 0 indexDefaultValue: 0 + info: qsTr("Number of runs in the Plackett-Burman design.") values: [ { value: (Math.floor(numberOfFactorsForTableScreen2.value/4)+3)*4, label: Number((Math.floor(numberOfFactorsForTableScreen2.value/4)+3)*4)}, @@ -98,6 +104,7 @@ Form { title: qsTr("Design Display") name: "dataCodingScreen" + info: qsTr("Whether the factor levels are displayed in coded or uncoded (given) units.") RadioButton { @@ -119,6 +126,7 @@ Form { name: "runOrderScreen" title: qsTr("Run Order") + info: qsTr("Whether the runs are sorted in standard order or randomised.") RadioButton { @@ -319,6 +327,7 @@ Form defaultValue: 0 min: 0 max: 256 + info: qsTr("Number of centre points to add to the design.") } IntegerField @@ -330,6 +339,7 @@ Form defaultValue: 1 min: 1 max: 10 + info: qsTr("Number of replicates of the corner points.") } @@ -338,6 +348,7 @@ Form visible: screeningType.currentIndex == 0 & screeningCornerReplicates.value > 1 name: "screeningRepeats" label: "Repeats only" + info: qsTr("Treat the replicates as repeats rather than full replications.") } } @@ -345,6 +356,7 @@ Form { name: "displayScreeningDesign" label: "Display selected design" + info: qsTr("Display the generated design in the output.") } Group @@ -356,6 +368,7 @@ Form label: qsTr("Save as:") filter: "*.csv" save: true + info: qsTr("Name and path of the .csv file to save the design to.") } Button diff --git a/inst/qml/msaAttribute.qml b/inst/qml/msaAttribute.qml index 660d2ff9d..ace6d91ff 100644 --- a/inst/qml/msaAttribute.qml +++ b/inst/qml/msaAttribute.qml @@ -21,13 +21,28 @@ Form { columns: 1 + info: qsTr("Attribute Agreement Analysis assesses the agreement between the operators' ratings and a known standard's ratings. One aim is to determine the accuracy of the investigated operators.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Study effectiveness summary: effectiveness, miss rate, and false alarm rate per operator with an acceptance evaluation.") + "\n" + + "- " + qsTr("Within appraisers: agreement between the inspected items and operators, with a 95%% confidence interval.") + "\n" + + "- " + qsTr("Each appraiser vs standard: agreement between the known standard and inspected items per operator, with a 95%% confidence interval.") + "\n" + + "- " + qsTr("Between appraisers: agreement between the different operators, with a 95%% confidence interval.") + "\n" + + "- " + qsTr("All appraisers vs standard: agreement between all operators and the known standard, with a 95%% confidence interval.") + "\n" + + "- " + qsTr("Plots of the agreement percentages and their confidence intervals (within appraisers and each appraiser vs standard).") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- jaspGraphs\n- ggplot2\n- tidyr\n- psych\n- irr\n" + DropDown { name: "dataFormat" label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 - values: + info: qsTr("Layout of the data: all observations in one column (\"Single column\") or spread across rows with a subgroup index (\"Across rows\").") + values: [ { label: qsTr("Single column"), value: "longFormat"}, { label: qsTr("Across rows"), value: "wideFormat"}, @@ -51,6 +66,7 @@ Form id: measurementLongFormat singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The ratings made by the operators.") } AssignedVariablesList @@ -59,6 +75,7 @@ Form title: qsTr("Operator") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The operators in the measurement system.") } AssignedVariablesList @@ -67,6 +84,7 @@ Form title: qsTr("Part") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts of the measurement system.") } AssignedVariablesList @@ -75,6 +93,7 @@ Form title: qsTr("Standard") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The ratings by the known standard (optional).") } } @@ -94,6 +113,7 @@ Form title: qsTr("Results") id: measurementsWideFormat allowedColumns: ["nominal"] + info: qsTr("The ratings made by the operators (one column per repeated rating).") } AssignedVariablesList @@ -102,6 +122,7 @@ Form title: qsTr("Operator") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The operators in the measurement system.") } AssignedVariablesList @@ -110,6 +131,7 @@ Form title: qsTr("Part") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts of the measurement system.") } AssignedVariablesList @@ -118,6 +140,7 @@ Form title: qsTr("Standard") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The ratings by the known standard (optional).") } } @@ -125,6 +148,7 @@ Form Section { title: qsTr("Kappa study") + info: qsTr("Kappa studies for binary data, quantifying rater agreement.") Group { @@ -136,6 +160,7 @@ Form label: qsTr("Positive reference:") id: positiveReference enabled: !kendallsTau.checked + info: qsTr("The positive reference category used for the rating classifications (for example \"Yes\", \"fit\", \"Good\").") } CheckBox @@ -145,6 +170,7 @@ Form id: cohenskappa enabled: positiveReference.value != "" checked: !positiveReference.value == "" + info: qsTr("Compute Cohen's kappa (interrater kappa) per operator.") } CheckBox @@ -154,6 +180,7 @@ Form id: fleisskappa checked: !positiveReference.value == "" enabled: !kendallsTau.checked + info: qsTr("Compute Fleiss' kappa (multirater kappa) per operator.") } } @@ -162,12 +189,14 @@ Form Section { title: qsTr("Tau study") + info: qsTr("Tau study for ordinal data.") CheckBox { name: "kendallsTau" label: qsTr("Kendall's tau") id: kendallsTau + info: qsTr("Compute Kendall's tau correlations between the operators and their ratings.") } } } diff --git a/inst/qml/msaGaugeLinearity.qml b/inst/qml/msaGaugeLinearity.qml index 05af02253..076bff70f 100644 --- a/inst/qml/msaGaugeLinearity.qml +++ b/inst/qml/msaGaugeLinearity.qml @@ -20,6 +20,19 @@ Form { columns: 1 + info: qsTr("A Type 4 Linearity Study (Gauge Linearity and Bias) investigates the linearity (accuracy across the expected range of measurements) and bias (agreement between measurements and reference values) of a measurement system.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Gauge bias table: per part, the reference values, mean per reference value, bias per reference value, and a t-test of the bias against zero.") + "\n" + + "- " + qsTr("Regression model table: coefficients (intercept and slope), t-statistics, standard errors, and p-values.") + "\n" + + "- " + qsTr("Gauge linearity table: regression sigma (S), absolute coefficient values multiplied by the process variation (linearity), R-squared, and linearity as a percentage of the process variation.") + "\n" + + "- " + qsTr("Bias and linearity plot: linear relationship between bias and reference values.") + "\n" + + "- " + qsTr("Percentage process variation graph: percentage of linearity and bias relative to the process variation.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- jaspGraphs\n- ggplot2\n- ggpubr\n" + VariablesForm { id: variablesForm @@ -35,6 +48,7 @@ Form title: qsTr("Parts") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts of the measurement system.") } AssignedVariablesList @@ -43,6 +57,7 @@ Form title: qsTr("Measurements") singleVariable: true allowedColumns: ["scale"] + info: qsTr("The observations/data collected from the process.") } AssignedVariablesList @@ -51,6 +66,7 @@ Form title: qsTr("Standard") singleVariable: true allowedColumns: ["scale"] + info: qsTr("The reference (standard) values.") } } @@ -63,6 +79,7 @@ Form name: "linearityTable" label: qsTr("Linearity table") checked: true + info: qsTr("Output the regression model and gauge linearity tables.") } CheckBox @@ -70,6 +87,7 @@ Form name: "biasTable" label: qsTr("Bias table") checked: true + info: qsTr("Output the gauge bias table.") } } @@ -82,6 +100,7 @@ Form name: "linearityAndBiasPlot" label: qsTr("Linearity and bias graph") checked: true + info: qsTr("Plot the linear relationship between the bias and the reference values.") } } @@ -95,6 +114,7 @@ Form label: qsTr("Process variation") childrenOnSameRow: true id: manualProcessVariation + info: qsTr("Manually specify the process variation (number of standard deviations, by default 6) used to compute the bias.") DoubleField { @@ -112,6 +132,7 @@ Form label: qsTr("Percent process variation graph") checked: false enabled: manualProcessVariation.checked + info: qsTr("Plot the percentage of gauge bias and linearity relative to the process variation.") } } } diff --git a/inst/qml/msaGaugeRR.qml b/inst/qml/msaGaugeRR.qml index 83c1bf7b9..2f3973fa0 100644 --- a/inst/qml/msaGaugeRR.qml +++ b/inst/qml/msaGaugeRR.qml @@ -22,13 +22,25 @@ Form { columns: 1 + info: qsTr("Gauge Repeatability and Reproducibility (Gauge r&R) quantifies the variation in measurements attributable to the measurement system. The variation is split into repeatability (equipment variation) and reproducibility (operator variation). Both variable and attribute measurement data can be used.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Analysis of Variance table: two-way analysis of variance tables with and without interaction for the input variables, repeatability, reproducibility, and total Gauge r&R.") + "\n" + + "- " + qsTr("Gauge r&R variance components: variance and percentage contribution of the input variables, repeatability, reproducibility, and total Gauge r&R.") + "\n" + + "- " + qsTr("Gauge evaluation: standard deviations, study variations, and percentage of study variation and tolerance for the input variables, repeatability, reproducibility, and total Gauge r&R.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- jaspGraphs\n- ggplot2\n- tidyr\n- qcc\n- cowplot\n" + DropDown { name: "dataFormat" label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 - values: + info: qsTr("Layout of the measurement data: all observations in one column (\"Single column\") or spread across rows with a subgroup index (\"Across rows\").") + values: [ { label: qsTr("Single column"), value: "longFormat"}, { label: qsTr("Across rows"), value: "wideFormat"}, @@ -57,6 +69,7 @@ Form id: measurementLongFormat singleVariable: true allowedColumns: ["scale"] + info: qsTr("The observations/data collected from the process.") } AssignedVariablesList @@ -67,6 +80,7 @@ Form singleVariable: true allowedColumns: ["nominal"] enabled: !type3.checked + info: qsTr("The operators in the measurement system.") } AssignedVariablesList @@ -75,6 +89,7 @@ Form title: qsTr("Part") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts of the measurement system.") } } @@ -95,6 +110,7 @@ Form id: measurementsWideFormat singleVariable: false allowedColumns: ["scale"] + info: qsTr("The measurement columns (one per repeated observation) collected from the process.") } AssignedVariablesList @@ -105,6 +121,7 @@ Form singleVariable: true allowedColumns: ["nominal"] enabled: !type3.checked + info: qsTr("The operators in the measurement system.") } AssignedVariablesList @@ -113,6 +130,7 @@ Form title: qsTr("Part") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts of the measurement system.") } } @@ -121,6 +139,7 @@ Form name: "type3" id: type3 label: qsTr("Type 3 study (automatic equipment)") + info: qsTr("Treat the study as a Type 3 study for automatic equipment, where there is no operator effect; the operator variable is then ignored.") onCheckedChanged: { operatorLongFormat.itemDoubleClicked(0) @@ -142,7 +161,8 @@ Form label: qsTr("Std. dev. source") id: variationReference indexDefaultValue: 0 - values: + info: qsTr("Source of the process standard deviation: estimated from the data (Study std. dev.) or a historically known value (Historical std. dev.).") + values: [ { label: qsTr("Study std. dev."), value: "studySd" }, { label: qsTr("Historical std. dev."), value: "historicalSd" } @@ -157,6 +177,7 @@ Form min: 0.000000001 decimals: 9 enabled: variationReference.currentValue == "historicalSd" + info: qsTr("The historically known process standard deviation. Only used when the std. dev. source is set to Historical.") } CheckBox @@ -164,6 +185,7 @@ Form name: "tolerance" label: qsTr("Tolerance width") childrenOnSameRow: true + info: qsTr("Include a tolerance (specification) width in the analysis.") DoubleField { @@ -180,12 +202,14 @@ Form name: "anova" label: qsTr("r&R Analysis of Variance table") checked: true + info: qsTr("Display the Gauge r&R tables based on an analysis of variance.") DropDown { name: "anovaModelType" label: qsTr("Type of model for F-statistic") - values: + info: qsTr("Whether the operator and part effects are treated as fixed or random effects when computing the F-statistic.") + values: [ { label: qsTr("Fixed effects"), value: "fixedEffect"}, { label: qsTr("Random effects"), value: "randomEffect"} @@ -202,6 +226,7 @@ Form defaultValue: 0.05 max: 1 decimals: 3 + info: qsTr("Alpha level above which the part × operator interaction is removed from the model.") } DropDown @@ -210,7 +235,8 @@ Form label: qsTr("Study var. multiplier type") id: studyVarianceMultiplierType indexDefaultValue: 0 - values: + info: qsTr("Whether the study variation multiplier is expressed in standard deviations or as a percentage.") + values: [ { label: qsTr("Std. Deviation"), value: "sd" }, { label: qsTr("Percent"), value: "percent" } @@ -226,6 +252,7 @@ Form min: 0.001 max: 99.999 decimals: 3 + info: qsTr("Value of the study variation multiplier.") } } } @@ -239,6 +266,7 @@ Form name: "varianceComponentsGraph" label: qsTr("Components of variation") checked: true + info: qsTr("Display the components of variation (contribution, study variation, and tolerance) plot.") } CheckBox @@ -246,6 +274,7 @@ Form name: "rChart" label: qsTr("Range charts by operator") enabled: !type3.checked + info: qsTr("Display the range chart across operators by part.") } CheckBox @@ -253,6 +282,7 @@ Form name: "xBarChart" label: qsTr("Average chart by operator") enabled: !type3.checked + info: qsTr("Display the average (X-bar) chart across operators by part.") } CheckBox @@ -260,17 +290,20 @@ Form name: "scatterPlot" label: qsTr("Scatter plots operators") enabled: !type3.checked + info: qsTr("Display a matrix of scatter plots of the relationship between operators.") CheckBox { name: "scatterPlotFitLine" label: qsTr("Fit line") + info: qsTr("Fit a linear line to the data points.") } CheckBox { name: "scatterPlotOriginLine" label: qsTr("Show origin line") + info: qsTr("Display the origin line of the data points.") } } @@ -278,11 +311,13 @@ Form { name: "partMeasurementPlot" label: qsTr("Measurements by part plot") + info: qsTr("Display a plot of the mean measurement across parts.") CheckBox { name: "partMeasurementPlotAllValues" label: qsTr("Display all measurements") + info: qsTr("Display all measurement values across parts.") } } @@ -291,6 +326,7 @@ Form name: "operatorMeasurementPlot" label: qsTr("Measurements by operator plot") enabled: !type3.checked + info: qsTr("Display a box plot of the measurement values across operators.") } CheckBox @@ -298,12 +334,14 @@ Form name: "partByOperatorMeasurementPlot" label: qsTr("Part × operator interaction plot") enabled: !type3.checked + info: qsTr("Display the mean measurement across parts per operator.") } CheckBox { name: "trafficLightChart" label: qsTr("Traffic light chart") + info: qsTr("Display the total Gauge r&R in relation to the tolerance and process variation as a percentage.") } } } @@ -318,13 +356,15 @@ Form label: qsTr("Show Report") id: anovaGaugeReport columns: 1 - + info: qsTr("Display a formatted Gauge r&R report combining the selected metadata and output components.") + CheckBox { name: "reportMetaData" label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, part, gauge, operator, date, etc.) in the report.") CheckBox { @@ -475,6 +515,7 @@ Form Group { title: qsTr("Select Report Components") + info: qsTr("Choose which tables and plots are included in the report.") CheckBox { diff --git a/inst/qml/msaGaugeRRnonrep.qml b/inst/qml/msaGaugeRRnonrep.qml index 3b4b4f266..a77ab4f9d 100644 --- a/inst/qml/msaGaugeRRnonrep.qml +++ b/inst/qml/msaGaugeRRnonrep.qml @@ -23,6 +23,17 @@ Form { columns: 1 + info: qsTr("Gauge Repeatability and Reproducibility for non-replicable (destructive) measurements quantifies the variation in measurements attributable to the measurement system, split into repeatability (equipment variation) and reproducibility (operator variation). This is the version of the analysis for measurements that cannot be replicated, using a nested model.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Gauge r&R (nested): nested analysis of variance table for the input variables, repeatability, reproducibility, and total Gauge r&R.") + "\n" + + "- " + qsTr("Gauge r&R variance components: variance and percentage contribution of the input variables, repeatability, reproducibility, and total Gauge r&R.") + "\n" + + "- " + qsTr("Gauge evaluation: standard deviations, study variations, and percentage of study variation and tolerance for the input variables, repeatability, reproducibility, and total Gauge r&R.") + "\n" + + "\n" + qsTr("Acceptance guideline: %r&R ≤ 10%% is generally acceptable, 10–30%% may be acceptable for some applications, and > 30%% is considered unacceptable.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- jaspGraphs\n- ggplot2\n- tidyr\n- qcc\n- cowplot\n" DropDown { @@ -30,6 +41,7 @@ Form label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 + info: qsTr("Layout of the measurement data: all observations in one column (\"Single column\") or spread across rows with a part identification (\"Across rows\").") values: [ { label: qsTr("Single column"), value: "longFormat"}, { label: qsTr("Across rows"), value: "wideFormat" } @@ -52,6 +64,7 @@ Form title: qsTr("Measurements") singleVariable: true allowedColumns: ["scale"] + info: qsTr("The repeated measurements of each part.") } AssignedVariablesList @@ -60,6 +73,7 @@ Form title: qsTr("Operators") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The appraisers using the measurement system.") } AssignedVariablesList @@ -68,6 +82,7 @@ Form title: qsTr("Parts") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts selected from the process, representing its entire operating range.") } } @@ -87,6 +102,7 @@ Form title: qsTr("Measurements") singleVariable: false allowedColumns: ["scale"] + info: qsTr("The measurement columns (repeated measurements of each part).") } AssignedVariablesList @@ -95,6 +111,7 @@ Form title: qsTr("Operators") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The appraisers using the measurement system.") } AssignedVariablesList @@ -103,6 +120,7 @@ Form title: qsTr("Parts") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts selected from the process, representing its entire operating range.") } } @@ -116,6 +134,7 @@ Form label: qsTr("Std. dev. source") id: variationReference indexDefaultValue: 0 + info: qsTr("Source of the process standard deviation: estimated from the data (Study std. dev.) or a historically known value (Historical std. dev.).") values: [ { label: qsTr("Study std. dev."), value: "studySd"}, { label: qsTr("Historical std. dev."), value: "historicalSd"} @@ -128,6 +147,7 @@ Form label: qsTr("Std. dev. value") defaultValue: 3 enabled: variationReference.currentValue == "historicalSd" + info: qsTr("The historically known process standard deviation. Only used when the std. dev. source is set to Historical.") } CheckBox @@ -135,6 +155,7 @@ Form name: "tolerance" label: qsTr("Tolerance width") childrenOnSameRow: true + info: qsTr("Include a tolerance (specification) width in the analysis.") DoubleField { @@ -151,6 +172,7 @@ Form name: "anova" label: qsTr("r&R Analysis of Variance table") checked: true + info: qsTr("Display the Gauge r&R tables based on a nested analysis of variance.") DropDown { @@ -158,7 +180,8 @@ Form label: qsTr("Study var. multiplier type") id: studyVarMultiplierType indexDefaultValue: 0 - values: + info: qsTr("Whether the study variation multiplier is expressed in standard deviations or as a percentage.") + values: [ { label: qsTr("Std. dev."), value: "sd"}, { label: qsTr("Percent"), value: "percent"} @@ -174,6 +197,7 @@ Form min: 0.001 max: 99.999 decimals: 3 + info: qsTr("Value of the study variation multiplier.") } } } @@ -187,29 +211,34 @@ Form name: "varianceComponentsGraph" label: qsTr("Graph variation components") checked: true + info: qsTr("Display the components of variation (contribution, study variation, and tolerance) plot.") } CheckBox { name: "rChart" label: qsTr("Range charts by operator") + info: qsTr("Display the variation in the measurements made by each operator, for comparison across operators.") } CheckBox { name: "xBarChart" label: qsTr("Average charts by operator") + info: qsTr("Display the measurements relative to the overall average for each operator, for comparison across operators.") } CheckBox { name: "partMeasurementPlot" label: qsTr("Measurements by part plot") + info: qsTr("Display the main effect for the parts (average measurement per part).") CheckBox { name: "partMeasurementPlotAllValues" label: qsTr("Display all measurements") + info: qsTr("Display all measurement values across parts.") } } @@ -217,12 +246,14 @@ Form { name: "operatorMeasurementPlot" label: qsTr("Measurements by operator plot") + info: qsTr("Display the main effect for the operators (average measurement per operator).") } CheckBox { name: "trafficLightChart" label: qsTr("Traffic light chart") + info: qsTr("Display the total Gauge r&R in relation to the tolerance and process variation as a percentage.") } } @@ -237,13 +268,15 @@ Form label: qsTr("Show report") id: anovaGaugeReport columns: 1 - + info: qsTr("Display a formatted Gauge r&R report combining the selected metadata and output components.") + CheckBox { name: "reportMetaData" label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, part, gauge, operator, date, etc.) in the report.") CheckBox { @@ -394,7 +427,8 @@ Form Group { title: qsTr("Select Report Components") - + info: qsTr("Choose which tables and plots are included in the report.") + CheckBox { name: "reportGaugeTable" diff --git a/inst/qml/msaTestRetest.qml b/inst/qml/msaTestRetest.qml index 997d4fd80..d37813f90 100644 --- a/inst/qml/msaTestRetest.qml +++ b/inst/qml/msaTestRetest.qml @@ -21,12 +21,26 @@ Form { columns: 1 + info: qsTr("The Test-retest (range method) study approximates an overall picture of the measurement system's variability. It does not separate the variability into its repeatability and reproducibility components.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Short gauge study table: sample size, R-bar, historical standard deviation, tolerance, GRR, and GRR as a percentage of the standard deviation and tolerance.") + "\n" + + "- " + qsTr("Traffic light graph: GRR as a percentage of the standard deviation and tolerance.") + "\n" + + "- " + qsTr("Run chart of parts: all measurement values per part.") + "\n" + + "- " + qsTr("Range chart by part: range chart for the measurements using the parts as subgroups.") + "\n" + + "- " + qsTr("Scatter plot of the measurements.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- jaspGraphs\n- tidyr\n- ggplot2\n" + DropDown { name: "dataFormat" label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 + info: qsTr("Layout of the measurement data: all observations in one column (\"Single column\") or spread across rows with a subgroup index (\"Across rows\").") values: [ { label: qsTr("Single column"), value: "longFormat"}, { label: qsTr("Across rows"), value: "wideFormat"} @@ -55,6 +69,7 @@ Form id: measurementLongFormat singleVariable: true allowedColumns: ["scale"] + info: qsTr("The observations/data collected from the process.") } AssignedVariablesList @@ -63,6 +78,7 @@ Form title: qsTr("Part") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The parts of the measurement system.") } AssignedVariablesList @@ -71,6 +87,7 @@ Form title: qsTr("Operator/Repetition") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("The operators of the measurement system (or repetition index).") } } @@ -92,6 +109,7 @@ Form id: measurementsWideFormat visible: dataFormat.currentValue == "wideFormat" allowedColumns: ["scale"] + info: qsTr("The measurement columns (repeated observations of each part).") } AssignedVariablesList @@ -100,6 +118,7 @@ Form title: qsTr("Part") singleVariable: true allowedColumns: ["nominal", "ordinal", "scale"] + info: qsTr("The parts of the measurement system.") } } @@ -113,6 +132,7 @@ Form name: "manualProcessSd" label: qsTr("Process std. dev.") childrenOnSameRow: true + info: qsTr("Specify the historical process standard deviation.") DoubleField { @@ -126,6 +146,7 @@ Form name: "tolerance" label: qsTr("Tolerance") childrenOnSameRow: true + info: qsTr("Include a tolerance (specification) value in the analysis.") DoubleField { @@ -139,6 +160,7 @@ Form name: "repeatabilityAndReproducibilityTable" label: qsTr("r&R table") checked: true + info: qsTr("Output the short gauge study table.") } } @@ -150,6 +172,7 @@ Form { name: "runChartPart" label: qsTr("Run chart of parts") + info: qsTr("Plot the measurement values against the parts.") } CheckBox @@ -157,18 +180,21 @@ Form name: "scatterPlotMeasurement" label: qsTr("Scatter plot measurement") checked: true + info: qsTr("Plot a scatter plot of the measurements.") CheckBox { name: "scatterPlotMeasurementFitLine" label: qsTr("Fit line") checked: true + info: qsTr("Fit a regression line to the scatter plot.") } CheckBox { name: "scatterPlotMeasurementAllValues" label: qsTr("Display all measurements") + info: qsTr("Display all measurement values on the scatter plot.") } } @@ -176,12 +202,14 @@ Form { name: "rChart" label: qsTr("Range chart") + info: qsTr("Plot the range chart by part.") } CheckBox { name: "trafficLightChart" label: qsTr("Traffic light chart") + info: qsTr("Plot the traffic light graph (GRR as a percentage of the standard deviation and tolerance).") } } } diff --git a/inst/qml/msaType1Gauge.qml b/inst/qml/msaType1Gauge.qml index 7971fa88e..95527115f 100644 --- a/inst/qml/msaType1Gauge.qml +++ b/inst/qml/msaType1Gauge.qml @@ -21,6 +21,19 @@ Form { columns: 2 + info: qsTr("A Type 1 Instrument Capability Study (Type 1 Gauge) is performed before a Gauge r&R study to assess the capability of a measurement instrument using bias and repeatability. A single part with a known reference value is measured repeatedly by one operator.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Run chart: plots the measurement values across observations.") + "\n" + + "- " + qsTr("Basic statistics table: reference value, mean, bias, standard deviation, study variation (measurement SD times the study variance multiplier), tolerance, and bias as a percentage of the tolerance.") + "\n" + + "- " + qsTr("Capability table: Cg, CgK, and the percentage of variation due to repeatability and to repeatability plus bias.") + "\n" + + "- " + qsTr("T-test of observed bias: degrees of freedom, bias, confidence interval limits, t-statistic, and p-value for the test of the observed bias against zero.") + "\n" + + "- " + qsTr("Bias histogram: histogram of the measurements.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- jaspGraphs\n- jaspDescriptives\n- tidyr\n- ggplot2\n- ggrepel\n" + VariablesForm { id: variablesForm @@ -36,6 +49,7 @@ Form title: qsTr("Measurement") singleVariable: true allowedColumns: ["scale"] + info: qsTr("The observations/data collected from the process. Repeated measurements of a single reference part.") } } @@ -51,6 +65,7 @@ Form negativeValues: true decimals: 9 fieldWidth: 60 + info: qsTr("The known reference (master) value of the measured part.") } DoubleField @@ -61,6 +76,7 @@ Form negativeValues: false decimals: 9 fieldWidth: 60 + info: qsTr("The width of the tolerance (specification) range of the process.") } DoubleField @@ -71,6 +87,7 @@ Form negativeValues: false min: 0.001 max: 100 + info: qsTr("Percentage of the tolerance used to compute the capability index Cg.") } DropDown @@ -79,11 +96,12 @@ Form label: qsTr("Number of std. dev. for instrument variation") id: studyVarMultiplier indexDefaultValue: 0 - values: + values: [ { label: qsTr("6"), value: 6}, { label: qsTr("4"), value: 4} ] + info: qsTr("Number of standard deviations used to express the instrument (study) variation.") } } @@ -97,6 +115,7 @@ Form name: "biasTable" label: qsTr("Bias and instrument capability table") checked: true + info: qsTr("Display the basic statistics and capability tables.") } CheckBox @@ -104,11 +123,13 @@ Form name: "tTest" label: qsTr("One sample t-test") checked: true + info: qsTr("Display the one-sample t-test table for the observed bias against zero.") CIField { name: "tTestCiLevel" label: qsTr("Confidence interval for bias") + info: qsTr("Width of the confidence interval for the bias.") } } } @@ -122,12 +143,14 @@ Form name: "runChart" label: qsTr("Run chart") checked: true + info: qsTr("Display the run chart of the measurements across observations.") CheckBox { name: "runChartIndividualMeasurementDots" label: qsTr("Display individual measurements") checked: true + info: qsTr("Show the individual measurement values as dots on the run chart.") } CheckBox @@ -135,6 +158,7 @@ Form name: "runChartToleranceLimitLines" label: qsTr("Display boundaries of the reference interval") checked: true + info: qsTr("Show the boundaries of the reference interval (tolerance limits) on the run chart.") } } @@ -142,17 +166,19 @@ Form { name: "histogram" label: qsTr("Histogram") + info: qsTr("Display a histogram of the measurements (bias).") DropDown { name: "histogramBinBoundaryDirection" id: histogramBinBoundaryDirection label: qsTr("Histogram bin boundaries") - values: + info: qsTr("Whether the histogram bin intervals are left-open or right-open.") + values: [ { label: qsTr("Left open"), value: "left"}, { label: qsTr("Right open"), value: "right"} - + ] } @@ -162,6 +188,7 @@ Form label: qsTr("Bin width type") id: binWidthType indexDefaultValue: 0 + info: qsTr("Method used to determine the histogram bin width.") values: [ { label: qsTr("Sturges"), value: "sturges"}, { label: qsTr("Scott"), value: "scott"}, @@ -178,6 +205,7 @@ Form min: 3 max: 10000 enabled: binWidthType.currentValue === "manual" + info: qsTr("Number of bins to use when the bin width type is set to Manual.") } CheckBox @@ -185,6 +213,7 @@ Form name: "histogramMeanLine" label: qsTr("Display mean") checked: true + info: qsTr("Show the mean value of the measurements on the histogram.") CheckBox { @@ -192,6 +221,7 @@ Form label: qsTr("Confidence interval for mean") checked: true childrenOnSameRow: true + info: qsTr("Show a confidence interval for the mean; set its width below.") CIField { @@ -205,6 +235,7 @@ Form name: "histogramReferenceValueLine" label: qsTr("Display reference value") checked: true + info: qsTr("Show the reference value on the histogram.") } } } diff --git a/inst/qml/probabilityOfDetection.qml b/inst/qml/probabilityOfDetection.qml index 0f8058b2b..e67859ad8 100644 --- a/inst/qml/probabilityOfDetection.qml +++ b/inst/qml/probabilityOfDetection.qml @@ -23,11 +23,14 @@ import JASP.Controls Form { columns: 1 + + info: qsTr("Probability of Detection (POD) models the probability that an inspection detects a flaw as a function of a covariate such as flaw size. A binary detection outcome is regressed on the covariate using a logistic or probit link, producing a detection curve from which detection thresholds (e.g. the size detected with 90%% probability) can be read.") + VariablesForm { AvailableVariablesList { name: "allVariablesList" } - AssignedVariablesList { name: "outcome"; title: qsTr("Outcomes"); allowedColumns: ["nominal"] } - AssignedVariablesList { name: "covariate"; title: qsTr("Covariates"); singleVariable: true } + AssignedVariablesList { name: "outcome"; title: qsTr("Outcomes"); allowedColumns: ["nominal"]; info: qsTr("The binary detection outcome (detected / not detected).") } + AssignedVariablesList { name: "covariate"; title: qsTr("Covariates"); singleVariable: true; info: qsTr("The continuous covariate that drives detection, e.g. flaw size.") } } Group @@ -37,6 +40,7 @@ Form { name: "modelFitTable" label: qsTr("Model fit table") + info: qsTr("Display the model fit table with the fitted coefficients of the detection model.") } } @@ -45,31 +49,36 @@ Form Layout.rowSpan: 2 title: qsTr("Detection plot") + info: qsTr("Plot the fitted probability of detection curve against the covariate.") CheckBox { name: "detectionPlotDataDisplay" label: qsTr("Show data") checked: true + info: qsTr("Overlay the observed data on the detection plot.") RadioButtonGroup { name: "detectionPlotDataDisplayType" + info: qsTr("How the observed data are displayed on the plot.") - RadioButton { label: qsTr("Rugs"); value: "rug" } + RadioButton { label: qsTr("Rugs"); value: "rug"; info: qsTr("Display the data as rug marks along the axis.") } RadioButton { label: qsTr("Points"); value: "points" + info: qsTr("Display the data as points.") childrenOnSameRow: true - CheckBox { name: "detectionPlotDataDisplayTypePointsJitter"; label: qsTr("Add jitter"); checked: true } + CheckBox { name: "detectionPlotDataDisplayTypePointsJitter"; label: qsTr("Add jitter"); checked: true; info: qsTr("Add random jitter to the points to reduce overlap.") } } } } - CheckBox { name: "detectionPlotDensityDisplay"; label: qsTr("Show density"); checked: true } + CheckBox { name: "detectionPlotDensityDisplay"; label: qsTr("Show density"); checked: true; info: qsTr("Overlay the density of the covariate on the plot.") } CheckBox { name: "detectionPlotCi"; label: qsTr("Confidence interval") childrenOnSameRow: true + info: qsTr("Display a confidence interval band around the detection curve; set its width alongside.") CIField { name: "detectionPlotCiLevel" } } @@ -77,13 +86,14 @@ Form { name: "xAxisTicksType" title: qsTr("Ticks x-axis") + info: qsTr("Whether the x-axis tick marks are based on the observed data only or on both the data and the fitted model.") RadioButton { label: qsTr("based on data"); value: "dataBased" } RadioButton { label: qsTr("based on data and model"); value: "dataAndModelBased" } } Group { - CheckBox { name: "logarithmicXAxis"; label: qsTr("Logarithmic x-axis"); checked: false } + CheckBox { name: "logarithmicXAxis"; label: qsTr("Logarithmic x-axis"); checked: false; info: qsTr("Use a logarithmic scale for the x-axis (covariate).") } // CheckBox { name: "logarithmicYAxis"; label: qsTr("Logarithmic y-axis"); checked: false; debug: true } } @@ -94,6 +104,7 @@ Form { columns: 1 title: qsTr("Asymptotes") + info: qsTr("Add horizontal and vertical reference lines (asymptotes) to the detection plot, for example to mark a target detection probability and the corresponding covariate value.") ColumnLayout { spacing: 0 @@ -213,11 +224,12 @@ Form { name: "linkFunction" title: qsTr("Link function") + info: qsTr("Link function used to fit the detection model.") RadioButton { label: qsTr("Logit"); value: "logit"; checked: true } RadioButton { label: qsTr("Probit"); value: "probit" } } - CheckBox { name: "logTransformedCovariate"; label: qsTr("Log transform covariate"); checked: false } + CheckBox { name: "logTransformedCovariate"; label: qsTr("Log transform covariate"); checked: false; info: qsTr("Log-transform the covariate before fitting the model.") } } } diff --git a/inst/qml/processCapabilityStudies.qml b/inst/qml/processCapabilityStudies.qml index a4fb8eb1a..5f93d0a1f 100644 --- a/inst/qml/processCapabilityStudies.qml +++ b/inst/qml/processCapabilityStudies.qml @@ -22,12 +22,28 @@ Form { columns: 2 + info: qsTr("A process capability study analyses a process to determine whether it is capable of producing good quality products, using data from an initial run of parts to predict whether the manufacturing process can repeatably produce parts that meet specifications. A subgroup is a group of parts produced under the same set of conditions.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("Control charts (X-bar & R, X-bar & s, X-mR, X-bar & mR) showing process average and dispersion over time, used to assess stability.") + "\n" + + "- " + qsTr("Histogram of the values with an optional fitted distribution.") + "\n" + + "- " + qsTr("Probability table and plot: number of observations, mean, standard deviation, Anderson-Darling statistic and p-value, plotting the data against a theoretical distribution.") + "\n" + + "- " + qsTr("Capability tables: process summary, capability of the process plot, process capability (within: Cp, CpL, CpU, Cpk), process performance (overall: Pp, PpL, PpU, Ppk, Cpm), and non-conformance (observed and expected ppm).") + "\n" + + "\n" + qsTr("Note: capability reports are only meaningful when the process is in a state of statistical control.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual (2nd ed.). AIAG.") + "\n" + + "- " + qsTr("Yeo, I. K., & Johnson, R. A. (2000). A new family of power transformations to improve normality or symmetry. Biometrika, 87(4), 954-959.") + "\n" + + "- " + qsTr("Chou, Y. M., Polansky, A. M., & Mason, R. L. (1998). Transforming non-normal data to normality in statistical process control. Journal of Quality Technology, 30(2), 133-141.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- qcc\n- jaspGraphs\n- ggrepel\n- FAdist\n- goftest\n- fitdistrplus\n- tidyr\n- tibble\n- EnvStats\n- weibullness\n" + DropDown { name: "dataFormat" label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 + info: qsTr("Layout of the data: all observations in one column (\"Single column\") or one subgroup per row (\"Across rows\").") values: [ {label: qsTr("Single column"), value: "longFormat"}, @@ -57,6 +73,7 @@ Form id: measurementLongFormat allowedColumns: ["scale"] singleVariable: true + info: qsTr("The observations/data collected from a process parameter.") } AssignedVariablesList @@ -67,6 +84,7 @@ Form singleVariable: true allowedColumns: ["nominal"] enabled: subgroupSizeType.value == "groupingVariable" + info: qsTr("The subgroup each observation is assigned to, when all observations are in a single column.") } AssignedVariablesList @@ -76,6 +94,7 @@ Form title: qsTr("Stages") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages by assigning a stage to each subgroup.") } } @@ -95,6 +114,7 @@ Form title: qsTr("Measurements") id: measurementsWideFormat allowedColumns: ["scale"] + info: qsTr("The measurement columns, with one subgroup per row.") } AssignedVariablesList @@ -104,6 +124,7 @@ Form title: qsTr("Timestamp (optional)") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("Optional subgroup names for each row, used as x-axis labels.") } AssignedVariablesList @@ -113,6 +134,7 @@ Form title: qsTr("Stages") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages by assigning a stage to each subgroup row.") } } @@ -126,6 +148,7 @@ Form title: qsTr("Specify subgroups") id: subgroupSizeType visible: dataFormat.currentValue == "longFormat" + info: qsTr("How subgroups are formed from a single column of observations.") RadioButton { @@ -133,7 +156,8 @@ Form label: qsTr("Subgroup size") checked: true childrenOnSameRow: true - + info: qsTr("Assign observations in order of appearance to subgroups of the specified size. If the count is not divisible, the last subgroup holds the remaining observations.") + DoubleField { name: "manualSubgroupSizeValue" @@ -144,18 +168,20 @@ Form defaultValue: (dataSetInfo.rowCount < 5)? dataSetInfo.rowCount : 5 } } - + RadioButton { value: "groupingVariable" label: qsTr("Through grouping variable") + info: qsTr("Use a single-column subgroup variable that assigns each observation to a subgroup.") DropDown { name: "groupingVariableMethod" id: groupingVariable label: "Grouping method" - values: + info: qsTr("How to group when identical subgroup values are not adjacent. \"Subgroup value change\" groups only adjacent identical values; \"Same subgroup value\" groups all identical values regardless of adjacency.") + values: [ { label: qsTr("Subgroup value change"), value: "newLabel"}, { label: qsTr("Same subgroup value"), value: "sameLabel"} @@ -170,21 +196,24 @@ Form name: "subgroupSizeUnequal" title: qsTr("Unequal subgroup sizes") id: subgroupSizeUnequal + info: qsTr("How to handle subgroups of differing sizes when computing the process variance and control limits.") RadioButton { value: "actualSizes" label: qsTr("Use actual sizes") checked: true + info: qsTr("Compute control limits per subgroup using the actual subgroup sizes.") } - + RadioButton { value: "fixedSubgroupSize" label: qsTr("Use fixed subgroup size") childrenOnSameRow: true + info: qsTr("Assume a single fixed subgroup size, producing the same control limits for all groups.") - IntegerField + IntegerField { name: "fixedSubgroupSizeValue" fieldWidth: 30 @@ -204,11 +233,13 @@ Form Group { title: qsTr("Transform data") + info: qsTr("Transform the data before analysis to improve normality.") DropDown { name: "dataTransformation" id: dataTransformation label: qsTr("Type") + info: qsTr("Transformation applied to the data. Box-Cox and Yeo-Johnson can estimate lambda automatically; Yeo-Johnson (auto) and Johnson allow only process performance results (no process capability). Johnson is fully automatic.") values: [ {label: qsTr("None"), value: "none"}, @@ -227,6 +258,7 @@ Form negativeValues: true defaultValue: 0 enabled: ["boxCox", "boxCoxAuto"].includes(dataTransformation.value) + info: qsTr("Value of the shift parameter for transforms accepting bounded data. Disabled for unbounded transforms (Yeo-Johnson, Johnson).") } DoubleField { @@ -235,11 +267,13 @@ Form negativeValues: true defaultValue: 0 enabled: ["boxCox", "yeoJohnson"].includes(dataTransformation.value) + info: qsTr("Value of the lambda parameter of the transform. Disabled for transforms that estimate their parameter automatically.") } DropDown { name: "dataTransformationMethod" label: qsTr("Type") + info: qsTr("Method for selecting the best lambda. Log-Lik maximises the normal likelihood; SD minimises the sum of squares; Average moving range minimises variability based on the moving range (appropriate for individuals data).") values: [ {label: qsTr("Log. Lik"), value: "loglik"}, @@ -254,11 +288,13 @@ Form name: "dataTransformationContinuityAdjustment" checked: false enabled: ["boxCox", "boxCoxAuto"].includes(dataTransformation.value) + info: qsTr("Include the continuity adjustment term in the Box-Cox transform.") } } Group { title: qsTr("Type of data distribution") + info: qsTr("Whether the data approximate a normal distribution or another distribution.") RadioButtonGroup @@ -272,6 +308,7 @@ Form id : normalCapabilityAnalysis label: qsTr("Normal distribution") checked: true + info: qsTr("Assume the data are approximately normally distributed.") CheckBox @@ -280,6 +317,7 @@ Form label: qsTr("Historical mean") id: historicalMean childrenOnSameRow: true + info: qsTr("Use a fixed historical mean instead of estimating it from the data.") DoubleField { @@ -297,6 +335,7 @@ Form label: qsTr("Historical std. dev.") id: historicalStdDev childrenOnSameRow: true + info: qsTr("Use a fixed historical standard deviation instead of estimating it from the data.") DoubleField { @@ -315,12 +354,14 @@ Form name: "nonNormalCapabilityAnalysis" id : nonNormalCapabilityAnalysis label: qsTr("Non-normal distribution") + info: qsTr("Assume the data follow a specified non-normal distribution.") DropDown { name: "nonNormalDistribution" id: nonNormalDistribution label: qsTr("Specify a distribution") + info: qsTr("The non-normal distribution used to model the data.") values: [ {label: qsTr("Weibull"), value: "weibull"}, @@ -451,6 +492,7 @@ Form name: "nonNormalMethod" label: qsTr("Non-normal capability statistics") indexDefaultValue: 0 + info: qsTr("Method used to calculate the capability statistics for non-normally distributed data. Historical parameter fields below let you fix selected distribution parameters instead of estimating them.") values: [ {label: qsTr("Percentile"), value: "percentile"}, @@ -471,6 +513,7 @@ Form label: qsTr("Lower specification limit") id: lowerSpecificationLimit childrenOnSameRow: true + info: qsTr("The value used as the lower tolerance limit.") DoubleField { @@ -486,6 +529,7 @@ Form name: "lowerSpecificationLimitBoundary" label: qsTr("Boundary") id: lowerSpecificationLimitBoundary + info: qsTr("Whether the lower specification limit is a physical boundary that cannot be exceeded.") } } @@ -495,6 +539,7 @@ Form label: qsTr("Target value") id: target childrenOnSameRow: true + info: qsTr("The value used as the target.") DoubleField { @@ -512,6 +557,7 @@ Form label: qsTr("Upper specification limit") id: upperSpecificationLimit childrenOnSameRow: true + info: qsTr("The value used as the upper tolerance limit.") DoubleField { @@ -527,6 +573,7 @@ Form name: "upperSpecificationLimitBoundary" label: qsTr("Boundary") id: upperSpecificationLimitBoundary + info: qsTr("Whether the upper specification limit is a physical boundary that cannot be exceeded.") } } @@ -536,6 +583,7 @@ Form label: qsTr("Process capability plot") checked: true enabled: upperSpecificationLimit.checked || lowerSpecificationLimit.checked + info: qsTr("Plot the frequency distribution with the fitted distribution based on the overall and within process variation, compared to the specification limits.") DoubleField { @@ -545,6 +593,7 @@ Form min: 3; max: 10000; enabled: csBinWidthType.currentValue === "manual" + info: qsTr("Number of classes (bins) plotted in the process capability plot.") } CheckBox @@ -552,6 +601,7 @@ Form name: "processCapabilityPlotDistributions" label: qsTr("Overlay distribution") checked: true + info: qsTr("Overlay the fitted distribution curves (within and overall) on the plot.") } CheckBox @@ -559,12 +609,14 @@ Form name: "processCapabilityPlotSpecificationLimits" label: qsTr("Display specification limits") checked: true + info: qsTr("Display the specification limits as vertical lines on the plot.") } RadioButtonGroup { name: "processCapabilityPlotXAxisModification" title: qsTr("Axis modifications") + info: qsTr("Optional modifications to the x-axis labelling of the plot.") RadioButton { value: "none"; label: qsTr("None"); checked: true } RadioButton { value: "thin"; label: qsTr("Thin x-axis labels") } @@ -578,16 +630,18 @@ Form label: qsTr("Process capability tables") checked: true enabled: upperSpecificationLimit.checked || lowerSpecificationLimit.checked + info: qsTr("Display the process capability and performance tables (Cp, Cpk, Pp, Ppk, Cpm, and non-conformance statistics).") CheckBox { - name: "processCapabilityTableCi"; + name: "processCapabilityTableCi"; label: qsTr("Confidence intervals") checked: capabilityStudyType.value == "normalCapabilityAnalysis" enabled: capabilityStudyType.value == "normalCapabilityAnalysis" childrenOnSameRow: true + info: qsTr("Display confidence intervals for the capability statistics (normal distribution only); set the confidence level alongside.") - CIField + CIField { name: "processCapabilityTableCiLevel" defaultValue: 90} @@ -597,6 +651,7 @@ Form { name: "processCapabilityTableZ" label: qsTr("Z (ST) / Z (LT)") + info: qsTr("Display the short-term Z (ST) and long-term Z (LT) sigma-level statistics.") } CheckBox @@ -618,6 +673,7 @@ Form Group { title: qsTr("Stability of the process") + info: qsTr("Control charts used to assess whether the process is in a state of statistical control.") CheckBox { @@ -626,7 +682,8 @@ Form checked: true childrenOnSameRow: true columns: 1 - + info: qsTr("Display a control chart of the process to assess its stability; select the chart type below.") + DropDown { @@ -691,18 +748,21 @@ Form Group { title: qsTr("Distribution of the process") + info: qsTr("Visualisations of the distribution of the process data.") CheckBox { name: "histogram" label: qsTr("Histogram") checked: true + info: qsTr("Display a histogram of the process values.") CheckBox { name: "histogramDensityLine" label: qsTr("Fit distribution") checked: true + info: qsTr("Add a line representing the fitted distribution to the histogram.") } DoubleField @@ -712,6 +772,7 @@ Form defaultValue: 10 min: 3; max: 10000; + info: qsTr("Number of bins used for the histogram.") } } @@ -720,11 +781,13 @@ Form name: "probabilityPlot" label: qsTr("Probability table and plot") checked: true + info: qsTr("Display the probability table and plot, examining whether the data follow the chosen distribution.") CheckBox { name: "probabilityPlotGridLines" label: qsTr("Display grid lines") + info: qsTr("Add grid lines to the probability plot.") } } } @@ -742,14 +805,16 @@ Form name: "report" label: qsTr("Show Report") columns: 1 - - + info: qsTr("Display a formatted process capability report combining the selected metadata and components.") + + CheckBox { name: "reportMetaData" label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, location, machine, variable, date, etc.) in the report.") CheckBox { @@ -899,7 +964,8 @@ Form Group { title: qsTr("Select report components") - + info: qsTr("Choose which charts and tables are included in the report.") + CheckBox { name: "reportProcessStability" @@ -947,6 +1013,7 @@ Form name: "probabilityPlotRankMethod" label: qsTr("Rank method for probability plot") indexDefaultValue: 0 + info: qsTr("Method used to calculate the rank of the data in the probability plot. Benard's median rank is the most common and very close to the exact method.") values: [ { value: "bernard", label: qsTr("Median Rank (Benard)") }, @@ -955,17 +1022,18 @@ Form { value: "hazen", label: qsTr("Modified Kaplan-Meier (Hazen)")} ] } - + DropDown { name: "histogramBinBoundaryDirection" id: histogramBinBoundaryDirection label: qsTr("Histogram bin boundaries") - values: + info: qsTr("Whether the histogram bin intervals are left-open or right-open.") + values: [ { label: qsTr("Left open"), value: "left"}, { label: qsTr("Right open"), value: "right"} - + ] } @@ -974,7 +1042,8 @@ Form name: "nullDistribution" id: nullDistribution label: qsTr("Null distribution for probability plot") - values: + info: qsTr("The distribution used to examine the data in the probability plot.") + values: [ { label: qsTr("Normal"), value: "normal" }, { label: qsTr("Log-normal"), value: "lognormal" }, @@ -1012,7 +1081,8 @@ Form name: "controlChartSdEstimationMethodGroupSize" id: controlChartSdEstimationMethodGroupSize label: qsTr("Method for estimating within subgroup std. dev. for subgroup size") - values: + info: qsTr("Whether the within-subgroup standard deviation is estimated for subgroups larger than one or for individual observations (size of one).") + values: [ { label: qsTr(" > 1"), value: "largerThanOne"}, { label: qsTr("= 1"), value: "equalOne"} @@ -1027,6 +1097,7 @@ Form id: controlChartSdEstimationMethodGroupSizeLargerThanOne visible: controlChartSdEstimationMethodGroupSize.currentValue == "largerThanOne" label: "" + info: qsTr("Estimator for the within-subgroup standard deviation. Pooled is a common default for capability analysis and is the most efficient estimate of the within-subgroup variation, especially for larger or unequal subgroups.") values: [ { label: qsTr("R-bar"), value: "rBar"}, @@ -1058,6 +1129,7 @@ Form defaultValue: 2 min: 2 max: dataSetModel.rowCount() + info: qsTr("Number of consecutive observations spanned by each moving range when estimating the standard deviation for individuals data.") } CheckBox @@ -1066,6 +1138,7 @@ Form label: qsTr("Use unbiasing constant") visible: controlChartSdEstimationMethodGroupSize.currentIndex == 1 ? false : true checked: true + info: qsTr("Apply the unbiasing constant when estimating the standard deviation.") } } @@ -1076,6 +1149,7 @@ Form fieldWidth: 30 defaultValue: 3 min: .000001 + info: qsTr("Number of standard deviations from the central line used to compute the control limits.") } } diff --git a/inst/qml/rareEventCharts.qml b/inst/qml/rareEventCharts.qml index 412a78864..4f58442dc 100644 --- a/inst/qml/rareEventCharts.qml +++ b/inst/qml/rareEventCharts.qml @@ -6,6 +6,17 @@ Form { columns: 2 + info: qsTr("Rare event control charts (g chart and t chart) are alternatives to the Shewhart chart for monitoring events that occur infrequently, where the number of opportunities or the time between events is more meaningful than tracking continuous data. The g chart monitors the number of opportunities between rare events; the t chart monitors the time between rare events.") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("G chart: the number of time units or opportunities between rare events, highlighting deviations from expected intervals.") + "\n" + + "- " + qsTr("T chart: the time intervals between rare events, for identifying process shifts.") + "\n" + + "- " + qsTr("Out-of-control signals are flagged using the tests selected under Advanced Options.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Montgomery, D. C. (2009). Introduction to statistical quality control. John Wiley & Sons.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- qcc\n- jaspGraphs\n- ggrepel\n" + VariablesForm { id: variablesForm @@ -21,6 +32,7 @@ Form id: variable allowedColumns: dataType.value == "dataTypeInterval" & dataTypeIntervalType.value != "time" ? ["scale"] : ["nominal"] singleVariable: true + info: qsTr("Either the timepoint at which each event took place or the interval between events.") } AssignedVariablesList @@ -30,6 +42,7 @@ Form id: stages allowedColumns: ["nominal"] singleVariable: true + info: qsTr("A column that splits the analysis into multiple stages.") } } @@ -38,24 +51,27 @@ Form name: "dataType" title: qsTr("Data type") id: dataType + info: qsTr("Whether the variable contains the timepoint at which each event occurred or the interval between events.") RadioButton { value: "dataTypeDates" label: qsTr("Date/time") checked: true + info: qsTr("The data specify a timepoint at which each event took place.") DropDown { name: "dataTypeDatesStructure" id: dataTypeDatesStructure label: qsTr("Structure") - values: + info: qsTr("The structure of the timepoints: date only, time only, date and time, or time and date.") + values: [ { label: qsTr("Date + Time"), value: "dateTime"}, { label: qsTr("Time + Date"), value: "timeDate"}, { label: qsTr("Date only"), value: "dateOnly"}, - { label: qsTr("Time only"), value: "timeOnly"} + { label: qsTr("Time only"), value: "timeOnly"} ] indexDefaultValue: 0 } @@ -66,7 +82,8 @@ Form id: dataTypeDatesFormatDate label: qsTr("Date format") visible: dataTypeDatesStructure.value != "timeOnly" - values: + info: qsTr("The date format in the data, where D = day, M = month, Y = year (e.g. DMY = 30/12/2024). The separator symbol does not matter.") + values: [ { label: qsTr("DMY"), value: "dmy"}, { label: qsTr("MDY"), value: "mdy"}, @@ -83,13 +100,14 @@ Form id: dataTypeDatesFormatTime label: qsTr("Time format") visible: dataTypeDatesStructure.value != "dateOnly" - values: + info: qsTr("The time format in the data, where H = hour, M = minute, S = second (e.g. HMS = 01:02:03). Ip and IMp refer to integer hours with am/pm (e.g. 12pm, 12:30pm). The separator symbol does not matter.") + values: [ { label: qsTr("H"), value: "H"}, { label: qsTr("HM"), value: "HM"}, { label: qsTr("HMS"), value: "HMS"}, { label: qsTr("Ip"), value: "Ip"}, - { label: qsTr("IMp"), value: "IMp"} + { label: qsTr("IMp"), value: "IMp"} ] indexDefaultValue: 1 } @@ -100,18 +118,20 @@ Form value: "dataTypeInterval" label: qsTr("Interval between events") childrenOnSameRow: false + info: qsTr("The data specify the time or number of opportunities between events.") DropDown { name: "dataTypeIntervalType" id: dataTypeIntervalType label: qsTr("Interval type") - values: + info: qsTr("The unit in which the interval is expressed. Opportunities, hours, and days are read as is (times treated as decimal, e.g. 1.25 hours = 1 hour 15 minutes). Select Time to specify a time format.") + values: [ { label: qsTr("Opportunities"), value: "opportunities"}, { label: qsTr("Time"), value: "time"}, { label: qsTr("Hours (decimal)"), value: "hours"}, - { label: qsTr("Days (decimal)"), value: "days"} + { label: qsTr("Days (decimal)"), value: "days"} ] indexDefaultValue: 0 } @@ -122,13 +142,14 @@ Form id: dataTypeIntervalTimeFormat label: qsTr("Time format") visible: dataTypeIntervalType.value == "time" - values: + info: qsTr("The time format of the interval, where H = hour, M = minute, S = second.") + values: [ { label: qsTr("H"), value: "H"}, { label: qsTr("HM"), value: "HM"}, { label: qsTr("HMS"), value: "HMS"}, { label: qsTr("Ip"), value: "Ip"}, - { label: qsTr("IMp"), value: "IMp"} + { label: qsTr("IMp"), value: "IMp"} ] indexDefaultValue: 1 } @@ -143,13 +164,15 @@ Form name: "gChart" label: qsTr("G chart") checked: true + info: qsTr("Display the g chart, monitoring the number of opportunities between rare events.") DropDown { name: "gChartProportionSource" id: gChartProportionSource label: qsTr("Proportion") - values: + info: qsTr("Source of the proportion used in the g chart calculations: estimated from the data or a historical value.") + values: [ { label: qsTr("Estimated from data"), value: "data"}, { label: qsTr("Historical"), value: "historical"} @@ -166,6 +189,7 @@ Form max: 1 visible: gChartProportionSource.value == "historical" defaultValue: 0.5 + info: qsTr("The historical proportion value. Only used when the proportion source is Historical.") } } @@ -174,13 +198,15 @@ Form name: "tChart" label: qsTr("T chart") checked: false - + info: qsTr("Display the t chart, monitoring the time between rare events.") + DropDown { name: "tChartDistribution" id: tChartDistribution label: qsTr("Based on") - values: + info: qsTr("Distribution used to calculate the t chart control limits.") + values: [ { label: qsTr("Weibull distribution"), value: "weibull"}, { label: qsTr("Exponential distribution"), value: "exponential"} @@ -193,7 +219,8 @@ Form name: "tChartDistributionParameterSource" id: tChartDistributionParameterSource label: qsTr("Distribution parameters") - values: + info: qsTr("Source of the distribution parameters: best-fit estimate from the data or historical values.") + values: [ { label: qsTr("Estimated from data"), value: "data"}, { label: qsTr("Historical"), value: "historical"} @@ -210,9 +237,10 @@ Form inclusive: JASP.None visible: tChartDistributionParameterSource.value == "historical" & tChartDistribution.value == "weibull" defaultValue: 2 + info: qsTr("Historical Weibull shape parameter. Only used with a Weibull distribution and historical parameters.") } - + DoubleField { name: "tChartHistoricalParametersScale" @@ -222,6 +250,7 @@ Form inclusive: JASP.None visible: tChartDistributionParameterSource.value == "historical" defaultValue: 2 + info: qsTr("Historical scale parameter of the distribution. Only used with historical parameters.") } } } @@ -236,6 +265,7 @@ Form name: "report" label: qsTr("Show Report") columns: 1 + info: qsTr("Display a formatted report of the rare event charts combining the selected metadata and charts.") CheckBox { @@ -243,6 +273,7 @@ Form label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, chart name, measurement, date, etc.) in the report.") CheckBox { @@ -397,6 +428,7 @@ Form Group { title: qsTr("Tests for control charts") + info: qsTr("Out-of-control tests applied to the rare event charts.") DropDown { @@ -404,6 +436,7 @@ Form label: qsTr("Test set") id: testSet indexDefaultValue: 0 + info: qsTr("Predefined JASP test set, or a custom selection of tests that can be individually modified.") values: [ { label: qsTr("JASP"), value: "jaspDefault"}, { label: qsTr("Custom selection"), value: "custom"} @@ -417,6 +450,7 @@ Form label: qsTr("One point outside of control limits - Test 1: Beyond limit") checked: true visible: testSet.currentValue == "custom" + info: qsTr("Test 1 (beyond limit): flag one point beyond the control limits.") } CheckBox @@ -426,6 +460,7 @@ Form checked: testSet.currentValue == "custom" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 2 (shift): flag N consecutive points on the same side of the central line.") IntegerField { @@ -444,6 +479,7 @@ Form checked: testSet.currentValue == "custom" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 3 (trend): flag N consecutive points all increasing or all decreasing.") IntegerField { @@ -462,6 +498,7 @@ Form checked: testSet.currentValue == "custom" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 8 (oscillation): flag N points in a row alternating up and down.") IntegerField { @@ -480,6 +517,7 @@ Form checked: testSet.currentValue == "custom" visible: testSet.currentValue == "custom" childrenOnSameRow: true + info: qsTr("Test 9 (Benneyan test): flag N points in a row equal to 0.") IntegerField { diff --git a/inst/qml/timeWeightedCharts.qml b/inst/qml/timeWeightedCharts.qml index fd7d2088d..fbb3adea1 100644 --- a/inst/qml/timeWeightedCharts.qml +++ b/inst/qml/timeWeightedCharts.qml @@ -6,12 +6,28 @@ Form { columns: 2 + info: qsTr("Time-weighted control charts are alternatives to the Shewhart chart for detecting small process shifts in Phase II monitoring. The cumulative sum (CUSUM) chart plots a running total of deviations from a target, while the exponentially weighted moving average (EWMA) chart weights recent observations more heavily. Both monitor the process mean using previous values at each point.") + + infoBottom: "## " + qsTr("Assumptions") + "\n" + + "- " + qsTr("Sequential (time-ordered) measurements, independent of one another, and approximately normally distributed (or large enough subgroups for the average to be approximately normal).") + "\n" + + "\n---\n## " + qsTr("Output") + "\n" + + "- " + qsTr("CUSUM chart: cumulative deviations from the target, plotting the upper and lower CUSUM statistics versus the sample number.") + "\n" + + "- " + qsTr("EWMA chart: the exponentially weighted moving average of the process mean over time.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Page, E. S. (1954). Continuous inspection schemes. Biometrika, 41(1-2), 100-115.") + "\n" + + "- " + qsTr("Roberts, S. W. (1959). Control chart tests based on geometric moving averages. Technometrics, 1(3), 239-250.") + "\n" + + "- " + qsTr("Montgomery, D. C. (2013). Introduction to statistical quality control (7th ed.). John Wiley & Sons.") + "\n" + + "- " + qsTr("International Organization for Standardization (2021). Control charts – Part 4: Cumulative sum charts. ISO 7870-4:2021.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- qcc\n- jaspGraphs\n- ggrepel\n" + DropDown { name: "dataFormat" label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 + info: qsTr("Layout of the data: all observations in one column (\"Single column\") or one subgroup per row (\"Across rows\").") values: [ { label: qsTr("Single column"), value: "longFormat"}, { label: qsTr("Across rows"), value: "wideFormat"} @@ -35,6 +51,7 @@ Form id: measurementLongFormat allowedColumns: ["scale"] singleVariable: true + info: qsTr("The observations collected from the process.") } AssignedVariablesList @@ -45,6 +62,7 @@ Form singleVariable: true allowedColumns: ["nominal"] enabled: subgroupSizeType.value == "groupingVariable" | subgroupSizeType.value == "individual" + info: qsTr("The subgroup each observation is assigned to, or (for individual observations) an optional timestamp used as x-axis labels.") } AssignedVariablesList @@ -54,6 +72,7 @@ Form title: qsTr("Stages") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages by assigning a stage to each subgroup.") } } @@ -75,6 +94,7 @@ Form title: qsTr("Measurements") id: measurementsWideFormat allowedColumns: ["scale"] + info: qsTr("The measurement columns, with one subgroup per row.") } @@ -86,6 +106,7 @@ Form title: qsTr("Timestamp (optional)") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("Optional subgroup names for each row, used as x-axis labels.") } AssignedVariablesList @@ -95,6 +116,7 @@ Form title: qsTr("Stages") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages by assigning a stage to each subgroup row.") } } @@ -107,12 +129,14 @@ Form title: qsTr("Specify subgroups") id: subgroupSizeType visible: dataFormat.currentValue == "longFormat" + info: qsTr("How subgroups are formed from a single column of observations.") RadioButton { value: "individual" label: qsTr("No subgroups (n = 1)") checked: true + info: qsTr("Treat each observation as an individual measurement (subgroup size of one).") } RadioButton @@ -120,7 +144,8 @@ Form value: "manual" label: qsTr("Subgroup size") childrenOnSameRow: true - + info: qsTr("Assign observations in order of appearance to subgroups of the specified size.") + IntegerField { name: "manualSubgroupSizeValue" @@ -128,18 +153,20 @@ Form defaultValue: 5 } } - + RadioButton { value: "groupingVariable" label: qsTr("Through grouping variable") + info: qsTr("Use a single-column subgroup variable that assigns each observation to a subgroup.") DropDown { name: "groupingVariableMethod" id: groupingVariable label: "Grouping method" - values: + info: qsTr("How to group when identical subgroup values are not adjacent. \"Subgroup value change\" groups only adjacent identical values; \"Same subgroup value\" groups all identical values regardless of adjacency.") + values: [ { label: qsTr("Subgroup value change"), value: "newLabel"}, { label: qsTr("Same subgroup value"), value: "sameLabel"} @@ -161,12 +188,14 @@ Form name: "cumulativeSumChart" label: qsTr("Cumulative sum chart") checked: true + info: qsTr("Display the cumulative sum (CUSUM) chart, sensitive to small shifts in the process mean.") DoubleField { name: "cumulativeSumChartNumberSd" label: qsTr("Number of std. dev. for control limits") defaultValue: 4 + info: qsTr("Standardised decision interval (h), the number of standard deviations defining the control limits. Typically 4 or 5.") } DoubleField @@ -174,6 +203,7 @@ Form name: "cumulativeSumChartShiftSize" label: qsTr("Shift size") defaultValue: 0.5 + info: qsTr("Reference value (k, or allowable slack), usually about halfway between the target and the shift to detect. Typically 0.5.") } DoubleField @@ -181,9 +211,10 @@ Form name: "cumulativeSumChartTarget" label: qsTr("Target") defaultValue: 0 + info: qsTr("Value used as the target (nominal) from which cumulative deviations are computed.") } - Group + Group { DropDown { @@ -191,6 +222,7 @@ Form label: qsTr("Std. dev.") id: cumulativeSumChartSdSource indexDefaultValue: 0 + info: qsTr("Source of the standard deviation used to form the CUSUM: estimated from the data or a historical value.") values: [ { label: qsTr("Estimated from data"), value: "data"}, { label: qsTr("Historical"), value: "historical"} @@ -203,6 +235,7 @@ Form visible: cumulativeSumChartSdSource.currentValue == "data" label: qsTr("Std. dev. estimation method") id: cumulativeSumChartSdMethod + info: qsTr("Method used to estimate the standard deviation from the data.") values: (subgroupSizeType.value == "individual" & dataFormat.currentValue == "longFormat") ? [ { label: qsTr("X-mR"), value: "averageMovingRange"} @@ -221,6 +254,7 @@ Form visible: cumulativeSumChartSdSource.currentValue == "historical" defaultValue: 3 fieldWidth: 50 + info: qsTr("The historical standard deviation value. Only used when the std. dev. source is Historical.") } IntegerField @@ -230,6 +264,7 @@ Form visible: exponentiallyWeightedMovingAverageChartSdSource.currentValue == "data" & cumulativeSumChartSdMethod.currentValue == "averageMovingRange" min: 2 defaultValue: 2 + info: qsTr("Number of consecutive observations spanned by each moving range when estimating the standard deviation.") } } } @@ -238,13 +273,15 @@ Form { name: "exponentiallyWeightedMovingAverageChart" label: qsTr("Exponentially weighted moving average chart") + info: qsTr("Display the exponentially weighted moving average (EWMA) chart, which weights recent observations more heavily to detect small shifts.") + - DoubleField { name: "exponentiallyWeightedMovingAverageChartSigmaControlLimits" label: qsTr("Number of std. dev. for control limits") defaultValue: 3 + info: qsTr("Number of standard deviations from the central line used to compute the EWMA control limits.") } DoubleField @@ -252,9 +289,10 @@ Form name: "exponentiallyWeightedMovingAverageChartLambda" label: qsTr("Lambda (smoothing parameter)") defaultValue: 0.3 + info: qsTr("Smoothing parameter (lambda) between 0 and 1; smaller values give more weight to past observations.") } - Group + Group { DropDown { @@ -262,18 +300,20 @@ Form label: qsTr("In-control std. dev.") id: exponentiallyWeightedMovingAverageChartSdSource indexDefaultValue: 0 + info: qsTr("Source of the in-control standard deviation: estimated from the data or a historical value.") values: [ { label: qsTr("Estimated from data"), value: "data"}, { label: qsTr("Historical"), value: "historical"} ] } - + DropDown { name: "exponentiallyWeightedMovingAverageChartSdMethod" visible: exponentiallyWeightedMovingAverageChartSdSource.currentValue == "data" label: qsTr("Std. dev. estimation method") id: exponentiallyWeightedMovingAverageChartSdMethod + info: qsTr("Method used to estimate the standard deviation from the data.") values: subgroupSizeType.value == "individual" ? [ { label: qsTr("X-mR"), value: "averageMovingRange"} @@ -292,8 +332,9 @@ Form visible: exponentiallyWeightedMovingAverageChartSdSource.currentValue == "historical" defaultValue: 3 fieldWidth: 50 + info: qsTr("The historical standard deviation value. Only used when the std. dev. source is Historical.") } - + IntegerField { name: "exponentiallyWeightedMovingAverageChartMovingRangeLength" @@ -301,6 +342,7 @@ Form visible: exponentiallyWeightedMovingAverageChartSdSource.currentValue == "data" & exponentiallyWeightedMovingAverageChartSdMethod.currentValue == "averageMovingRange" min: 2 defaultValue: 2 + info: qsTr("Number of consecutive observations spanned by each moving range when estimating the standard deviation.") } @@ -317,6 +359,7 @@ Form name: "report" label: qsTr("Show Report") columns: 1 + info: qsTr("Display a formatted report of the time-weighted charts combining the selected metadata and charts.") CheckBox { @@ -324,6 +367,7 @@ Form label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, chart name, measurement, date, etc.) in the report.") CheckBox { @@ -480,6 +524,7 @@ Form Group { title: qsTr("Tests for control charts") + info: qsTr("Out-of-control tests applied to the time-weighted charts.") CheckBox { @@ -487,6 +532,7 @@ Form label: qsTr("Points outside of control limits") checked: true enabled: true + info: qsTr("Flag any point beyond the control limits.") } } } diff --git a/inst/qml/variablesChartsIndividuals.qml b/inst/qml/variablesChartsIndividuals.qml index dc416b841..8f0fccbc8 100644 --- a/inst/qml/variablesChartsIndividuals.qml +++ b/inst/qml/variablesChartsIndividuals.qml @@ -8,6 +8,21 @@ Form { columns: 1 + info: qsTr("Variable charts for individuals (Shewhart control charts) study how a process changes over time using individual measurements rather than subgroups. The individual moving range (X-mR) chart is the preferred alternative to X-bar & R / X-bar & s charts for low-volume production or when there is no practical rational subgroup. An autocorrelation chart models the pairwise correlation of values at successive lags.") + + infoBottom: "## " + qsTr("Assumptions") + "\n" + + "- " + qsTr("X-mR chart: sequential (time-ordered) measurements, independent data points, and approximately normally distributed data.") + "\n" + + "- " + qsTr("Autocorrelation chart: data points are dependent on one another (each related to the next).") + "\n" + + "\n---\n## " + qsTr("Output") + "\n" + + "- " + qsTr("X-mR chart: the process value and moving range (MR) over time.") + "\n" + + "- " + qsTr("Autocorrelation: the autocorrelation across the lags.") + "\n" + + "- " + qsTr("Out-of-control signals are flagged using the tests selected under Advanced Options. Only tests 1, 2, 3 and 8 are applied to the moving range chart.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.") + "\n" + + "- " + qsTr("Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual (2nd ed.). AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- qcc\n- jaspGraphs\n- ggrepel\n- stats\n" + VariablesForm { preferredHeight: jaspTheme.smallDefaultVariablesFormHeight @@ -23,6 +38,7 @@ Form title: qsTr("Measurement") singleVariable: true allowedColumns: ["scale"] + info: qsTr("The observations collected from the process.") } AssignedVariablesList @@ -31,14 +47,16 @@ Form title: qsTr("Timestamp (optional)") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("Optional labels for each observation, used as x-axis labels.") } - + AssignedVariablesList { name: "stage" title: qsTr("Stage") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages.") } } @@ -51,6 +69,7 @@ Form name: "xmrChart" label: qsTr("X-mR chart") checked: true + info: qsTr("Display the individual moving range (X-mR) chart of the process value and moving range over time.") DoubleField { @@ -59,6 +78,7 @@ Form defaultValue: 2 min: 2 max: (dataSetInfo.rowCount < 2)? 2 : dataSetInfo.rowCount + info: qsTr("Number of consecutive observations spanned by each moving range.") } } @@ -67,6 +87,7 @@ Form name: "autocorrelationPlot" label: qsTr("Autocorrelation") checked: false + info: qsTr("Display the autocorrelation chart of the measurements across lags.") DoubleField { @@ -74,6 +95,7 @@ Form label: qsTr("Number of lags") defaultValue: 25 min: 1 + info: qsTr("Number of lags shown on the autocorrelation chart.") } DoubleField @@ -82,6 +104,7 @@ Form label: qsTr("Confidence interval size") defaultValue: 0.95 min: 0.0001 + info: qsTr("Size of the confidence interval used to calculate the autocorrelation limits.") } } } @@ -96,6 +119,7 @@ Form label: qsTr("Show report") id: variableChartIndividualsReport columns: 1 + info: qsTr("Display a formatted report of the control charts combining the selected metadata and charts.") CheckBox { @@ -103,6 +127,7 @@ Form label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, chart name, measurement, date, etc.) in the report.") CheckBox { @@ -250,7 +275,8 @@ Form Group { title: qsTr("Select Report Components") - + info: qsTr("Choose which charts are included in the report.") + CheckBox { name: "reportIMRChart" @@ -279,6 +305,7 @@ Form fieldWidth: 30 defaultValue: 3 min: 1 + info: qsTr("Number of standard deviations from the central line used to compute the control limits.") } Common.ControlChartTests {} diff --git a/inst/qml/variablesChartsSubgroups.qml b/inst/qml/variablesChartsSubgroups.qml index 6a3e0128a..ecff54c84 100644 --- a/inst/qml/variablesChartsSubgroups.qml +++ b/inst/qml/variablesChartsSubgroups.qml @@ -8,12 +8,24 @@ Form { columns: 2 + info: qsTr("Control charts model the variation of a process, indicating its stability and establishing a state of statistical control. Variable charts for subgroups monitor the behaviour of a dimensional (continuous) variable, using either historical data (Phase 2) or new data (Phase 1).") + + infoBottom: "## " + qsTr("Output") + "\n" + + "- " + qsTr("X-bar & R chart: plots the process mean (X-bar) and process range (R) over time.") + "\n" + + "- " + qsTr("X-bar & s chart: plots the process mean (X-bar) and process standard deviation (s) over time.") + "\n" + + "- " + qsTr("Out-of-control signals are flagged using the tests selected under Advanced Options.") + "\n" + + "\n---\n## " + qsTr("References") + "\n" + + "- " + qsTr("Duncan, A. J. (1986). Quality control and industrial statistics. Richard D. Irwin, Inc.; Automotive Industry Action Group (2005). Statistical process control (SPC) – Reference manual. AIAG.") + "\n" + + "\n---\n## " + qsTr("R Packages") + "\n" + + "- ggplot2\n- qcc\n- jaspGraphs\n- ggrepel\n- tidyr\n- tibble\n" + DropDown { name: "dataFormat" label: qsTr("Data format") id: dataFormat indexDefaultValue: 0 + info: qsTr("Layout of the data: all observations in one column (\"Single column\") or one subgroup per row (\"Across rows\").") values: [ { label: qsTr("Single column"), value: "longFormat"}, { label: qsTr("Across rows"), value: "wideFormat"} @@ -37,6 +49,7 @@ Form id: measurementLongFormat allowedColumns: ["scale"] singleVariable: true + info: qsTr("The observations collected from the process.") } AssignedVariablesList @@ -47,6 +60,7 @@ Form singleVariable: true allowedColumns: ["nominal"] enabled: subgroupSizeType.value == "groupingVariable" + info: qsTr("The subgroup each observation is assigned to, when all observations are in a single column.") } AssignedVariablesList @@ -56,6 +70,7 @@ Form title: qsTr("Stages") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages by assigning a stage to each subgroup.") } } @@ -76,6 +91,7 @@ Form title: qsTr("Measurements") id: measurementsWideFormat allowedColumns: ["scale"] + info: qsTr("The measurement columns, with one subgroup per row.") } @@ -87,6 +103,7 @@ Form title: qsTr("Timestamp (optional)") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("Optional subgroup names for each row, used as x-axis labels.") } AssignedVariablesList @@ -96,6 +113,7 @@ Form title: qsTr("Stages") singleVariable: true allowedColumns: ["nominal"] + info: qsTr("A column that splits the analysis into multiple stages by assigning a stage to each subgroup (one stage per subgroup row).") } } @@ -107,7 +125,8 @@ Form name: "subgroupSizeType" title: qsTr("Specify subgroups") id: subgroupSizeType - visible: dataFormat.currentValue == "longFormat" + visible: dataFormat.currentValue == "longFormat" + info: qsTr("How subgroups are formed from a single column of observations.") RadioButton { @@ -115,7 +134,8 @@ Form label: qsTr("Subgroup size") checked: true childrenOnSameRow: true - + info: qsTr("Assign observations in order of appearance to subgroups of the specified size. If the count is not divisible, the last subgroup holds the remaining observations.") + DoubleField { name: "manualSubgroupSizeValue" @@ -123,18 +143,20 @@ Form defaultValue: 5 } } - + RadioButton { value: "groupingVariable" label: qsTr("Through grouping variable") + info: qsTr("Use a single-column subgroup variable that assigns each observation to a subgroup.") DropDown { name: "groupingVariableMethod" id: groupingVariable label: "Grouping method" - values: + info: qsTr("How to group when identical subgroup values are not adjacent. \"Subgroup value change\" groups only adjacent identical values; \"Same subgroup value\" groups all identical values regardless of adjacency.") + values: [ { label: qsTr("Subgroup value change"), value: "newLabel"}, { label: qsTr("Same subgroup value"), value: "sameLabel"} @@ -151,21 +173,24 @@ Form name: "subgroupSizeUnequal" title: qsTr("Unequal subgroup sizes") id: subgroupSizeUnequal + info: qsTr("How to handle subgroups of differing sizes when computing the process variance and control limits.") RadioButton { value: "actualSizes" label: qsTr("Use actual sizes") checked: true + info: qsTr("Compute control limits per subgroup using the actual subgroup sizes.") } - + RadioButton { value: "fixedSubgroupSize" label: qsTr("Use fixed subgroup size") childrenOnSameRow: true + info: qsTr("Assume a single fixed subgroup size, producing the same control limits for all groups.") - IntegerField + IntegerField { name: "fixedSubgroupSizeValue" fieldWidth: 30 @@ -185,18 +210,21 @@ Form { name: "chartType" id: chartType + info: qsTr("Which pair of control charts to display.") RadioButton { value: "xBarAndS" label: qsTr("X-bar & s") checked: true + info: qsTr("Plot the process mean (X-bar) and the process standard deviation (s).") } RadioButton { value: "xBarAndR" label: qsTr("X-bar & R") + info: qsTr("Plot the process mean (X-bar) and the process range (R).") } } @@ -204,12 +232,14 @@ Form { name: "warningLimits" label: qsTr("Warning limits") + info: qsTr("Plot limits one and two standard deviations from the central line.") } CheckBox { name: "knownParameters" label: qsTr("Known parameters") + info: qsTr("Use known historical parameter values (Phase 2) for the mean and standard deviation.") DoubleField { @@ -242,6 +272,7 @@ Form name: "report" label: qsTr("Show Report") columns: 1 + info: qsTr("Display a formatted report of the control charts combining the selected metadata and charts.") CheckBox { @@ -249,6 +280,7 @@ Form label: qsTr("Show report metadata") checked: true columns: 2 + info: qsTr("Include a metadata header (title, chart name, measurement, date, etc.) in the report.") CheckBox { @@ -405,6 +437,7 @@ Form name: "xBarAndSUnbiasingConstant" label: qsTr("Use unbiasing constant for X-bar & s control chart") checked: true + info: qsTr("Apply the unbiasing constant when estimating the standard deviation for the X-bar & s control chart.") } DoubleField @@ -414,6 +447,7 @@ Form fieldWidth: 30 defaultValue: 3 min: 1 + info: qsTr("Number of standard deviations from the central line used to compute the control limits.") } Common.ControlChartTests {}