num4tststatistic2 0.0.2 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cde00758d2f1f56ba425ce885da276d76272564848fd176dc78ab7e271ffdc5
4
- data.tar.gz: c0631d73f042ab0bc7be1be74f408cc298cf0237a6ad56c7b9342edfbf8ef807
3
+ metadata.gz: 60785711542acd092cb1688f03e95bb31b372dab71e52048ec6adec7fcc2bcf5
4
+ data.tar.gz: fc3dd84abfa51c591061cde8e4ebad3e56985dbb0ae30928f8456a2488aa9c42
5
5
  SHA512:
6
- metadata.gz: 80815f8945e899f8699bb3d06a27abc41c8b00967ab9f2b6b0badb2540c19a13f123f8a376c05358f277cc10c6947e6c4b028a5738d91b3f38002f6f614fd410
7
- data.tar.gz: bd512533a00f76c4e6ed738c25bfb6cc61af2c634d5b28dac6236844e03e15088e5a846acead538b4dd8e1e4e38d99b258b5bc945fe68912f96999a519842374
6
+ metadata.gz: bccb6876cf7adb09a192dd34faf6fbd4f29652974e1cced0ae49bde5e30ce19c9c9a171db5744e2cd4128a3bbaf2a9d56c43720825693348c056bfe84b81e68b
7
+ data.tar.gz: 1f8c945bc94f924990b7451d809ed883c0e7dee6ab4b25ab1c08c822314d7a4c9e1a4ba5d8f0c749369efd319e579aedc83d3cd7c1abaa37dc54ea2acf69c9b3
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.1.1] - 2024-05-06
6
+
7
+ ### add
8
+ - add function of diffPopulationMean2.
9
+ - add CorreFact.
10
+
5
11
  ## [0.0.2] - 2024-04-22
6
12
 
7
13
  ### add
data/lib/decorrtest.rb ADDED
@@ -0,0 +1,22 @@
1
+ class DecorrTestIF
2
+ def pearsoCorrelation(x, y, a)
3
+ raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
4
+ end
5
+ def spearmanscorr(x, y, a)
6
+ raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
7
+ end
8
+ def kendallscorr(x, y, a)
9
+ raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
10
+ end
11
+ end
12
+ class CorreFactIF
13
+ def pearsoCorrelation(x, y, rth0, a)
14
+ raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
15
+ end
16
+ def spearmanscorr(x, y, rth0, a)
17
+ raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
18
+ end
19
+ def kendallscorr(x, y, rth0, a)
20
+ raise NotImplementedError.new("#{self.class}##{__method__} が実装されていません")
21
+ end
22
+ end
@@ -1,8 +1,10 @@
1
1
  require 'num4tststatistic'
2
2
  require 'hypothTest3'
3
+ require_relative('decorrtest')
3
4
 
4
5
  # 統計的仮説検定
5
6
  module Num4TstStatistic2Lib
7
+ # パラメトリック検定
6
8
  class ParametrixTestLib
7
9
  def initialize(hypothTest3)
8
10
  @hypothTest3 = hypothTest3
@@ -68,6 +70,28 @@ module Num4TstStatistic2Lib
68
70
  statistic = @paraTest.populationRatio(m, n, p0)
69
71
  return @hypothTest3.normDistTest(statistic, a)
70
72
  end
73
+ # 2つの母平均の差の検定
74
+ #
75
+ # @overload diffPopulationMean2(xi1, xi2, a)
76
+ # @param [Array] xi1 x1のデータ(double[])
77
+ # @param [Array] xi2 x2のデータ(double[])
78
+ # @param [double] a 有意水準
79
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
80
+ # @example
81
+ # xi1 = [165, 130, 182, 178, 194, 206, 160, 122, 212, 165, 247, 195]
82
+ # xi2 = [180, 180, 235, 270, 240, 285, 164, 152]
83
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
84
+ # paraTest = Num4TstStatistic2Lib::ParametrixTestLib.new(hypothTest)
85
+ # paraTest.diffPopulationMean2(xi1, xi2, 0.05)
86
+ # => false
87
+ def diffPopulationMean2(xi1, xi2, a)
88
+ bRet = diffPopulationVar(xi1, xi2, a)
89
+ if bRet == true # 等分散ではない
90
+ return diffPopulationMean2UnEquVar(xi1, xi2, a)
91
+ else # 等分散性
92
+ return diffPopulationMean2EquVar(xi1, xi2, a)
93
+ end
94
+ end
71
95
  # 2つの母平均の差の検定(等分散性を仮定)
72
96
  #
73
97
  # @overload diffPopulationMean2EquVar(xi1, xi2, a)
@@ -222,6 +246,7 @@ module Num4TstStatistic2Lib
222
246
  return @hypothTest3.chi2DistTest(statistic, df, a)
223
247
  end
224
248
  end
249
+ # ノンパラメトリック検定
225
250
  class NonParametrixTestLib
226
251
  def initialize(hypothTest3)
227
252
  @hypothTest3 = hypothTest3
@@ -287,6 +312,7 @@ module Num4TstStatistic2Lib
287
312
  return @nonParaTest.ks2test(xi1, xi2, a)
288
313
  end
289
314
  end
315
+ # 外れ値検定
290
316
  class OutlierLib
291
317
  def initialize
292
318
  @outlier = Num4TstStatisticLib::OutlierLib.new
@@ -323,8 +349,11 @@ module Num4TstStatistic2Lib
323
349
  @outlier.errbar(dname, xi)
324
350
  end
325
351
  end
352
+ end
353
+ # 相関検定
354
+ module DecorrTestLib
326
355
  # 無相関の検定
327
- class DecorrTestLib
356
+ class UnDecorrTestLib < DecorrTestIF
328
357
  def initialize
329
358
  @paraTest = Num4TstStatisticLib::ParametrixTestLib.new
330
359
  @nonParaTest = Num4TstStatisticLib::NonParametrixTestLib.new
@@ -340,8 +369,8 @@ module Num4TstStatistic2Lib
340
369
  # @example
341
370
  # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
342
371
  # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
343
- # paraTest = Num4TstStatistic2Lib::DecorrTestLib.new
344
- # paraTest.pearsoCorrelation(x, y, 0.05)
372
+ # decorrTest = DecorrTestLib::UnDecorrTestLib.new
373
+ # decorrTest.pearsoCorrelation(x, y, 0.05)
345
374
  # => true
346
375
  def pearsoCorrelation(x, y, a)
347
376
  df = x.size - 2
@@ -358,8 +387,8 @@ module Num4TstStatistic2Lib
358
387
  # @example
359
388
  # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
360
389
  # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
361
- # paraTest = Num4TstStatistic2Lib::DecorrTestLib.new
362
- # paraTest.spearmanscorr(x, y, 0.05)
390
+ # decorrTest = DecorrTestLib::UnDecorrTestLib.new
391
+ # decorrTest.spearmanscorr(x, y, 0.05)
363
392
  # => true
364
393
  def spearmanscorr(x, y, a)
365
394
  df = x.size - 2
@@ -376,8 +405,8 @@ module Num4TstStatistic2Lib
376
405
  # @example
377
406
  # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
378
407
  # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
379
- # paraTest = Num4TstStatistic2Lib::DecorrTestLib.new
380
- # paraTest.kendallscorr(x, y, 0.05)
408
+ # decorrTest = DecorrTestLib::UnDecorrTestLib.new
409
+ # decorrTest.kendallscorr(x, y, 0.05)
381
410
  # => false
382
411
  def kendallscorr(x, y, a)
383
412
  df = x.size - 2
@@ -385,5 +414,72 @@ module Num4TstStatistic2Lib
385
414
  return @hypothTest.twoSideTest(statistic, df, a)
386
415
  end
387
416
  end
417
+ # 相関係数の検定
418
+ class CorreFactLib < CorreFactIF
419
+ def initialize(hypothTest3)
420
+ @hypothTest3 = hypothTest3
421
+ @paraTest = Num4TstStatisticLib::ParametrixTestLib.new
422
+ @nonParaTest = Num4TstStatisticLib::NonParametrixTestLib.new
423
+ end
424
+ # ピアソン相関係数
425
+ #
426
+ # @overload pearsoCorrelation(x, y, rth0, a)
427
+ # @param [Array] x xのデータ(double[])
428
+ # @param [Array] y yのデータ(double[])
429
+ # @param [double] rth0 母相関係数
430
+ # @param [double] a 有意水準
431
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
432
+ # @example
433
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
434
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
435
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
436
+ # decorrTest = DecorrTestLib::CorreFactLib.new(hypothTest)
437
+ # decorrTest.pearsoCorrelation(x, y, -0.3, 0.05)
438
+ # => true
439
+ def pearsoCorrelation(x, y, rth0, a)
440
+ raise TypeError unless @hypothTest3.kind_of?(HypothTest3IF)
441
+ statistic = @paraTest.pearsoCorrelation(x, y)
442
+ return @hypothTest3.populationCorre(statistic, x.size, rth0, a)
443
+ end
444
+ # スピアマンの順位相関係数
445
+ #
446
+ # @overload spearmanscorr(x, y, rth0, a)
447
+ # @param [Array] x xのデータ(double[])
448
+ # @param [Array] y yのデータ(double[])
449
+ # @param [double] rth0 母相関係数
450
+ # @param [double] a 有意水準
451
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
452
+ # @example
453
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
454
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
455
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
456
+ # decorrTest = DecorrTestLib::CorreFactLib.new(hypothTest)
457
+ # decorrTest.spearmanscorr(x, y, -0.3, 0.05)
458
+ # => true
459
+ def spearmanscorr(x, y, rth0, a)
460
+ raise TypeError unless @hypothTest3.kind_of?(HypothTest3IF)
461
+ statistic = @nonParaTest.spearmanscorr(x, y)
462
+ return @hypothTest3.populationCorre(statistic, x.size, rth0, a)
463
+ end
464
+ # ケンドールの順位相関係数
465
+ #
466
+ # @overload kendallscorr(x, y, rth0, a)
467
+ # @param [Array] x xのデータ(double[])
468
+ # @param [Array] y yのデータ(double[])
469
+ # @param [double] rth0 母相関係数
470
+ # @param [double] a 有意水準
471
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
472
+ # @example
473
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
474
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
475
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
476
+ # decorrTest = DecorrTestLib::CorreFactLib.new(hypothTest)
477
+ # decorrTest.kendallscorr(x, y, -0.3, 0.05)
478
+ # => true
479
+ def kendallscorr(x, y, rth0, a)
480
+ raise TypeError unless @hypothTest3.kind_of?(HypothTest3IF)
481
+ statistic = @nonParaTest.kendallscorr(x, y)
482
+ return @hypothTest3.populationCorre(statistic, x.size, rth0, a)
483
+ end
484
+ end
388
485
  end
389
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4tststatistic2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-22 00:00:00.000000000 Z
11
+ date: 2024-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: num4tststatistic
@@ -59,8 +59,9 @@ files:
59
59
  - CHANGELOG.md
60
60
  - Gemfile
61
61
  - LICENSE
62
+ - lib/decorrtest.rb
62
63
  - lib/num4tststatistic2.rb
63
- homepage: http://github.com/siranovel/num4tststatistic2
64
+ homepage: https://github.com/siranovel/num4tststatistic2
64
65
  licenses:
65
66
  - MIT
66
67
  metadata: {}