プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

STATS_T_TEST_*

t検定ファンクションを次に示します。

構文

stats_t_test::=

stats_t_test.gifの説明が続きます。
図「stats_t_test.gif」の説明

用途

t検定では、平均値の差の有意性を測定します。この検定を使用して、2つのグループの平均値の比較、または1つのグループの平均値と定数の比較を行えます。1標本および2標本STATS_T_TEST_*ファンクションは、2つの式とVARCHAR2型の戻り値の3つの引数を取ります。このファンクションは、3つ目の引数に従って1つの数値を戻します。3つ目の引数を指定しない場合、デフォルトでTWO_SIDED_SIGが戻り値になります。表5-9に、戻り値の意味を示します。

表5-9 STATS_T_TEST_*の戻り値

戻り値 意味

STATISTIC

tの観測値

DF

自由度

ONE_SIDED_SIG

tの片側有意

TWO_SIDED_SIG

tの両側有意


2つの独立したSTATS_T_TEST_*ファンクションは、3つ目の引数がSTATISTICまたはONE_SIDED_SIGとして指定されている場合、4つ目の引数(expr3)を取ることができます。この場合、expr3は、expr1のどちらの値が大きい値(棄却域が上側確率の値)であるかを示します。

tの観測値の有意性は、tの値が偶然得られた確率で、0(ゼロ)から1の数値です。この値が小さいほど、平均値間の有意差が大きくなります。片側有意は常に上側確率に関連します。1標本および対応のあるt検定の場合、最初の式が大きい値になります。独立したt検定の場合、expr3で指定した値が大きい値になります。

自由度は、tの観測値を求めるために使用したt検定の種類によって異なります。たとえば、1標本t検定(STATS_T_TEST_ONE)の場合、自由度は標本における観測数から1を引いた値です。

STATS_T_TEST_ONE

STATS_T_TEST_ONEファンクションでは、expr1には標本を指定し、expr2には標本平均値の比較対象となる定数平均値を指定します。t検定の場合にのみ、expr2はオプションとなります。定数平均値は、デフォルトで0になります。このファンクションは、標本平均値と既知の平均値の差を、平均値の標準誤差で割ってt値を求めます(STATS_T_TEST_PAIREDでは、平均値の差の標準誤差で割ります)。

STATS_T_TEST_ONEの例 次の例では、平均表示価格と定数値60の差の有意性を判断します。

SELECT AVG(prod_list_price) group_mean,
       STATS_T_TEST_ONE(prod_list_price, 60, 'STATISTIC') t_observed,
       STATS_T_TEST_ONE(prod_list_price, 60) two_sided_p_value
  FROM sh.products;

GROUP_MEAN T_OBSERVED TWO_SIDED_P_VALUE
---------- ---------- -----------------
139.545556 2.32107746        .023158537

STATS_T_TEST_PAIRED

STATS_T_TEST_PAIREDファンクションでは、expr1およびexpr2には、比較する平均値の計算元の2つの標本をそれぞれ指定します。このファンクションは、標本平均値の差を、平均値の差の標準誤差で割ってt値を求めます(STATS_T_TEST_ONEでは、平均値の標準誤差で割ります)。

STATS_T_TEST_INDEPおよびSTATS_T_TEST_INDEPU

STATS_T_TEST_INDEPおよびSTATS_T_TEST_INDEPUファンクションでは、expr1はグループ列で、expr2は値の標本です。併合分散用のファンクション(STATS_T_TEST_INDEP)は、同様の分散を持つ2つの分布において、平均値が同じか異なるかをテストします。非併合分散用のファンクション(STATS_T_TEST_INDEPU)は、既知の有意差のある分散を持つ2つの分布においても、平均値が同じか異なるかをテストします。

これらのファンクションを使用する前に、標本の分散に有意差があるかどうかを判断しておくことをお薦めします。有意差がある場合、そのデータは異なる形状の分布に属している可能性があり、平均値の差が有効でない場合があります。f検定を実行して、分散の差を判断できます。分散に有意差がない場合、STATS_T_TEST_INDEPを使用します。有意差がある場合は、STATS_T_TEST_INDEPUを使用します。f検定の実行の詳細は、「STATS_F_TEST」を参照してください。

STATS_T_TEST_INDEPの例 次の例では、各分布の分散が同様である(併合分散)として、男性と女性に対する平均売上間の差の有意性を判断します。

SELECT SUBSTR(cust_income_level, 1, 22) income_level,
      AVG(DECODE(cust_gender, 'M', amount_sold, null)) sold_to_men,
      AVG(DECODE(cust_gender, 'F', amount_sold, null)) sold_to_women,
      STATS_T_TEST_INDEP(cust_gender, amount_sold, 'STATISTIC', 'F') t_observed,
      STATS_T_TEST_INDEP(cust_gender, amount_sold) two_sided_p_value
  FROM sh.customers c, sh.sales s
  WHERE c.cust_id = s.cust_id
  GROUP BY ROLLUP(cust_income_level)
  ORDER BY income_level, sold_to_men, sold_to_women, t_observed;

INCOME_LEVEL           SOLD_TO_MEN SOLD_TO_WOMEN T_OBSERVED TWO_SIDED_P_VALUE
---------------------- ----------- ------------- ---------- -----------------
A: Below 30,000          105.28349    99.4281447 -1.9880629        .046811482
B: 30,000 - 49,999       102.59651    109.829642 3.04330875        .002341053
C: 50,000 - 69,999      105.627588    110.127931 2.36148671        .018204221
D: 70,000 - 89,999      106.630299     110.47287 2.28496443        .022316997
E: 90,000 - 109,999     103.396741    101.610416 -1.2544577        .209677823
F: 110,000 - 129,999     106.76476    105.981312 -.60444998        .545545304
G: 130,000 - 149,999    108.877532     107.31377 -.85298245        .393671218
H: 150,000 - 169,999    110.987258    107.152191 -1.9062363        .056622983
I: 170,000 - 189,999    102.808238     107.43556 2.18477851        .028908566
J: 190,000 - 249,999    108.040564    115.343356 2.58313425        .009794516
K: 250,000 - 299,999    112.377993    108.196097 -1.4107871        .158316973
L: 300,000 and above    120.970235    112.216342 -2.0642868        .039003862
                        107.121845     113.80441 .686144393        .492670059
                        106.663769    107.276386 1.08013499        .280082357
14 rows selected.

STATS_T_TEST_INDEPUの例 次の例では、各分布の分散に既知の有意差がある(非併合分散)として、男性と女性に対する平均売上間の差の有意性を判断します。

SELECT SUBSTR(cust_income_level, 1, 22) income_level,
       AVG(DECODE(cust_gender, 'M', amount_sold, null)) sold_to_men,
       AVG(DECODE(cust_gender, 'F', amount_sold, null)) sold_to_women,
       STATS_T_TEST_INDEPU(cust_gender, amount_sold, 'STATISTIC', 'F') t_observed,
       STATS_T_TEST_INDEPU(cust_gender, amount_sold) two_sided_p_value
  FROM sh.customers c, sh.sales s
  WHERE c.cust_id = s.cust_id
  GROUP BY ROLLUP(cust_income_level)
  ORDER BY income_level, sold_to_men, sold_to_women, t_observed;

INCOME_LEVEL           SOLD_TO_MEN SOLD_TO_WOMEN T_OBSERVED TWO_SIDED_P_VALUE
---------------------- ----------- ------------- ---------- -----------------
A: Below 30,000          105.28349    99.4281447 -2.0542592        .039964704
B: 30,000 - 49,999       102.59651    109.829642 2.96922332        .002987742
C: 50,000 - 69,999      105.627588    110.127931  2.3496854        .018792277
D: 70,000 - 89,999      106.630299     110.47287 2.26839281        .023307831
E: 90,000 - 109,999     103.396741    101.610416 -1.2603509        .207545662
F: 110,000 - 129,999     106.76476    105.981312 -.60580011        .544648553
G: 130,000 - 149,999    108.877532     107.31377 -.85219781        .394107755
H: 150,000 - 169,999    110.987258    107.152191 -1.9451486        .051762624
I: 170,000 - 189,999    102.808238     107.43556 2.14966921        .031587875
J: 190,000 - 249,999    108.040564    115.343356 2.54749867        .010854966
K: 250,000 - 299,999    112.377993    108.196097 -1.4115514        .158091676
L: 300,000 and above    120.970235    112.216342 -2.0726194        .038225611
                        107.121845     113.80441 .689462437        .490595765
                        106.663769    107.276386 1.07853782        .280794207
14 rows selected.