TD_ChiSqの例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - Advanced SQL Engine分析関数

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/wnd1589838592459.ditamap
dita:ditavalPath
ja-JP/ayr1485454803741.ditaval
dita:id
B035-1206
Product Category
Software
Teradata Vantage

このドキュメントのすべての完全なサンプルは、ダウンロード可能なzipファイルの形式で入手できます。zipファイルには、サンプルの入力テーブルを作成するSQLスクリプト ファイルが含まれています。https://docs.teradata.com/でこのドキュメントを参照している場合は、左側のサイドバーの添付ファイル

からzipファイルをダウンロードできます。

この例では、性別が喫煙習慣の有無に影響を与えるかどうかをテストします。帰無仮説は、「性別と喫煙習慣は独立している」です。TD_ChiSqは、帰無仮説(予想される頻度)と分割表(観測される頻度)を比較します。

入力: contingency1

分割表には、男性と女性について、それぞれ喫煙習慣を持っている頻度が含まれています。性別を表わすcategory_1には、"female"と"male"のラベルが付いていて 、習慣を表わすcategory_2には、"smokers"と"non-smokers"のラベルが付いています。

この例では、それぞれcategory_1とcategory_2の2つのカテゴリを持つ双方向の分割表を示します。

各行には1~rの値を持つラベルiが付いていて、各列には2~cの値を持つラベルjが付いています。cとrの値はそれぞれ3と2です。

ここで、category_1_label1は女性に対応し、category_1_label2は男性に対応しています。同様に、category2_label1は喫煙者に、category2_label2は非喫煙者に対応しています。

分割表を作成するクエリーは次のとおりです。

--Query to construct table contingency1
CREATE MULTISET TABLE contingency1 as
(
select gender as gender
, sum((case when smokinghabit = 'smoker' then 1 else 0 end)) as smoker_cnt
, sum((case when smokinghabit= 'nonsmoker' then 1 else 0 end)) as nonsmoker_cnt
from mytesttable
group by gender
) with data;
 
--Alternate Query to construct table contingency1 using PIVOT
CREATE MULTISET TABLE contingency1 as
(
SELECT *
FROM (select gender as gender, smokinghabit, count(smokinghabit) as smokinghabit_count
from mytesttable group by gender, smokinghabit) as mytesttable 
 PIVOT ( SUM(smokinghabit_count) as smokinghabit_cnt FOR smokinghabit                        
                        IN ('smoker' AS smoker, 'nonsmoker' AS nonsmoker))Tmp
) with data;
                   Habits        
     gender        smokers     non-smokers
    ----------    ---------  -------------
     female            6            9
     male              8            5

SQL呼び出し

SELECT * from TD_CHISQ (
  ON contingency1 AS CONTINGENCY
  OUT TABLE EXPCOUNTS (exptable1)
  USING
  Alpha (0.05)
) AS dt;

出力テーブル

chi_square	         cramers_v	        df	alpha	                    p_value	         criticalvalue	        conclusion
----------               -------------------    ----     --------------------     -------------------     --------------         -----------------------------
1.29230769230769E 000	 2.14834462211830E-001	1	5.00000000000000E-002	2.55623107546413E-001	3.84145882069412E 000	Fail to reject Null hypothesis

exptable1

gender              smokers           non-smokers
----------  ----------------------  ----------------------
female       7.50000000000000E 000   7.50000000000000E 000
male         6.50000000000000E 000   6.50000000000000E 000