qesuite 1.0.67 → 1.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1142,6 +1142,9 @@ declare const ANOVA: {
1142
1142
  chart: HTMLCanvasElement;
1143
1143
  };
1144
1144
  };
1145
+ Balanced: {
1146
+ Table(responses: any, factors: any, interactions?: any): {};
1147
+ };
1145
1148
  GeneralLinearModel(responses: any, factors: any, covariates: any): void;
1146
1149
  OneWay: {
1147
1150
  Table(data: any): any;
package/dist/index.d.ts CHANGED
@@ -1142,6 +1142,9 @@ declare const ANOVA: {
1142
1142
  chart: HTMLCanvasElement;
1143
1143
  };
1144
1144
  };
1145
+ Balanced: {
1146
+ Table(responses: any, factors: any, interactions?: any): {};
1147
+ };
1145
1148
  GeneralLinearModel(responses: any, factors: any, covariates: any): void;
1146
1149
  OneWay: {
1147
1150
  Table(data: any): any;
package/dist/index.js CHANGED
@@ -1316,6 +1316,7 @@ var Capability = {
1316
1316
  if (confidenceInterval == void 0) {
1317
1317
  sides = void 0;
1318
1318
  }
1319
+ console.log(confidenceInterval, sides);
1319
1320
  let results = Capability.Analysis(data, spec, target, subgroupSize, confidenceInterval, sides, method, w, UnbiasingConstant2);
1320
1321
  let mean = Mean(data);
1321
1322
  let std = StDev.S(data);
@@ -5410,6 +5411,110 @@ var ANOVA = {
5410
5411
  };
5411
5412
  }
5412
5413
  },
5414
+ Balanced: {
5415
+ Table(responses, factors, interactions = []) {
5416
+ let grandMean = Mean(responses);
5417
+ let factorsWInteractions = {};
5418
+ Object.keys(factors).forEach((f) => {
5419
+ factorsWInteractions[f] = factors[f];
5420
+ });
5421
+ interactions.forEach((element) => {
5422
+ factorsWInteractions[element] = responses.map((r, i) => {
5423
+ return element.split("*").map((k) => {
5424
+ return factors[k][i];
5425
+ }).join("*");
5426
+ });
5427
+ });
5428
+ let factorInfo = {};
5429
+ let totalLevelCount = 1;
5430
+ Object.keys(factors).forEach((k, i) => {
5431
+ let levels = Unique(factors[k]);
5432
+ totalLevelCount *= levels.length;
5433
+ factorInfo[k] = {
5434
+ Factor: k,
5435
+ Levels: levels.length,
5436
+ Values: levels.join(", ")
5437
+ };
5438
+ });
5439
+ let SSFactors = 0;
5440
+ let DFFactors = 0;
5441
+ let anovaTable = {};
5442
+ Object.keys(factorsWInteractions).forEach((k, i) => {
5443
+ let df = Product(k.split("*").map((f) => {
5444
+ return factorInfo[f].Levels - 1;
5445
+ }));
5446
+ DFFactors += df;
5447
+ let ss = 0;
5448
+ Unique(factorsWInteractions[k]).forEach((group) => {
5449
+ let groupMean = Mean(responses.filter((r, ri) => {
5450
+ return factorsWInteractions[k][ri] == group;
5451
+ }));
5452
+ if (k.includes("*")) {
5453
+ let factorLevelMeans = k.split("*").map((f, fi) => {
5454
+ return responses.filter((r, ri) => {
5455
+ return factors[f][ri] == group.split("*")[fi];
5456
+ });
5457
+ });
5458
+ let factorCombos = [];
5459
+ k.split("*").forEach((f, fi) => {
5460
+ k.split("*").forEach((f2, fi2) => {
5461
+ if (fi2 > fi) {
5462
+ let responseValues = responses.filter((r, ri) => {
5463
+ return factors[k.split("*")[fi]][ri] == f && factors[k.split("*")[fi2]][ri] == f2;
5464
+ });
5465
+ factorCombos.push(responseValues);
5466
+ }
5467
+ });
5468
+ });
5469
+ ss += Math.pow(groupMean - Sum(factorLevelMeans.map((arr) => {
5470
+ return Mean(arr);
5471
+ })) + grandMean, 2);
5472
+ } else {
5473
+ ss += Math.pow(groupMean - grandMean, 2);
5474
+ }
5475
+ });
5476
+ let n = responses.length / totalLevelCount;
5477
+ ss *= n * Product(Object.keys(factorInfo).filter((f) => {
5478
+ return k.includes(f) == false;
5479
+ }).map((fk) => {
5480
+ return factorInfo[fk].Levels;
5481
+ }));
5482
+ SSFactors += ss;
5483
+ anovaTable[k] = {
5484
+ Source: k,
5485
+ DF: df,
5486
+ SS: ss,
5487
+ MS: ss / df,
5488
+ F: NaN,
5489
+ p: NaN
5490
+ };
5491
+ });
5492
+ let SST = SumSq(responses.map((r) => {
5493
+ return r - grandMean;
5494
+ }));
5495
+ let DFE = responses.length - DFFactors - 1;
5496
+ let SSE = SST - SSFactors;
5497
+ let MSE = SSE / DFE;
5498
+ Object.keys(anovaTable).forEach((key) => {
5499
+ let fValue = anovaTable[key].MS / MSE;
5500
+ let pValue = Distributions.F.RightTail(fValue, anovaTable[key].DF, DFE);
5501
+ anovaTable[key].F = fValue;
5502
+ anovaTable[key].p = pValue;
5503
+ });
5504
+ anovaTable["Error"] = {
5505
+ Source: "Error",
5506
+ DF: DFE,
5507
+ SS: SSE,
5508
+ MS: MSE
5509
+ };
5510
+ anovaTable["Total"] = {
5511
+ Source: "Total",
5512
+ DF: responses.length - 1,
5513
+ SS: SST
5514
+ };
5515
+ return anovaTable;
5516
+ }
5517
+ },
5413
5518
  GeneralLinearModel(responses, factors, covariates) {
5414
5519
  },
5415
5520
  OneWay: {
@@ -7985,11 +8090,15 @@ var NonparametricTesting = {
7985
8090
  let H = 12 * Sum(avgRanks.map((Rj, j) => {
7986
8091
  return data[j].length * Math.pow(Rj - avgOverallRank, 2);
7987
8092
  })) / (N * (N + 1));
8093
+ H = 12 / (N * (N + 1)) * Sum(ranks.map((r) => {
8094
+ return Math.pow(Sum(r), 2) / r.length;
8095
+ })) - 3 * (N + 1);
7988
8096
  let H_not = 0 + H;
7989
8097
  if (adjustH) {
7990
- H = 12 / (N * (N + 1)) * Sum(ranks.map((r) => {
7991
- return Math.pow(Sum(r), 2) / r.length;
7992
- })) - 3 * (N + 1);
8098
+ let T = 1 - 1 / (Math.pow(N, 3) - N) * Sum(tieSets.map((t) => {
8099
+ return Math.pow(t.length, 3) - t.length;
8100
+ }));
8101
+ H = H / T;
7993
8102
  }
7994
8103
  return {
7995
8104
  DescriptiveStatistics: data.map((group, i) => {
@@ -11435,11 +11544,14 @@ function AttirbuteAgreementConfidenceIntervals(object, confidenceLevel) {
11435
11544
  let v1_low = 2 * object.MatchedCount;
11436
11545
  let v2_low = 2 * (object.InspectedCount - object.MatchedCount + 1);
11437
11546
  let lowP = object.MatchedCount == object.InspectedCount ? alpha : alpha / 2;
11438
- let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : Distributions.F.inv(lowP, v1_low, v2_low);
11547
+ const F_inv = (p, df1, df2) => {
11548
+ return df2 / (df1 * (1 / Beta.invInc(p, df1 / 2, df2 / 2) - 1));
11549
+ };
11550
+ let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : F_inv(lowP, v1_low, v2_low);
11439
11551
  let v1_high = 2 * (object.MatchedCount + 1);
11440
11552
  let v2_high = 2 * (object.InspectedCount - object.MatchedCount);
11441
11553
  let highP = object.MatchedCount == 0 ? 1 - alpha : 1 - alpha / 2;
11442
- let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : Distributions.F.inv(highP, v1_high, v2_high);
11554
+ let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : F_inv(highP, v1_high, v2_high);
11443
11555
  object.Percent = object.MatchedCount / object.InspectedCount;
11444
11556
  object.CI_Low = v1_low * Fv1v2_a_2 / (v2_low + v1_low * Fv1v2_a_2);
11445
11557
  object.CI_High = v1_high * Fv1v2_1_a_2 / (v2_high + v1_high * Fv1v2_1_a_2);
package/dist/index.mjs CHANGED
@@ -1190,6 +1190,7 @@ var Capability = {
1190
1190
  if (confidenceInterval == void 0) {
1191
1191
  sides = void 0;
1192
1192
  }
1193
+ console.log(confidenceInterval, sides);
1193
1194
  let results = Capability.Analysis(data, spec, target, subgroupSize, confidenceInterval, sides, method, w, UnbiasingConstant2);
1194
1195
  let mean = Mean(data);
1195
1196
  let std = StDev.S(data);
@@ -5284,6 +5285,110 @@ var ANOVA = {
5284
5285
  };
5285
5286
  }
5286
5287
  },
5288
+ Balanced: {
5289
+ Table(responses, factors, interactions = []) {
5290
+ let grandMean = Mean(responses);
5291
+ let factorsWInteractions = {};
5292
+ Object.keys(factors).forEach((f) => {
5293
+ factorsWInteractions[f] = factors[f];
5294
+ });
5295
+ interactions.forEach((element) => {
5296
+ factorsWInteractions[element] = responses.map((r, i) => {
5297
+ return element.split("*").map((k) => {
5298
+ return factors[k][i];
5299
+ }).join("*");
5300
+ });
5301
+ });
5302
+ let factorInfo = {};
5303
+ let totalLevelCount = 1;
5304
+ Object.keys(factors).forEach((k, i) => {
5305
+ let levels = Unique(factors[k]);
5306
+ totalLevelCount *= levels.length;
5307
+ factorInfo[k] = {
5308
+ Factor: k,
5309
+ Levels: levels.length,
5310
+ Values: levels.join(", ")
5311
+ };
5312
+ });
5313
+ let SSFactors = 0;
5314
+ let DFFactors = 0;
5315
+ let anovaTable = {};
5316
+ Object.keys(factorsWInteractions).forEach((k, i) => {
5317
+ let df = Product(k.split("*").map((f) => {
5318
+ return factorInfo[f].Levels - 1;
5319
+ }));
5320
+ DFFactors += df;
5321
+ let ss = 0;
5322
+ Unique(factorsWInteractions[k]).forEach((group) => {
5323
+ let groupMean = Mean(responses.filter((r, ri) => {
5324
+ return factorsWInteractions[k][ri] == group;
5325
+ }));
5326
+ if (k.includes("*")) {
5327
+ let factorLevelMeans = k.split("*").map((f, fi) => {
5328
+ return responses.filter((r, ri) => {
5329
+ return factors[f][ri] == group.split("*")[fi];
5330
+ });
5331
+ });
5332
+ let factorCombos = [];
5333
+ k.split("*").forEach((f, fi) => {
5334
+ k.split("*").forEach((f2, fi2) => {
5335
+ if (fi2 > fi) {
5336
+ let responseValues = responses.filter((r, ri) => {
5337
+ return factors[k.split("*")[fi]][ri] == f && factors[k.split("*")[fi2]][ri] == f2;
5338
+ });
5339
+ factorCombos.push(responseValues);
5340
+ }
5341
+ });
5342
+ });
5343
+ ss += Math.pow(groupMean - Sum(factorLevelMeans.map((arr) => {
5344
+ return Mean(arr);
5345
+ })) + grandMean, 2);
5346
+ } else {
5347
+ ss += Math.pow(groupMean - grandMean, 2);
5348
+ }
5349
+ });
5350
+ let n = responses.length / totalLevelCount;
5351
+ ss *= n * Product(Object.keys(factorInfo).filter((f) => {
5352
+ return k.includes(f) == false;
5353
+ }).map((fk) => {
5354
+ return factorInfo[fk].Levels;
5355
+ }));
5356
+ SSFactors += ss;
5357
+ anovaTable[k] = {
5358
+ Source: k,
5359
+ DF: df,
5360
+ SS: ss,
5361
+ MS: ss / df,
5362
+ F: NaN,
5363
+ p: NaN
5364
+ };
5365
+ });
5366
+ let SST = SumSq(responses.map((r) => {
5367
+ return r - grandMean;
5368
+ }));
5369
+ let DFE = responses.length - DFFactors - 1;
5370
+ let SSE = SST - SSFactors;
5371
+ let MSE = SSE / DFE;
5372
+ Object.keys(anovaTable).forEach((key) => {
5373
+ let fValue = anovaTable[key].MS / MSE;
5374
+ let pValue = Distributions.F.RightTail(fValue, anovaTable[key].DF, DFE);
5375
+ anovaTable[key].F = fValue;
5376
+ anovaTable[key].p = pValue;
5377
+ });
5378
+ anovaTable["Error"] = {
5379
+ Source: "Error",
5380
+ DF: DFE,
5381
+ SS: SSE,
5382
+ MS: MSE
5383
+ };
5384
+ anovaTable["Total"] = {
5385
+ Source: "Total",
5386
+ DF: responses.length - 1,
5387
+ SS: SST
5388
+ };
5389
+ return anovaTable;
5390
+ }
5391
+ },
5287
5392
  GeneralLinearModel(responses, factors, covariates) {
5288
5393
  },
5289
5394
  OneWay: {
@@ -7859,11 +7964,15 @@ var NonparametricTesting = {
7859
7964
  let H = 12 * Sum(avgRanks.map((Rj, j) => {
7860
7965
  return data[j].length * Math.pow(Rj - avgOverallRank, 2);
7861
7966
  })) / (N * (N + 1));
7967
+ H = 12 / (N * (N + 1)) * Sum(ranks.map((r) => {
7968
+ return Math.pow(Sum(r), 2) / r.length;
7969
+ })) - 3 * (N + 1);
7862
7970
  let H_not = 0 + H;
7863
7971
  if (adjustH) {
7864
- H = 12 / (N * (N + 1)) * Sum(ranks.map((r) => {
7865
- return Math.pow(Sum(r), 2) / r.length;
7866
- })) - 3 * (N + 1);
7972
+ let T = 1 - 1 / (Math.pow(N, 3) - N) * Sum(tieSets.map((t) => {
7973
+ return Math.pow(t.length, 3) - t.length;
7974
+ }));
7975
+ H = H / T;
7867
7976
  }
7868
7977
  return {
7869
7978
  DescriptiveStatistics: data.map((group, i) => {
@@ -11309,11 +11418,14 @@ function AttirbuteAgreementConfidenceIntervals(object, confidenceLevel) {
11309
11418
  let v1_low = 2 * object.MatchedCount;
11310
11419
  let v2_low = 2 * (object.InspectedCount - object.MatchedCount + 1);
11311
11420
  let lowP = object.MatchedCount == object.InspectedCount ? alpha : alpha / 2;
11312
- let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : Distributions.F.inv(lowP, v1_low, v2_low);
11421
+ const F_inv = (p, df1, df2) => {
11422
+ return df2 / (df1 * (1 / Beta.invInc(p, df1 / 2, df2 / 2) - 1));
11423
+ };
11424
+ let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : F_inv(lowP, v1_low, v2_low);
11313
11425
  let v1_high = 2 * (object.MatchedCount + 1);
11314
11426
  let v2_high = 2 * (object.InspectedCount - object.MatchedCount);
11315
11427
  let highP = object.MatchedCount == 0 ? 1 - alpha : 1 - alpha / 2;
11316
- let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : Distributions.F.inv(highP, v1_high, v2_high);
11428
+ let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : F_inv(highP, v1_high, v2_high);
11317
11429
  object.Percent = object.MatchedCount / object.InspectedCount;
11318
11430
  object.CI_Low = v1_low * Fv1v2_a_2 / (v2_low + v1_low * Fv1v2_a_2);
11319
11431
  object.CI_High = v1_high * Fv1v2_1_a_2 / (v2_high + v1_high * Fv1v2_1_a_2);
package/index.ts CHANGED
@@ -1332,6 +1332,7 @@ SixPack(data: number[], spec: Specification, title?: string){
1332
1332
  },
1333
1333
  Report(data: number[], spec: Specification, target?: number, subgroupSize?: number, confidenceInterval?: number, sides: any = -1, method?: string, w?: number, UnbiasingConstant?: boolean){
1334
1334
  if(confidenceInterval == undefined){sides = undefined}
1335
+ console.log(confidenceInterval, sides)
1335
1336
  let results: any = Capability.Analysis(data, spec, target, subgroupSize, confidenceInterval, sides, method, w, UnbiasingConstant);
1336
1337
  let mean = Mean(data);
1337
1338
  let std = StDev.S(data);
@@ -5683,6 +5684,103 @@ export const ANOVA = {
5683
5684
  }
5684
5685
  }
5685
5686
  },
5687
+ Balanced:{
5688
+ Table(responses, factors, interactions: any = []){
5689
+ let grandMean = Mean(responses)
5690
+
5691
+ let factorsWInteractions = {};
5692
+
5693
+ Object.keys(factors).forEach(f => {
5694
+ factorsWInteractions[f] = factors[f]
5695
+ })
5696
+
5697
+ interactions.forEach(element => {
5698
+ factorsWInteractions[element] = responses.map((r,i) => {return element.split("*").map(k =>{return factors[k][i]}).join("*")})
5699
+ });
5700
+
5701
+ let factorInfo = {}
5702
+ let totalLevelCount = 1;
5703
+ Object.keys(factors).forEach((k,i) => {
5704
+ let levels = Unique(factors[k])
5705
+ totalLevelCount *= levels.length;
5706
+ factorInfo[k] = {
5707
+ Factor: k,
5708
+ Levels: levels.length,
5709
+ Values: levels.join(", ")
5710
+ }
5711
+ })
5712
+
5713
+ let SSFactors = 0;
5714
+ let DFFactors = 0;
5715
+ let anovaTable = {}
5716
+ Object.keys(factorsWInteractions).forEach((k,i) => {
5717
+ let df = Product(k.split("*").map(f => {return factorInfo[f].Levels - 1}))
5718
+ DFFactors += df;
5719
+
5720
+ let ss = 0;
5721
+ Unique(factorsWInteractions[k]).forEach(group => {
5722
+ let groupMean = Mean(responses.filter((r,ri) => {return factorsWInteractions[k][ri] == group}))
5723
+ if(k.includes("*")){
5724
+ // is an interaction
5725
+ let factorLevelMeans = k.split("*").map((f,fi) => {return responses.filter((r,ri) => {return factors[f][ri] == group.split("*")[fi]})})
5726
+
5727
+ let factorCombos: any = [];
5728
+ k.split("*").forEach((f,fi) => {
5729
+ k.split("*").forEach((f2, fi2) => {
5730
+ if(fi2 > fi){
5731
+ let responseValues = responses.filter((r, ri) => {return factors[k.split("*")[fi]][ri] == f && factors[k.split("*")[fi2]][ri] == f2})
5732
+ factorCombos.push(responseValues)
5733
+ }
5734
+ })
5735
+ })
5736
+
5737
+ ss += Math.pow(groupMean - Sum(factorLevelMeans.map(arr => {return Mean(arr)})) + grandMean, 2)
5738
+ }else{
5739
+ ss += Math.pow(groupMean - grandMean, 2)
5740
+ }
5741
+ })
5742
+ let n = responses.length / totalLevelCount;
5743
+ ss *= n * Product(Object.keys(factorInfo).filter(f => {return k.includes(f) == false}).map(fk => {return factorInfo[fk].Levels}))
5744
+ SSFactors += ss;
5745
+ anovaTable[k] = {
5746
+ Source: k,
5747
+ DF: df,
5748
+ SS: ss,
5749
+ MS: ss/df,
5750
+ F: NaN,
5751
+ p: NaN
5752
+ }
5753
+ })
5754
+ let SST = SumSq(responses.map(r => {return r - grandMean}))
5755
+
5756
+ let DFE = responses.length - DFFactors - 1;
5757
+ let SSE = SST - SSFactors;
5758
+ let MSE = SSE / DFE;
5759
+
5760
+ Object.keys(anovaTable).forEach(key => {
5761
+ let fValue = anovaTable[key].MS / MSE
5762
+ let pValue = Distributions.F.RightTail(fValue, anovaTable[key].DF, DFE)
5763
+ anovaTable[key].F = fValue
5764
+ anovaTable[key].p = pValue
5765
+ })
5766
+
5767
+ anovaTable["Error"] = {
5768
+ Source: "Error",
5769
+ DF: DFE,
5770
+ SS: SSE,
5771
+ MS: MSE
5772
+ }
5773
+
5774
+ anovaTable["Total"] = {
5775
+ Source: "Total",
5776
+ DF: responses.length - 1,
5777
+ SS: SST
5778
+ }
5779
+
5780
+ return anovaTable
5781
+
5782
+ }
5783
+ },
5686
5784
  GeneralLinearModel(responses: any, factors: any, covariates: any){
5687
5785
 
5688
5786
  },
@@ -8395,12 +8493,13 @@ export const NonparametricTesting = {
8395
8493
 
8396
8494
  let tieSets = CompileTies(combinedData)
8397
8495
  let adjustH = tieSets.length > 0
8398
- let H = 12 * Sum(avgRanks.map((Rj, j) => {return data[j].length * Math.pow(Rj - avgOverallRank, 2)}))/(N *(N + 1));
8496
+ let H = 12 * Sum(avgRanks.map((Rj, j) => {return data[j].length * Math.pow(Rj - avgOverallRank, 2)}))/(N *(N + 1));
8497
+ H = (12 / (N * (N + 1))) * (Sum(ranks.map(r => {return Math.pow(Sum(r),2)/r.length}))) - 3 *(N + 1);
8399
8498
  let H_not = 0 + H;
8400
8499
 
8401
8500
  if(adjustH){
8402
- // H = H/(1 - Sum(tieSets.map((t: any) => {return Math.pow(t.length, 3) - t.length}))/(Math.pow(N,3) - N));
8403
- H = (12 / (N * (N + 1))) * (Sum(ranks.map(r => {return Math.pow(Sum(r),2)/r.length}))) - 3 *(N + 1);
8501
+ let T = 1 - 1 / (Math.pow(N, 3) - N) * Sum(tieSets.map(t => {return Math.pow(t.length, 3) - t.length}))
8502
+ H = H / T
8404
8503
  }
8405
8504
 
8406
8505
  return {
@@ -12252,11 +12351,14 @@ function AttirbuteAgreementConfidenceIntervals(object: any, confidenceLevel?: nu
12252
12351
  let v1_low = 2 * object.MatchedCount
12253
12352
  let v2_low = 2 * (object.InspectedCount - object.MatchedCount + 1)
12254
12353
  let lowP = object.MatchedCount == object.InspectedCount ? alpha : alpha / 2;
12255
- let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : Distributions.F.inv(lowP, v1_low, v2_low);
12354
+ const F_inv = (p, df1, df2) => {
12355
+ return df2 / (df1 * (1 / Beta.invInc(p, df1 / 2, df2 / 2) - 1))
12356
+ }
12357
+ let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : F_inv(lowP, v1_low, v2_low);
12256
12358
  let v1_high = 2 * (object.MatchedCount + 1)
12257
12359
  let v2_high = 2 * (object.InspectedCount - object.MatchedCount)
12258
12360
  let highP = object.MatchedCount == 0 ? 1 - alpha : 1-alpha/2
12259
- let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : Distributions.F.inv(highP, v1_high, v2_high);
12361
+ let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : F_inv(highP, v1_high, v2_high);
12260
12362
  object.Percent = object.MatchedCount / object.InspectedCount;
12261
12363
  object.CI_Low = (v1_low * Fv1v2_a_2)/(v2_low + (v1_low * Fv1v2_a_2));
12262
12364
  object.CI_High = (v1_high * Fv1v2_1_a_2)/(v2_high + (v1_high * Fv1v2_1_a_2));
@@ -13960,5 +14062,4 @@ const Matrix = {
13960
14062
  return newMatrix
13961
14063
  },
13962
14064
  }
13963
- // End Matrix Functions
13964
- /** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */// Validation
14065
+ // End Matrix Functions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qesuite",
3
- "version": "1.0.67",
3
+ "version": "1.0.69",
4
4
  "description": "Performs advanced statistical analysis of data. Specifically designed for engineering statistical analysis",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -0,0 +1 @@
1
+ Updated Confidence Interval Calculation in Attribute Agreement Analysis
@@ -0,0 +1 @@
1
+ Updated KruskalWallis Adjusted for Ties formula