Prepared by M. Keith Cox PhD (CQ Foods, Inc.)
It is possible to use a CQR to screen previously frozen shrimp for organoleptic problems. There were significant differences in electrical values between previously frozen shrimp that were ranked good (1) from those with texture or odor problems (2, 3, or 4). When electrical values were applied to five different brands of shrimp, two were found to be ranked good (1) and three were found to be ranked 2, 3, or 4. Ranking by the organoleptic evaluation were the same. Number of measures, consistency and comparisons between brands are possible. A sample size of 45 per brand would be necessary to determine differences between brands.
The objective is to determine whether there are any significant differences in electrical values between previously frozen cold-water prawns (Pandalus borealis) bought back from UK stores.
The samples were removed from freezing in store packs and defrosted in water, placed in ice water which was kept between 0 and 3°C to maintain temperature. The prawns were then removed, patted dried and measured with the CQR. Throughout the trial, organoleptic validation was carried out and each sample has been ranked in terms of overall ‘quality’ from 1-4, with 1 being the best. The data includes 50 repeats for each sample and are labelled accordingly in the csv file, all invalid values were removed.
Electrical measures were taken using a Certified Quality Reader (Seafood Analytics, Detroit Michigan, USA). Data was imported and specific objectives include the following:
The graph below compared the quality scores as measured by the CQN. There were significant differences between the groups and there were differences between 1 and 2,3,4 as seen by a ANOVA followed by a TukeyHSD best fit function. A threshold of 11 was chosen to separate out #1 from #2,#3,and #4. The measures and threshold were then applied to the shrimp from the different brands.
There was no significant difference between ranks 2, 3, and 4.
fit<-aov(data2$Rp~data2$RANKING)
summary(fit)
## Df Sum Sq Mean Sq F value Pr(>F)
## data2$RANKING 3 201.6 67.19 10.58 1.44e-06 ***
## Residuals 246 1562.7 6.35
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(fit)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = data2$Rp ~ data2$RANKING)
##
## $`data2$RANKING`
## diff lwr upr p adj
## 2-1 -2.2874049 -3.4166056 -1.1582042 0.0000021
## 3-1 -1.5597428 -2.6889436 -0.4305421 0.0023851
## 4-1 -1.2501314 -2.3793321 -0.1209307 0.0234072
## 3-2 0.7276620 -0.5762266 2.0315507 0.4734684
## 4-2 1.0372735 -0.2666152 2.3411621 0.1700569
## 4-3 0.3096114 -0.9942772 1.6135001 0.9274913
Quality
Three brands were identified as grades 2,3, or 4 and could have texture, smell or quality issues. Sainsbury’s Own and Aldi were found to be good quality and Lidl, Morrisons Own and Sainsbury’s Owns Basics were found to have a quality issue and were automatically flagged as red as they were below the threshold of 11.
The same three brands were found to have texture, smell or quality issues as they were ranked as 2, 3 or 4. Sainsbury’s Own and Aldi were ranked as 1 and Lidl, Morrisons Own and Sainsbury’s Owns Basics were ranked as 3, 4, and 2, respectively.
The red line is just separating the groups ranked 1 from those ranked 2, 3, or 4.
These data represent the variability of the quality of the products by brand. Aldi had the least consistent shrimp while Sainsburys_basic had the most consistent.
There did not appear to be a relationship between quality and consistency.
There were 50 measures taken from each brand. There were consistant sample sizes from everybrand and provided data for a power analysis to estimate sample sizes.
R statistical program was used. The code for the function is below the results. Results showed that at least 45 samples need to be taken from each brand in order to find a difference if one exists.
Balanced one-way analysis of variance power calculation
library(qcc)
## Package 'qcc' version 3.0
## Type 'citation("qcc")' for citing this R package in publications.
library(matrixStats)
brand<-read.csv("/Users/Cox/Google Drive/analytics/clients/seafarms/test.group.csv")
brand1 <-brand[-c(1)]
groupmeans <-colMeans(brand1)
matrix.brand1 <-data.matrix(brand1)
colvariances <- colVars(matrix.brand1)
within.var.brand <- max(colvariances)
power.anova.test(groups = length(groupmeans), between.var = var(groupmeans), within.var = within.var.brand, power = 0.95)
##
## Balanced one-way analysis of variance power calculation
##
## groups = 5
## n = 44.47501
## between.var = 1.007888
## within.var = 9.44608
## sig.level = 0.05
## power = 0.95
##
## NOTE: n is number in each group