num4hypothtst 0.0.3-java → 0.0.5-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/ext/num4hypothtst/hypothtst/GrubbsTest.java +34 -0
- data/ext/num4hypothtst/{HypothTest.java → hypothtst/HypothTest.java} +3 -1
- data/ext/num4hypothtst/{LeftSideTest.java → hypothtst/LeftSideTest.java} +10 -3
- data/ext/num4hypothtst/{RightSideTest.java → hypothtst/RightSideTest.java} +9 -10
- data/ext/num4hypothtst/{TwoSideTest.java → hypothtst/TwoSideTest.java} +10 -18
- data/lib/num4hypothtst.rb +59 -15
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6ff3dd6e82c9be96c99627583dc57403f357a9fd7cfd47d20b4a9b91aa169ff
|
4
|
+
data.tar.gz: 52b8a0961a549a213d35e431b73b50935642a4f2ad5aa69cf05ca9637577b1bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6da36a8c168a2a0055483738640ccecb5babb6d3268c109240e330a7cae3da486582dcef1271336402e2cba567911a2e0e59ef6c25c8963ef4428283be387821
|
7
|
+
data.tar.gz: 43af75b2187bdb1e4fce7202b5414cfd1534ab4246f30713cfa8ddee56457bbc4d03ebb5a5ca0ca4d271a32acba2512877fe8b70974a6db7eefa2190ebf79d2e
|
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
package hypothtst;
|
2
|
+
|
3
|
+
import org.apache.commons.math3.distribution.TDistribution;
|
4
|
+
// グラブス・スミルノフの外れ値の検定
|
5
|
+
public class GrubbsTest {
|
6
|
+
private static GrubbsTest grubbs = new GrubbsTest();
|
7
|
+
public static GrubbsTest getInstance() {
|
8
|
+
return grubbs;
|
9
|
+
}
|
10
|
+
public boolean twoSideTest(double statistic, int n, double a) {
|
11
|
+
double r_val = calcGnValue(n, a / 2.0);
|
12
|
+
return evaluation(statistic, r_val);
|
13
|
+
}
|
14
|
+
public boolean oneSideTest(double statistic, int n, double a) {
|
15
|
+
double r_val = calcGnValue(n, a);
|
16
|
+
return evaluation(statistic, r_val);
|
17
|
+
}
|
18
|
+
private double calcGnValue(int n, double a) {
|
19
|
+
TDistribution tDist = new TDistribution(n);
|
20
|
+
double t = tDist.inverseCumulativeProbability(a / n);
|
21
|
+
double gn = (n - 1) * t / Math.sqrt(n * (n - 2 + t * t));
|
22
|
+
|
23
|
+
return Math.abs(gn);
|
24
|
+
}
|
25
|
+
private boolean evaluation(double statistic, double r_val) {
|
26
|
+
boolean ret = true;
|
27
|
+
|
28
|
+
if (Math.abs(statistic) < r_val) {
|
29
|
+
ret = false;
|
30
|
+
}
|
31
|
+
return ret;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
@@ -1,9 +1,11 @@
|
|
1
|
+
package hypothtst;
|
2
|
+
|
1
3
|
// 仮設検定
|
2
4
|
interface HypothTest {
|
3
5
|
boolean tDistTest(double statistic, double df, double a);
|
4
6
|
boolean chi2DistTest(double statistic, double df, double a);
|
5
7
|
boolean normDistTest(double statistic, double a);
|
6
8
|
boolean fDistTest(double statistic, double nf, double df, double a);
|
7
|
-
boolean
|
9
|
+
boolean wilcoxon(double statistic, int n, double a);
|
8
10
|
}
|
9
11
|
|
@@ -1,9 +1,11 @@
|
|
1
|
-
|
1
|
+
package hypothtst;
|
2
|
+
|
2
3
|
import org.apache.commons.math3.distribution.TDistribution;
|
3
4
|
import org.apache.commons.math3.distribution.ChiSquaredDistribution;
|
4
5
|
import org.apache.commons.math3.distribution.NormalDistribution;
|
5
6
|
import org.apache.commons.math3.distribution.FDistribution;
|
6
7
|
|
8
|
+
// 片側検定(左側)
|
7
9
|
public class LeftSideTest implements HypothTest {
|
8
10
|
private static HypothTest hupothTest = new LeftSideTest();
|
9
11
|
public static HypothTest getInstance() {
|
@@ -33,8 +35,13 @@ public class LeftSideTest implements HypothTest {
|
|
33
35
|
|
34
36
|
return evaluation(statistic, l_val);
|
35
37
|
}
|
36
|
-
public boolean
|
37
|
-
|
38
|
+
public boolean wilcoxon(double statistic, int n, double a) {
|
39
|
+
boolean ret = true;
|
40
|
+
double e_t = n * (n + 1.0) / 4.0;
|
41
|
+
double var_t = n * (n + 1.0) * (2.0 * n + 1.0) / 24.0;
|
42
|
+
double z = (statistic - e_t) / Math.sqrt(var_t);
|
43
|
+
|
44
|
+
return normDistTest(z, a);
|
38
45
|
}
|
39
46
|
|
40
47
|
private boolean evaluation(double statistic, double l_val) {
|
@@ -1,8 +1,10 @@
|
|
1
|
+
package hypothtst;
|
2
|
+
|
1
3
|
import org.apache.commons.math3.distribution.TDistribution;
|
2
4
|
import org.apache.commons.math3.distribution.ChiSquaredDistribution;
|
3
5
|
import org.apache.commons.math3.distribution.NormalDistribution;
|
4
6
|
import org.apache.commons.math3.distribution.FDistribution;
|
5
|
-
|
7
|
+
// 片側検定(右側)
|
6
8
|
public class RightSideTest implements HypothTest {
|
7
9
|
private static HypothTest hupothTest = new RightSideTest();
|
8
10
|
public static HypothTest getInstance() {
|
@@ -32,16 +34,13 @@ public class RightSideTest implements HypothTest {
|
|
32
34
|
|
33
35
|
return evaluation(statistic, r_val);
|
34
36
|
}
|
35
|
-
public boolean
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
TDistribution tDist = new TDistribution(n);
|
41
|
-
double t = tDist.inverseCumulativeProbability(a / n);
|
42
|
-
double gn = (n - 1) * t / Math.sqrt(n * (n - 2 + t * t));
|
37
|
+
public boolean wilcoxon(double statistic, int n, double a) {
|
38
|
+
boolean ret = true;
|
39
|
+
double e_t = n * (n + 1.0) / 4.0;
|
40
|
+
double var_t = n * (n + 1.0) * (2.0 * n + 1.0) / 24.0;
|
41
|
+
double z = (statistic - e_t) / Math.sqrt(var_t);
|
43
42
|
|
44
|
-
return
|
43
|
+
return normDistTest(z, a);
|
45
44
|
}
|
46
45
|
private boolean evaluation(double statistic, double r_val) {
|
47
46
|
boolean ret = true;
|
@@ -1,9 +1,11 @@
|
|
1
|
-
|
1
|
+
package hypothtst;
|
2
|
+
|
2
3
|
import org.apache.commons.math3.distribution.TDistribution;
|
3
4
|
import org.apache.commons.math3.distribution.ChiSquaredDistribution;
|
4
5
|
import org.apache.commons.math3.distribution.NormalDistribution;
|
5
6
|
import org.apache.commons.math3.distribution.FDistribution;
|
6
7
|
|
8
|
+
// 両側検定
|
7
9
|
public class TwoSideTest implements HypothTest {
|
8
10
|
private static HypothTest hupothTest = new TwoSideTest();
|
9
11
|
public static HypothTest getInstance() {
|
@@ -37,17 +39,15 @@ public class TwoSideTest implements HypothTest {
|
|
37
39
|
|
38
40
|
return evaluation(statistic, l_val, r_val);
|
39
41
|
}
|
40
|
-
public boolean
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
TDistribution tDist = new TDistribution(n);
|
46
|
-
double t = tDist.inverseCumulativeProbability(a / n);
|
47
|
-
double gn = (n - 1) * t / Math.sqrt(n * (n - 2 + t * t));
|
42
|
+
public boolean wilcoxon(double statistic, int n, double a) {
|
43
|
+
boolean ret = true;
|
44
|
+
double e_t = n * (n + 1.0) / 4.0;
|
45
|
+
double var_t = n * (n + 1.0) * (2.0 * n + 1.0) / 24.0;
|
46
|
+
double z = (statistic - e_t) / Math.sqrt(var_t);
|
48
47
|
|
49
|
-
return
|
48
|
+
return normDistTest(z, a);
|
50
49
|
}
|
50
|
+
|
51
51
|
private boolean evaluation(double statistic, double l_val, double r_val) {
|
52
52
|
boolean ret = true;
|
53
53
|
|
@@ -56,14 +56,6 @@ public class TwoSideTest implements HypothTest {
|
|
56
56
|
}
|
57
57
|
return ret;
|
58
58
|
}
|
59
|
-
private boolean evaluation(double statistic, double r_val) {
|
60
|
-
boolean ret = true;
|
61
|
-
|
62
|
-
if (Math.abs(statistic) < r_val) {
|
63
|
-
ret = false;
|
64
|
-
}
|
65
|
-
return ret;
|
66
|
-
}
|
67
59
|
|
68
60
|
}
|
69
61
|
|
data/lib/num4hypothtst.rb
CHANGED
@@ -2,9 +2,10 @@ require 'java'
|
|
2
2
|
require 'num4hypothtst.jar'
|
3
3
|
require 'commons-math3-3.6.1.jar'
|
4
4
|
|
5
|
-
java_import 'TwoSideTest'
|
6
|
-
java_import 'RightSideTest'
|
7
|
-
java_import 'LeftSideTest'
|
5
|
+
java_import 'hypothtst.TwoSideTest'
|
6
|
+
java_import 'hypothtst.RightSideTest'
|
7
|
+
java_import 'hypothtst.LeftSideTest'
|
8
|
+
java_import 'hypothtst.GrubbsTest'
|
8
9
|
|
9
10
|
# 統計的仮設検定のためのライブラリ
|
10
11
|
# (Apache commoms math3使用)
|
@@ -54,16 +55,19 @@ module Num4HypothTestLib
|
|
54
55
|
def fDistTest(statistic, nf, df, a)
|
55
56
|
return @hypothTest.fDistTest(statistic, nf, df, a)
|
56
57
|
end
|
57
|
-
#
|
58
|
+
# ウィルコクソン符号順位検定
|
58
59
|
#
|
59
|
-
# @overload
|
60
|
-
# @param [
|
61
|
-
# @param [int]
|
60
|
+
# @overload wilcoxon(statistic, n, a)
|
61
|
+
# @param [int] statistic ウィルコクソン符号順位の検定統計量
|
62
|
+
# @param [int] n データの個数
|
62
63
|
# @param [double] a 有意水準
|
63
64
|
# @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
|
64
|
-
|
65
|
-
|
65
|
+
# @note
|
66
|
+
# 内部でN(0,1)に近似して検定
|
67
|
+
def wilcoxon(statistic, n, a)
|
68
|
+
return @hypothTest.wilcoxon(statistic, n, a)
|
66
69
|
end
|
70
|
+
|
67
71
|
end
|
68
72
|
# 片側(右側)検定
|
69
73
|
class RightSideTestLib
|
@@ -110,15 +114,17 @@ module Num4HypothTestLib
|
|
110
114
|
def fDistTest(statistic, nf, df, a)
|
111
115
|
return @hypothTest.fDistTest(statistic, nf, df, a)
|
112
116
|
end
|
113
|
-
#
|
117
|
+
# ウィルコクソン符号順位検定
|
114
118
|
#
|
115
|
-
# @overload
|
116
|
-
# @param [
|
117
|
-
# @param [int]
|
119
|
+
# @overload wilcoxon(statistic, n, a)
|
120
|
+
# @param [int] statistic ウィルコクソン符号順位の検定統計量
|
121
|
+
# @param [int] n データの個数
|
118
122
|
# @param [double] a 有意水準
|
119
123
|
# @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
|
120
|
-
|
121
|
-
|
124
|
+
# @note
|
125
|
+
# 内部でN(0,1)に近似して検定
|
126
|
+
def wilcoxon(statistic, n, a)
|
127
|
+
return @hypothTest.wilcoxon(statistic, n, a)
|
122
128
|
end
|
123
129
|
end
|
124
130
|
# 片側(左側)検定
|
@@ -166,6 +172,44 @@ module Num4HypothTestLib
|
|
166
172
|
def fDistTest(statistic, nf, df, a)
|
167
173
|
return @hypothTest.fDistTest(statistic, nf, df, a)
|
168
174
|
end
|
175
|
+
# ウィルコクソン符号順位検定
|
176
|
+
#
|
177
|
+
# @overload wilcoxon(statistic, n, a)
|
178
|
+
# @param [int] statistic ウィルコクソン符号順位の検定統計量
|
179
|
+
# @param [int] n データの個数
|
180
|
+
# @param [double] a 有意水準
|
181
|
+
# @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
|
182
|
+
# @note
|
183
|
+
# 内部でN(0,1)に近似して検定
|
184
|
+
def wilcoxon(statistic, n, a)
|
185
|
+
return @hypothTest.wilcoxon(statistic, n, a)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
# グラブス・スミルノフの外れ値の検定
|
189
|
+
class GrubbsTestLib
|
190
|
+
def initialize
|
191
|
+
@hypothTest = GrubbsTest.getInstance()
|
192
|
+
end
|
193
|
+
# 両側検定
|
194
|
+
#
|
195
|
+
# @overload twoSideTest(statistic, n, a)
|
196
|
+
# @param [double] statistic 検定統計量
|
197
|
+
# @param [int] n 自由度
|
198
|
+
# @param [double] a 有意水準
|
199
|
+
# @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
|
200
|
+
def twoSideTest(statistic, n, a)
|
201
|
+
return @hypothTest.twoSideTest(statistic, n, a)
|
202
|
+
end
|
203
|
+
# 片側検定
|
204
|
+
#
|
205
|
+
# @overload oneSideTest(statistic, n, a)
|
206
|
+
# @param [double] statistic 検定統計量
|
207
|
+
# @param [int] n 自由度
|
208
|
+
# @param [double] a 有意水準
|
209
|
+
# @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
|
210
|
+
def oneSideTest(statistic, n, a)
|
211
|
+
return @hypothTest.oneSideTest(statistic, n, a)
|
212
|
+
end
|
169
213
|
end
|
170
214
|
end
|
171
215
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: num4hypothtst
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- siranovel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -61,10 +61,11 @@ files:
|
|
61
61
|
- Gemfile
|
62
62
|
- LICENSE
|
63
63
|
- Rakefile
|
64
|
-
- ext/num4hypothtst/
|
65
|
-
- ext/num4hypothtst/
|
66
|
-
- ext/num4hypothtst/
|
67
|
-
- ext/num4hypothtst/
|
64
|
+
- ext/num4hypothtst/hypothtst/GrubbsTest.java
|
65
|
+
- ext/num4hypothtst/hypothtst/HypothTest.java
|
66
|
+
- ext/num4hypothtst/hypothtst/LeftSideTest.java
|
67
|
+
- ext/num4hypothtst/hypothtst/RightSideTest.java
|
68
|
+
- ext/num4hypothtst/hypothtst/TwoSideTest.java
|
68
69
|
- lib/commons-math3-3.6.1.jar
|
69
70
|
- lib/num4hypothtst.rb
|
70
71
|
homepage: http://github.com/siranovel/num4hypothtst
|