qesuite 1.0.67 → 1.0.68
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 +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +110 -2
- package/dist/index.mjs +110 -2
- package/index.ts +104 -4
- package/package.json +1 -1
- package/versions/1_0_68.md +1 -0
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: {
|
|
@@ -11435,11 +11540,14 @@ function AttirbuteAgreementConfidenceIntervals(object, confidenceLevel) {
|
|
|
11435
11540
|
let v1_low = 2 * object.MatchedCount;
|
|
11436
11541
|
let v2_low = 2 * (object.InspectedCount - object.MatchedCount + 1);
|
|
11437
11542
|
let lowP = object.MatchedCount == object.InspectedCount ? alpha : alpha / 2;
|
|
11438
|
-
|
|
11543
|
+
const F_inv = (p, df1, df2) => {
|
|
11544
|
+
return df2 / (df1 * (1 / Beta.invInc(p, df1 / 2, df2 / 2) - 1));
|
|
11545
|
+
};
|
|
11546
|
+
let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : F_inv(lowP, v1_low, v2_low);
|
|
11439
11547
|
let v1_high = 2 * (object.MatchedCount + 1);
|
|
11440
11548
|
let v2_high = 2 * (object.InspectedCount - object.MatchedCount);
|
|
11441
11549
|
let highP = object.MatchedCount == 0 ? 1 - alpha : 1 - alpha / 2;
|
|
11442
|
-
let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 :
|
|
11550
|
+
let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : F_inv(highP, v1_high, v2_high);
|
|
11443
11551
|
object.Percent = object.MatchedCount / object.InspectedCount;
|
|
11444
11552
|
object.CI_Low = v1_low * Fv1v2_a_2 / (v2_low + v1_low * Fv1v2_a_2);
|
|
11445
11553
|
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: {
|
|
@@ -11309,11 +11414,14 @@ function AttirbuteAgreementConfidenceIntervals(object, confidenceLevel) {
|
|
|
11309
11414
|
let v1_low = 2 * object.MatchedCount;
|
|
11310
11415
|
let v2_low = 2 * (object.InspectedCount - object.MatchedCount + 1);
|
|
11311
11416
|
let lowP = object.MatchedCount == object.InspectedCount ? alpha : alpha / 2;
|
|
11312
|
-
|
|
11417
|
+
const F_inv = (p, df1, df2) => {
|
|
11418
|
+
return df2 / (df1 * (1 / Beta.invInc(p, df1 / 2, df2 / 2) - 1));
|
|
11419
|
+
};
|
|
11420
|
+
let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : F_inv(lowP, v1_low, v2_low);
|
|
11313
11421
|
let v1_high = 2 * (object.MatchedCount + 1);
|
|
11314
11422
|
let v2_high = 2 * (object.InspectedCount - object.MatchedCount);
|
|
11315
11423
|
let highP = object.MatchedCount == 0 ? 1 - alpha : 1 - alpha / 2;
|
|
11316
|
-
let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 :
|
|
11424
|
+
let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : F_inv(highP, v1_high, v2_high);
|
|
11317
11425
|
object.Percent = object.MatchedCount / object.InspectedCount;
|
|
11318
11426
|
object.CI_Low = v1_low * Fv1v2_a_2 / (v2_low + v1_low * Fv1v2_a_2);
|
|
11319
11427
|
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
|
},
|
|
@@ -12252,11 +12350,14 @@ function AttirbuteAgreementConfidenceIntervals(object: any, confidenceLevel?: nu
|
|
|
12252
12350
|
let v1_low = 2 * object.MatchedCount
|
|
12253
12351
|
let v2_low = 2 * (object.InspectedCount - object.MatchedCount + 1)
|
|
12254
12352
|
let lowP = object.MatchedCount == object.InspectedCount ? alpha : alpha / 2;
|
|
12255
|
-
|
|
12353
|
+
const F_inv = (p, df1, df2) => {
|
|
12354
|
+
return df2 / (df1 * (1 / Beta.invInc(p, df1 / 2, df2 / 2) - 1))
|
|
12355
|
+
}
|
|
12356
|
+
let Fv1v2_a_2 = object.MatchedCount == 0 ? 0 : F_inv(lowP, v1_low, v2_low);
|
|
12256
12357
|
let v1_high = 2 * (object.MatchedCount + 1)
|
|
12257
12358
|
let v2_high = 2 * (object.InspectedCount - object.MatchedCount)
|
|
12258
12359
|
let highP = object.MatchedCount == 0 ? 1 - alpha : 1-alpha/2
|
|
12259
|
-
let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 :
|
|
12360
|
+
let Fv1v2_1_a_2 = object.MatchedCount == object.InspectedCount ? 1 : F_inv(highP, v1_high, v2_high);
|
|
12260
12361
|
object.Percent = object.MatchedCount / object.InspectedCount;
|
|
12261
12362
|
object.CI_Low = (v1_low * Fv1v2_a_2)/(v2_low + (v1_low * Fv1v2_a_2));
|
|
12262
12363
|
object.CI_High = (v1_high * Fv1v2_1_a_2)/(v2_high + (v1_high * Fv1v2_1_a_2));
|
|
@@ -13960,5 +14061,4 @@ const Matrix = {
|
|
|
13960
14061
|
return newMatrix
|
|
13961
14062
|
},
|
|
13962
14063
|
}
|
|
13963
|
-
// End Matrix Functions
|
|
13964
|
-
/** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */// Validation
|
|
14064
|
+
// End Matrix Functions
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Updated Confidence Interval Calculation in Attribute Agreement Analysis
|