@winm2m/inferential-stats-js 0.1.2 → 0.1.3

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/README.md CHANGED
@@ -126,7 +126,7 @@ stats.destroy();
126
126
 
127
127
  ## CDN / CodePen Usage
128
128
 
129
- You can use the SDK directly in a browser or CodePen with no build step. The snippet below loads the library from a CDN, fetches the sample dataset from GitHub Pages, and runs six analyses (one from each major category). Results are rendered as HTML tables.
129
+ You can use the SDK directly in a browser or CodePen with no build step. The snippet below loads the library from a CDN, fetches the sample dataset from GitHub Pages, and runs every analysis method in the SDK. Results are rendered as HTML tables.
130
130
 
131
131
  ```html
132
132
  <!DOCTYPE html>
@@ -202,6 +202,10 @@ You can use the SDK directly in a browser or CodePen with no build step. The sni
202
202
  renderTable(title, ['Metric', 'Value'], rows);
203
203
  };
204
204
 
205
+ const renderErrorTable = (title, message) => {
206
+ renderKeyValueTable(title, [['Error', message ?? 'Unknown error']]);
207
+ };
208
+
205
209
  const formatNumber = (value, digits = 4) => Number(value).toFixed(digits);
206
210
 
207
211
  // 2. Listen for progress events
@@ -227,51 +231,239 @@ You can use the SDK directly in a browser or CodePen with no build step. The sni
227
231
  const data = await response.json();
228
232
  setStatus(`Loaded ${data.length} rows. Rendering tables...`);
229
233
 
234
+ const binaryData = data.map((row) => {
235
+ const musicScore = Number(row.music_satisfaction);
236
+ return {
237
+ ...row,
238
+ is_high_music: Number.isFinite(musicScore) && musicScore >= 4 ? 1 : 0,
239
+ };
240
+ });
241
+
242
+ const sampledData = data.slice(0, 300);
243
+
230
244
  // 6. Descriptive Statistics — Frequencies
231
245
  const frequenciesResult = await stats.frequencies({
232
246
  data,
233
247
  variable: 'favorite_music',
234
248
  });
235
- const frequencyRows = frequenciesResult.data.frequencies
236
- .slice(0, 6)
237
- .map((item) => [
238
- String(item.value),
239
- String(item.count),
240
- `${item.percentage.toFixed(2)}%`,
249
+ if (frequenciesResult.success) {
250
+ const frequencyRows = frequenciesResult.data.frequencies
251
+ .slice(0, 6)
252
+ .map((item) => [
253
+ String(item.value),
254
+ String(item.count),
255
+ `${item.percentage.toFixed(2)}%`,
256
+ ]);
257
+ renderTable(
258
+ 'Descriptive Statistics — Frequencies (favorite_music, top 6)',
259
+ ['Value', 'Count', 'Percent'],
260
+ frequencyRows
261
+ );
262
+ } else {
263
+ renderErrorTable('Descriptive Statistics — Frequencies (favorite_music, top 6)', frequenciesResult.error);
264
+ }
265
+
266
+ const descriptivesResult = await stats.descriptives({
267
+ data,
268
+ variables: [
269
+ 'music_satisfaction',
270
+ 'movie_satisfaction',
271
+ 'art_satisfaction',
272
+ 'weekly_hours_music',
273
+ 'weekly_hours_movie',
274
+ 'monthly_art_visits',
275
+ ],
276
+ });
277
+ if (descriptivesResult.success) {
278
+ const descriptiveRows = descriptivesResult.data.statistics.map((stat) => [
279
+ stat.variable,
280
+ formatNumber(stat.mean),
281
+ formatNumber(stat.std),
282
+ formatNumber(stat.min),
283
+ formatNumber(stat.max),
241
284
  ]);
242
- renderTable(
243
- 'Descriptive Statistics — Frequencies (favorite_music, top 6)',
244
- ['Value', 'Count', 'Percent'],
245
- frequencyRows
246
- );
285
+ renderTable(
286
+ 'Descriptive Statistics — Descriptives',
287
+ ['Variable', 'Mean', 'Std', 'Min', 'Max'],
288
+ descriptiveRows
289
+ );
290
+ } else {
291
+ renderErrorTable('Descriptive Statistics — Descriptives', descriptivesResult.error);
292
+ }
293
+
294
+ const crosstabsResult = await stats.crosstabs({
295
+ data,
296
+ rowVariable: 'gender',
297
+ colVariable: 'favorite_music',
298
+ });
299
+ if (crosstabsResult.success) {
300
+ renderKeyValueTable('Descriptive Statistics — Crosstabs Summary (gender x favorite_music)', [
301
+ ['Chi-square', formatNumber(crosstabsResult.data.chiSquare)],
302
+ ['p-value', formatNumber(crosstabsResult.data.pValue)],
303
+ ['Cramers V', formatNumber(crosstabsResult.data.cramersV)],
304
+ ['df', String(crosstabsResult.data.degreesOfFreedom)],
305
+ ]);
306
+ const crosstabRows = crosstabsResult.data.table.slice(0, 12).map((cell) => [
307
+ cell.row,
308
+ cell.col,
309
+ String(cell.observed),
310
+ formatNumber(cell.expected),
311
+ formatNumber(cell.rowPercentage),
312
+ formatNumber(cell.colPercentage),
313
+ formatNumber(cell.totalPercentage),
314
+ ]);
315
+ renderTable(
316
+ 'Descriptive Statistics — Crosstabs Cells (top 12)',
317
+ ['Row', 'Col', 'Obs', 'Exp', 'Row %', 'Col %', 'Total %'],
318
+ crosstabRows
319
+ );
320
+ } else {
321
+ renderErrorTable('Descriptive Statistics — Crosstabs Summary (gender x favorite_music)', crosstabsResult.error);
322
+ }
323
+
324
+ const ttestIndependentResult = await stats.ttestIndependent({
325
+ data,
326
+ variable: 'music_satisfaction',
327
+ groupVariable: 'gender',
328
+ group1Value: 'Male',
329
+ group2Value: 'Female',
330
+ });
331
+ if (ttestIndependentResult.success) {
332
+ const levene = ttestIndependentResult.data.leveneTest;
333
+ const equal = ttestIndependentResult.data.equalVariance;
334
+ const unequal = ttestIndependentResult.data.unequalVariance;
335
+ renderKeyValueTable('Compare Means — Independent T-Test (music_satisfaction by gender)', [
336
+ ['Levene p-value', formatNumber(levene.pValue)],
337
+ ['Equal variance', String(levene.equalVariance)],
338
+ ['t (equal var)', formatNumber(equal.tStatistic)],
339
+ ['p (equal var)', formatNumber(equal.pValue)],
340
+ ['t (unequal var)', formatNumber(unequal.tStatistic)],
341
+ ['p (unequal var)', formatNumber(unequal.pValue)],
342
+ ]);
343
+ } else {
344
+ renderErrorTable('Compare Means — Independent T-Test (music_satisfaction by gender)', ttestIndependentResult.error);
345
+ }
346
+
347
+ const ttestPairedResult = await stats.ttestPaired({
348
+ data,
349
+ variable1: 'music_satisfaction',
350
+ variable2: 'movie_satisfaction',
351
+ });
352
+ if (ttestPairedResult.success) {
353
+ renderKeyValueTable('Compare Means — Paired T-Test (music vs movie satisfaction)', [
354
+ ['t-statistic', formatNumber(ttestPairedResult.data.tStatistic)],
355
+ ['p-value', formatNumber(ttestPairedResult.data.pValue)],
356
+ ['Mean diff', formatNumber(ttestPairedResult.data.meanDifference)],
357
+ ['Std diff', formatNumber(ttestPairedResult.data.stdDifference)],
358
+ ['n', String(ttestPairedResult.data.n)],
359
+ ]);
360
+ } else {
361
+ renderErrorTable('Compare Means — Paired T-Test (music vs movie satisfaction)', ttestPairedResult.error);
362
+ }
247
363
 
248
- // 7. Compare Means — One-Way ANOVA
249
364
  const anovaResult = await stats.anovaOneway({
250
365
  data,
251
366
  variable: 'music_satisfaction',
252
367
  groupVariable: 'age_group',
253
368
  });
254
- renderKeyValueTable('Compare Means — One-Way ANOVA (music_satisfaction by age_group)', [
255
- ['F-statistic', anovaResult.data.fStatistic.toFixed(4)],
256
- ['p-value', anovaResult.data.pValue.toFixed(4)],
257
- ['eta-squared', anovaResult.data.etaSquared.toFixed(4)],
258
- ]);
369
+ if (anovaResult.success) {
370
+ renderKeyValueTable('Compare Means — One-Way ANOVA (music_satisfaction by age_group)', [
371
+ ['F-statistic', formatNumber(anovaResult.data.fStatistic)],
372
+ ['p-value', formatNumber(anovaResult.data.pValue)],
373
+ ['eta-squared', formatNumber(anovaResult.data.etaSquared)],
374
+ ]);
375
+ } else {
376
+ renderErrorTable('Compare Means — One-Way ANOVA (music_satisfaction by age_group)', anovaResult.error);
377
+ }
378
+
379
+ const posthocResult = await stats.posthocTukey({
380
+ data,
381
+ variable: 'music_satisfaction',
382
+ groupVariable: 'age_group',
383
+ alpha: 0.05,
384
+ });
385
+ if (posthocResult.success) {
386
+ const posthocRows = posthocResult.data.comparisons.slice(0, 8).map((comp) => [
387
+ comp.group1,
388
+ comp.group2,
389
+ formatNumber(comp.meanDifference),
390
+ formatNumber(comp.pValue),
391
+ comp.reject ? 'Yes' : 'No',
392
+ ]);
393
+ renderTable(
394
+ 'Compare Means — Post-hoc Tukey (top 8 comparisons)',
395
+ ['Group 1', 'Group 2', 'Mean diff', 'p-value', 'Reject'],
396
+ posthocRows
397
+ );
398
+ } else {
399
+ renderErrorTable('Compare Means — Post-hoc Tukey (top 8 comparisons)', posthocResult.error);
400
+ }
259
401
 
260
- // 8. Regression — OLS
261
402
  const regressionResult = await stats.linearRegression({
262
403
  data,
263
404
  dependentVariable: 'music_satisfaction',
264
405
  independentVariables: ['weekly_hours_music', 'weekly_hours_movie'],
265
406
  });
266
- renderKeyValueTable('Regression — OLS (music_satisfaction ~ weekly_hours_music + weekly_hours_movie)', [
267
- ['R-squared', regressionResult.data.rSquared.toFixed(4)],
268
- ['Adj. R-squared', regressionResult.data.adjustedRSquared.toFixed(4)],
269
- ['F-statistic', regressionResult.data.fStatistic.toFixed(4)],
270
- ['F p-value', regressionResult.data.fPValue.toFixed(4)],
271
- ['Durbin-Watson', regressionResult.data.durbinWatson.toFixed(4)],
272
- ]);
273
-
274
- // 9. Classify — K-Means
407
+ if (regressionResult.success) {
408
+ renderKeyValueTable('Regression — OLS (music_satisfaction ~ weekly_hours_music + weekly_hours_movie)', [
409
+ ['R-squared', formatNumber(regressionResult.data.rSquared)],
410
+ ['Adj. R-squared', formatNumber(regressionResult.data.adjustedRSquared)],
411
+ ['F-statistic', formatNumber(regressionResult.data.fStatistic)],
412
+ ['F p-value', formatNumber(regressionResult.data.fPValue)],
413
+ ['Durbin-Watson', formatNumber(regressionResult.data.durbinWatson)],
414
+ ]);
415
+ } else {
416
+ renderErrorTable('Regression — OLS (music_satisfaction ~ weekly_hours_music + weekly_hours_movie)', regressionResult.error);
417
+ }
418
+
419
+ const logisticBinaryResult = await stats.logisticBinary({
420
+ data: binaryData,
421
+ dependentVariable: 'is_high_music',
422
+ independentVariables: ['weekly_hours_music', 'weekly_hours_movie', 'monthly_art_visits'],
423
+ });
424
+ if (logisticBinaryResult.success) {
425
+ renderKeyValueTable('Regression — Binary Logistic (is_high_music)', [
426
+ ['Pseudo R-squared', formatNumber(logisticBinaryResult.data.pseudoRSquared)],
427
+ ['LLR p-value', formatNumber(logisticBinaryResult.data.llrPValue)],
428
+ ['AIC', formatNumber(logisticBinaryResult.data.aic)],
429
+ ['BIC', formatNumber(logisticBinaryResult.data.bic)],
430
+ ['Converged', logisticBinaryResult.data.convergence ? 'Yes' : 'No'],
431
+ ]);
432
+ const binaryCoefRows = logisticBinaryResult.data.coefficients.slice(0, 6).map((coef) => [
433
+ coef.variable,
434
+ formatNumber(coef.coefficient),
435
+ formatNumber(coef.oddsRatio),
436
+ formatNumber(coef.pValue),
437
+ ]);
438
+ renderTable('Regression — Binary Logistic Coefficients (top 6)', ['Variable', 'Coef', 'Odds Ratio', 'p-value'], binaryCoefRows);
439
+ } else {
440
+ renderErrorTable('Regression — Binary Logistic (is_high_music)', logisticBinaryResult.error);
441
+ }
442
+
443
+ const logisticMultinomialResult = await stats.logisticMultinomial({
444
+ data,
445
+ dependentVariable: 'age_group',
446
+ independentVariables: ['music_satisfaction', 'movie_satisfaction', 'art_satisfaction'],
447
+ referenceCategory: '20s',
448
+ });
449
+ if (logisticMultinomialResult.success) {
450
+ renderKeyValueTable('Regression — Multinomial Logistic (age_group)', [
451
+ ['Pseudo R-squared', formatNumber(logisticMultinomialResult.data.pseudoRSquared)],
452
+ ['AIC', formatNumber(logisticMultinomialResult.data.aic)],
453
+ ['BIC', formatNumber(logisticMultinomialResult.data.bic)],
454
+ ['Reference', logisticMultinomialResult.data.referenceCategory],
455
+ ]);
456
+ const multiRows = logisticMultinomialResult.data.coefficients.slice(0, 10).map((coef) => [
457
+ coef.category,
458
+ coef.variable,
459
+ formatNumber(coef.coefficient),
460
+ formatNumber(coef.oddsRatio),
461
+ ]);
462
+ renderTable('Regression — Multinomial Coefficients (top 10)', ['Category', 'Variable', 'Coef', 'Odds Ratio'], multiRows);
463
+ } else {
464
+ renderErrorTable('Regression — Multinomial Logistic (age_group)', logisticMultinomialResult.error);
465
+ }
466
+
275
467
  const kmeansResult = await stats.kmeans({
276
468
  data,
277
469
  variables: ['weekly_hours_music', 'weekly_hours_movie', 'monthly_art_visits'],
@@ -279,16 +471,38 @@ You can use the SDK directly in a browser or CodePen with no build step. The sni
279
471
  randomState: 42,
280
472
  maxIterations: 100,
281
473
  });
282
- const clusterRows = Object.entries(kmeansResult.data.clusterSizes).map(
283
- ([cluster, size]) => [`Cluster ${cluster}`, String(size)]
284
- );
285
- renderKeyValueTable('Classify — K-Means (k=3)', [
286
- ['Inertia', kmeansResult.data.inertia.toFixed(2)],
287
- ['Iterations', String(kmeansResult.data.iterations)],
288
- ...clusterRows,
289
- ]);
474
+ if (kmeansResult.success) {
475
+ const clusterRows = Object.entries(kmeansResult.data.clusterSizes).map(
476
+ ([cluster, size]) => [`Cluster ${cluster}`, String(size)]
477
+ );
478
+ renderKeyValueTable('Classify — K-Means (k=3)', [
479
+ ['Inertia', kmeansResult.data.inertia.toFixed(2)],
480
+ ['Iterations', String(kmeansResult.data.iterations)],
481
+ ...clusterRows,
482
+ ]);
483
+ } else {
484
+ renderErrorTable('Classify — K-Means (k=3)', kmeansResult.error);
485
+ }
486
+
487
+ const hierarchicalResult = await stats.hierarchicalCluster({
488
+ data: sampledData,
489
+ variables: ['weekly_hours_music', 'weekly_hours_movie', 'monthly_art_visits'],
490
+ method: 'ward',
491
+ metric: 'euclidean',
492
+ nClusters: 3,
493
+ });
494
+ if (hierarchicalResult.success) {
495
+ const hierarchicalRows = Object.entries(hierarchicalResult.data.clusterSizes).map(
496
+ ([cluster, size]) => [`Cluster ${cluster}`, String(size)]
497
+ );
498
+ renderKeyValueTable('Classify — Hierarchical Cluster (n=3)', [
499
+ ['Clusters', String(hierarchicalResult.data.nClusters)],
500
+ ...hierarchicalRows,
501
+ ]);
502
+ } else {
503
+ renderErrorTable('Classify — Hierarchical Cluster (n=3)', hierarchicalResult.error);
504
+ }
290
505
 
291
- // 10. Dimension Reduction — PCA
292
506
  const pcaResult = await stats.pca({
293
507
  data,
294
508
  variables: [
@@ -302,11 +516,15 @@ You can use the SDK directly in a browser or CodePen with no build step. The sni
302
516
  nComponents: 3,
303
517
  standardize: true,
304
518
  });
305
- const pcaRows = pcaResult.data.explainedVarianceRatio.map((value, index) => [
306
- `PC${index + 1}`,
307
- formatNumber(value),
308
- ]);
309
- renderTable('Dimension Reduction — PCA (top 3 components)', ['Component', 'Explained Variance Ratio'], pcaRows);
519
+ if (pcaResult.success) {
520
+ const pcaRows = pcaResult.data.explainedVarianceRatio.map((value, index) => [
521
+ `PC${index + 1}`,
522
+ formatNumber(value),
523
+ ]);
524
+ renderTable('Dimension Reduction — PCA (top 3 components)', ['Component', 'Explained Variance Ratio'], pcaRows);
525
+ } else {
526
+ renderErrorTable('Dimension Reduction — PCA (top 3 components)', pcaResult.error);
527
+ }
310
528
 
311
529
  const efaResult = await stats.efa({
312
530
  data,
@@ -331,23 +549,55 @@ You can use the SDK directly in a browser or CodePen with no build step. The sni
331
549
  ]);
332
550
  renderTable('Dimension Reduction — EFA Loadings (varimax, 3 factors)', efaHeaders, efaRows);
333
551
  } else {
334
- renderKeyValueTable('Dimension Reduction — EFA Loadings (varimax, 3 factors)', [
335
- ['Error', efaResult.error ?? 'Unknown error'],
552
+ renderErrorTable('Dimension Reduction — EFA Loadings (varimax, 3 factors)', efaResult.error);
553
+ }
554
+
555
+ setStatus('Running MDS on sampled data (300 rows)...');
556
+ const mdsResult = await stats.mds({
557
+ data: sampledData,
558
+ variables: [
559
+ 'music_satisfaction',
560
+ 'movie_satisfaction',
561
+ 'art_satisfaction',
562
+ 'weekly_hours_music',
563
+ 'weekly_hours_movie',
564
+ 'monthly_art_visits',
565
+ ],
566
+ nComponents: 2,
567
+ metric: true,
568
+ maxIterations: 100,
569
+ randomState: 42,
570
+ });
571
+ if (mdsResult.success) {
572
+ renderKeyValueTable('Dimension Reduction — MDS Summary', [
573
+ ['Stress', formatNumber(mdsResult.data.stress)],
574
+ ['Components', String(mdsResult.data.nComponents)],
575
+ ]);
576
+ const mdsRows = mdsResult.data.coordinates.slice(0, 5).map((row, index) => [
577
+ String(index + 1),
578
+ formatNumber(row[0]),
579
+ formatNumber(row[1]),
336
580
  ]);
581
+ renderTable('Dimension Reduction — MDS Coordinates (first 5, sample 300)', ['Index', 'Dim 1', 'Dim 2'], mdsRows);
582
+ } else {
583
+ renderErrorTable('Dimension Reduction — MDS', mdsResult.error);
337
584
  }
338
585
 
339
- // 11. Scale — Cronbach Alpha
340
586
  const alphaResult = await stats.cronbachAlpha({
341
587
  data,
342
588
  items: ['music_satisfaction', 'movie_satisfaction', 'art_satisfaction'],
343
589
  });
344
- renderKeyValueTable('Scale — Cronbach Alpha (satisfaction items)', [
345
- ['Alpha', alphaResult.data.alpha.toFixed(4)],
346
- ['Standardized Alpha', alphaResult.data.standardizedAlpha.toFixed(4)],
347
- ['Inter-item correlation mean', alphaResult.data.interItemCorrelationMean.toFixed(4)],
348
- ['Items', String(alphaResult.data.nItems)],
349
- ['Observations', String(alphaResult.data.nObservations)],
350
- ]);
590
+ if (alphaResult.success) {
591
+ renderKeyValueTable('Scale — Cronbach Alpha (satisfaction items)', [
592
+ ['Alpha', formatNumber(alphaResult.data.alpha)],
593
+ ['Standardized Alpha', formatNumber(alphaResult.data.standardizedAlpha)],
594
+ ['Inter-item correlation mean', formatNumber(alphaResult.data.interItemCorrelationMean)],
595
+ ['Items', String(alphaResult.data.nItems)],
596
+ ['Observations', String(alphaResult.data.nObservations)],
597
+ ]);
598
+ } else {
599
+ renderErrorTable('Scale — Cronbach Alpha (satisfaction items)', alphaResult.error);
600
+ }
351
601
 
352
602
  setStatus('All analyses completed.');
353
603
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Python code for dimension reduction functions.
3
3
  */
4
- export declare const EFA_PY = "\nimport json\nimport pandas as pd\nimport numpy as np\nimport scipy as sp\nfrom factor_analyzer import FactorAnalyzer\nfrom factor_analyzer.factor_analyzer import calculate_bartlett_sphericity, calculate_kmo\n\ndef run_efa(data_json, variables_json, n_factors, rotation='varimax', method='minres'):\n if not hasattr(sp, 'sum'):\n sp.sum = np.sum\n df = pd.DataFrame(json.loads(data_json))\n variables = json.loads(variables_json)\n \n X = df[variables].apply(pd.to_numeric, errors='coerce').dropna()\n \n # KMO and Bartlett tests\n kmo_all, kmo_model = calculate_kmo(X)\n chi2, p_value = calculate_bartlett_sphericity(X)\n \n fa = FactorAnalyzer(n_factors=n_factors, rotation=rotation, method=method)\n fa.fit(X)\n \n loadings = fa.loadings_\n loadings_dict = {}\n for i, var in enumerate(variables):\n loadings_dict[var] = [round(float(x), 6) for x in loadings[i]]\n \n ev, v = fa.get_factor_variance()\n \n communalities = fa.get_communalities()\n uniquenesses = fa.get_uniquenesses()\n \n comm_dict = {}\n uniq_dict = {}\n for i, var in enumerate(variables):\n comm_dict[var] = round(float(communalities[i]), 6)\n uniq_dict[var] = round(float(uniquenesses[i]), 6)\n \n eigenvalues = fa.get_eigenvalues()[0]\n \n return json.dumps({\n 'loadings': loadings_dict,\n 'eigenvalues': [round(float(x), 6) for x in eigenvalues],\n 'variance': [round(float(x), 6) for x in ev],\n 'cumulativeVariance': [round(float(sum(v[:i+1])), 6) for i in range(len(v))],\n 'communalities': comm_dict,\n 'uniquenesses': uniq_dict,\n 'nFactors': n_factors,\n 'rotation': rotation,\n 'kmo': round(float(kmo_model), 6),\n 'bartlettChi2': round(float(chi2), 6),\n 'bartlettPValue': float(p_value)\n })\n";
4
+ export declare const EFA_PY = "\nimport json\nimport pandas as pd\nimport numpy as np\nimport scipy as sp\nfrom factor_analyzer import FactorAnalyzer\nfrom factor_analyzer.factor_analyzer import calculate_bartlett_sphericity, calculate_kmo\n\ndef run_efa(data_json, variables_json, n_factors, rotation='varimax', method='minres'):\n if not hasattr(sp, 'sum'):\n sp.sum = np.sum\n df = pd.DataFrame(json.loads(data_json))\n variables = json.loads(variables_json)\n \n X = df[variables].apply(pd.to_numeric, errors='coerce').dropna()\n \n # KMO and Bartlett tests\n kmo_result = calculate_kmo(X)\n if isinstance(kmo_result, tuple):\n kmo_all = kmo_result[0]\n kmo_model = kmo_result[1] if len(kmo_result) > 1 else kmo_result[0]\n else:\n kmo_all = kmo_result\n kmo_model = kmo_result\n chi2, p_value = calculate_bartlett_sphericity(X)\n \n fa = FactorAnalyzer(n_factors=n_factors, rotation=rotation, method=method)\n fa.fit(X)\n \n loadings = fa.loadings_\n loadings_dict = {}\n for i, var in enumerate(variables):\n loadings_dict[var] = [round(float(x), 6) for x in loadings[i]]\n \n variance_result = fa.get_factor_variance()\n if isinstance(variance_result, tuple):\n ev = variance_result[0]\n v = variance_result[1] if len(variance_result) > 1 else variance_result[0]\n cumulative = variance_result[2] if len(variance_result) > 2 else None\n else:\n ev = variance_result\n v = variance_result\n cumulative = None\n \n communalities = fa.get_communalities()\n uniquenesses = fa.get_uniquenesses()\n \n comm_dict = {}\n uniq_dict = {}\n for i, var in enumerate(variables):\n comm_dict[var] = round(float(communalities[i]), 6)\n uniq_dict[var] = round(float(uniquenesses[i]), 6)\n \n eigenvalues = fa.get_eigenvalues()[0]\n \n return json.dumps({\n 'loadings': loadings_dict,\n 'eigenvalues': [round(float(x), 6) for x in eigenvalues],\n 'variance': [round(float(x), 6) for x in ev],\n 'cumulativeVariance': [round(float(x), 6) for x in cumulative] if cumulative is not None else [round(float(sum(v[:i+1])), 6) for i in range(len(v))],\n 'communalities': comm_dict,\n 'uniquenesses': uniq_dict,\n 'nFactors': n_factors,\n 'rotation': rotation,\n 'kmo': round(float(kmo_model), 6),\n 'bartlettChi2': round(float(chi2), 6),\n 'bartlettPValue': float(p_value)\n })\n";
5
5
  export declare const PCA_PY = "\nimport json\nimport pandas as pd\nimport numpy as np\nfrom sklearn.decomposition import PCA\nfrom sklearn.preprocessing import StandardScaler\n\ndef run_pca(data_json, variables_json, n_components=None, standardize=True):\n df = pd.DataFrame(json.loads(data_json))\n variables = json.loads(variables_json)\n \n X = df[variables].apply(pd.to_numeric, errors='coerce').dropna()\n \n if standardize:\n scaler = StandardScaler()\n X_scaled = scaler.fit_transform(X)\n else:\n X_scaled = X.values\n \n if n_components is None:\n n_components = min(len(variables), len(X_scaled))\n \n pca = PCA(n_components=n_components)\n transformed = pca.fit_transform(X_scaled)\n \n loadings = {}\n for i, var in enumerate(variables):\n loadings[var] = [round(float(x), 6) for x in pca.components_[:, i]]\n \n cum_var = np.cumsum(pca.explained_variance_ratio_)\n \n return json.dumps({\n 'components': [[round(float(x), 6) for x in row] for row in transformed.tolist()],\n 'explainedVariance': [round(float(x), 6) for x in pca.explained_variance_],\n 'explainedVarianceRatio': [round(float(x), 6) for x in pca.explained_variance_ratio_],\n 'cumulativeVarianceRatio': [round(float(x), 6) for x in cum_var],\n 'loadings': loadings,\n 'singularValues': [round(float(x), 6) for x in pca.singular_values_],\n 'nComponents': n_components\n })\n";
6
6
  export declare const MDS_PY = "\nimport json\nimport pandas as pd\nimport numpy as np\nfrom sklearn.manifold import MDS\nfrom sklearn.preprocessing import StandardScaler\n\ndef run_mds(data_json, variables_json, n_components=2, metric=True, max_iterations=300, random_state=42):\n df = pd.DataFrame(json.loads(data_json))\n variables = json.loads(variables_json)\n \n X = df[variables].apply(pd.to_numeric, errors='coerce').dropna()\n \n scaler = StandardScaler()\n X_scaled = scaler.fit_transform(X)\n \n mds = MDS(n_components=n_components, metric=metric, max_iter=max_iterations, random_state=random_state, normalized_stress='auto')\n coords = mds.fit_transform(X_scaled)\n \n return json.dumps({\n 'coordinates': [[round(float(x), 6) for x in row] for row in coords.tolist()],\n 'stress': round(float(mds.stress_), 6),\n 'nComponents': n_components\n })\n";
@@ -598,7 +598,13 @@ def run_efa(data_json, variables_json, n_factors, rotation='varimax', method='mi
598
598
  X = df[variables].apply(pd.to_numeric, errors='coerce').dropna()
599
599
 
600
600
  # KMO and Bartlett tests
601
- kmo_all, kmo_model = calculate_kmo(X)
601
+ kmo_result = calculate_kmo(X)
602
+ if isinstance(kmo_result, tuple):
603
+ kmo_all = kmo_result[0]
604
+ kmo_model = kmo_result[1] if len(kmo_result) > 1 else kmo_result[0]
605
+ else:
606
+ kmo_all = kmo_result
607
+ kmo_model = kmo_result
602
608
  chi2, p_value = calculate_bartlett_sphericity(X)
603
609
 
604
610
  fa = FactorAnalyzer(n_factors=n_factors, rotation=rotation, method=method)
@@ -609,7 +615,15 @@ def run_efa(data_json, variables_json, n_factors, rotation='varimax', method='mi
609
615
  for i, var in enumerate(variables):
610
616
  loadings_dict[var] = [round(float(x), 6) for x in loadings[i]]
611
617
 
612
- ev, v = fa.get_factor_variance()
618
+ variance_result = fa.get_factor_variance()
619
+ if isinstance(variance_result, tuple):
620
+ ev = variance_result[0]
621
+ v = variance_result[1] if len(variance_result) > 1 else variance_result[0]
622
+ cumulative = variance_result[2] if len(variance_result) > 2 else None
623
+ else:
624
+ ev = variance_result
625
+ v = variance_result
626
+ cumulative = None
613
627
 
614
628
  communalities = fa.get_communalities()
615
629
  uniquenesses = fa.get_uniquenesses()
@@ -626,7 +640,7 @@ def run_efa(data_json, variables_json, n_factors, rotation='varimax', method='mi
626
640
  'loadings': loadings_dict,
627
641
  'eigenvalues': [round(float(x), 6) for x in eigenvalues],
628
642
  'variance': [round(float(x), 6) for x in ev],
629
- 'cumulativeVariance': [round(float(sum(v[:i+1])), 6) for i in range(len(v))],
643
+ 'cumulativeVariance': [round(float(x), 6) for x in cumulative] if cumulative is not None else [round(float(sum(v[:i+1])), 6) for i in range(len(v))],
630
644
  'communalities': comm_dict,
631
645
  'uniquenesses': uniq_dict,
632
646
  'nFactors': n_factors,
@@ -1 +1 @@
1
- {"version":3,"file":"stats-worker.js","sources":["../src/python/descriptive.ts","../src/python/compare-means.ts","../src/python/regression.ts","../src/python/classify.ts","../src/python/dimension.ts","../src/python/scale.ts","../src/worker/stats-worker.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats-worker.js","sources":["../src/python/descriptive.ts","../src/python/compare-means.ts","../src/python/regression.ts","../src/python/classify.ts","../src/python/dimension.ts","../src/python/scale.ts","../src/worker/stats-worker.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winm2m/inferential-stats-js",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "A headless JavaScript SDK for advanced statistical analysis in the browser using WebAssembly (Pyodide). Performs SPSS-level inferential statistics entirely client-side with no backend required.",
5
5
  "author": "Youngjune Kwon <yjkwon@winm2m.com>",
6
6
  "license": "MIT",