LoginSignup
0
0

More than 5 years have passed since last update.

SAS Viyaでデータの分布を確認する

Posted at

SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。

機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はデータの分布を調べる方法を紹介します。

データを確認する

今回は organics.sas7bdat を用います。

organics = sess.upload('organics.sas7bdat')

データは以下のようになっています。

organics.casTable.head()
Selected Rows from Table ORGANICS
CUSTID GENDER DOB EDATE AGE AGEGRP1 AGEGRP2 TV_REG NGROUP NEIGHBORHOOD LCDATE ORGANICS BILL REGION CLASS ORGYN AFFL LTIME
0 0000000140 U 1921-09-16 1998-02-23 76.0 60-80 70-80 Wales & West C 16 1994-11-07 0.0 16000.00 Midlands Gold 0.0 10.0 4.0
1 0000000620 U 1949-02-12 1998-02-23 49.0 40-60 40-50 Wales & West D 35 1993-06-04 0.0 6000.00 Midlands Gold 0.0 4.0 5.0

表示するデータを指定する

今回は年齢ごとにデータを確認します。

organics.casTable.percentile(inputs='AGE')

データが出力されます。

§ Percentile
Percentiles for ORGANICS
Variable Pctl Value Converged
0 AGE 25.0 44.0 1.0
1 AGE 50.0 54.0 1.0
2 AGE 75.0 64.0 1.0

さらにデータをその分布に応じて分割します。

organics.casTable.percentile(inputs='AGE', values=list(range(5,95,5)))

そうするとデータが5%刻みで分割されたのが分かるでしょう。

§ Percentile
Percentiles for ORGANICS
Variable Pctl Value Converged
0 AGE 5.0 32.0 1.0
1 AGE 10.0 36.0 1.0
17 AGE 90.0 72.0 1.0

さらにデータを性別でグルーピングします。元々の表では両性別が混在しています。

organics.casTable.groupby = ['GENDER']
result = organics.casTable.percentile(inputs='AGE', values=list(range(5,95,5)))

そしてそのデータをグラフ出力します。

df = result.concat_bygroups()['Percentile']
df.reset_index(level=0, inplace=True)
p = Scatter(df, x='Pctl', y='Value', legend='top_center', marker='GENDER')
output_file('scatter.html')
show(p)

そうすると性別ごと(UはUnknown)も含めてデータの分布が可視化されます。

Screenshot_ 2019-02-08 16.32.33.png


Pythonを使うことでデータの傾向が可視化され、分析を行う前に全体像が把握できるようになります。ぜひPythonライブラリを使ってSAS Viyaの分析に役立ててください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0