SAS Viyaでデータの相関関係を確認する

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

機械学習を用いる際に専用のテーブル（casTable）を用いますが、今回はデータの相関関係を確認します。

## データを確認する

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

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

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

```python
organics.casTable.head()
```

<table border="1" class="dataframe"><caption>Selected Rows from Table ORGANICS</caption>
  <thead>
    <tr style="text-align: right;">
      <th title=""></th>
      <th title="Customer Id">CUSTID</th>
      <th title="GENDER">GENDER</th>
      <th title="Date of Birth">DOB</th>
      <th title="Date data taken from data base">EDATE</th>
      <th title="Age">AGE</th>
      <th title="Age Group 1">AGEGRP1</th>
      <th title="Age Group 2">AGEGRP2</th>
      <th title="TV Region">TV_REG</th>
      <th title="Neighborhood Group">NGROUP</th>
      <th title="Type of Residential Neighborhood">NEIGHBORHOOD</th>
      <th title="Loyalty card application date">LCDATE</th>
      <th title="Number of Organic Products Purchased">ORGANICS</th>
      <th title="Total Amount Spent">BILL</th>
      <th title="Geographic Region">REGION</th>
      <th title="Customer Loyalty Status">CLASS</th>
      <th title="Organics Purchased?">ORGYN</th>
      <th title="Affluence grade">AFFL</th>
      <th title="Years as Loyalty Card Member">LTIME</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0000000140</td>
      <td>U</td>
      <td>1921-09-16</td>
      <td>1998-02-23</td>
      <td>76.0</td>
      <td>60-80</td>
      <td>70-80</td>
      <td>Wales &amp; West</td>
      <td>C</td>
      <td>16</td>
      <td>1994-11-07</td>
      <td>0.0</td>
      <td>16000.00</td>
      <td>Midlands</td>
      <td>Gold</td>
      <td>0.0</td>
      <td>10.0</td>
      <td>4.0</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0000000620</td>
      <td>U</td>
      <td>1949-02-12</td>
      <td>1998-02-23</td>
      <td>49.0</td>
      <td>40-60</td>
      <td>40-50</td>
      <td>Wales &amp; West</td>
      <td>D</td>
      <td>35</td>
      <td>1993-06-04</td>
      <td>0.0</td>
      <td>6000.00</td>
      <td>Midlands</td>
      <td>Gold</td>
      <td>0.0</td>
      <td>4.0</td>
      <td>5.0</td>
    </tr>
  </tbody>
</table>

## 相関関係を取り出す

相関関係はcorrelationメソッドを使います。

```py
organics.correlation()
```

そうすると以下のようなデータが取得できます（うまく表示できないので一部のみとなっています）。

<div class="cas-results-key"><b>&#167; CorrSimple</b></div>
<div class="cas-results-body">
<div>
<table border="1" class="dataframe"><caption>Summary Statistics in Correlation Analysis for ORGANICS</caption>
  <thead>
    <tr style="text-align: right;">
      <th title=""></th>
      <th title="Analysis Variable">Variable</th>
      <th title="N">N</th>
      <th title="Mean">Mean</th>
      <th title="Sum">Sum</th>
      <th title="Std Dev">StdDev</th>
      <th title="Min">Minimum</th>
      <th title="Max">Maximum</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>DOB</td>
      <td>22223.0</td>
      <td>-5877.324574</td>
      <td>-1.306118e+08</td>
      <td>4825.522949</td>
      <td>-15266.00</td>
      <td>7190.00</td>
    </tr>
    <tr>
      <th>1</th>
      <td>EDATE</td>
      <td>22223.0</td>
      <td>13933.000000</td>
      <td>3.096331e+08</td>
      <td>0.000000</td>
      <td>13933.00</td>
      <td>13933.00</td>
    </tr>
    <tr>
      <th>2</th>
      <td>AGE</td>
      <td>20715.0</td>
      <td>53.797152</td>
      <td>1.114408e+06</td>
      <td>13.206048</td>
      <td>18.00</td>
      <td>79.00</td>
    </tr>
    <tr>
      <th>3</th>
      <td>LCDATE</td>
      <td>21942.0</td>
      <td>11644.613937</td>
      <td>2.555061e+08</td>
      <td>2317.765457</td>
      <td>-21914.00</td>
      <td>13846.00</td>
    </tr>
    <tr>
      <th>4</th>
      <td>ORGANICS</td>
      <td>22223.0</td>
      <td>0.294740</td>
      <td>6.550000e+03</td>
      <td>0.562831</td>
      <td>0.00</td>
      <td>3.00</td>
    </tr>
    <tr>
      <th>5</th>
      <td>BILL</td>
      <td>22223.0</td>
      <td>4420.590041</td>
      <td>9.823877e+07</td>
      <td>7559.047522</td>
      <td>0.01</td>
      <td>296313.85</td>
    </tr>
    <tr>
      <th>6</th>
      <td>ORGYN</td>
      <td>22223.0</td>
      <td>0.247716</td>
      <td>5.505000e+03</td>
      <td>0.431696</td>
      <td>0.00</td>
      <td>1.00</td>
    </tr>
    <tr>
      <th>7</th>
      <td>AFFL</td>
      <td>21138.0</td>
      <td>8.711893</td>
      <td>1.841520e+05</td>
      <td>3.421125</td>
      <td>0.00</td>
      <td>34.00</td>
    </tr>
    <tr>
      <th>8</th>
      <td>LTIME</td>
      <td>21942.0</td>
      <td>6.564670</td>
      <td>1.440420e+05</td>
      <td>4.657113</td>
      <td>0.00</td>
      <td>39.00</td>
    </tr>
  </tbody>
</table>
</div>
</div>

## データを絞り込む

見たいデータを絞り込む時には `inputs` パラメータを使います。

```py
varlist = ['AFFL', 'AGE', 'BILL']
organics.correlation(inputs=varlist, simple=False)
```

<div class="cas-results-key"><b>&#167; Correlation</b></div>
<div class="cas-results-body">
<div>
<table border="1" class="dataframe"><caption>Pearson Correlation Coefficients for ORGANICS</caption>
  <thead>
    <tr style="text-align: right;">
      <th title=""></th>
      <th title="Variable">Variable</th>
      <th title="Affluence grade">AFFL</th>
      <th title="Age">AGE</th>
      <th title="Total Amount Spent">BILL</th>
      <th title="NAFFL">Nobs1</th>
      <th title="NAGE">Nobs2</th>
      <th title="NBILL">Nobs3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>AFFL</td>
      <td>1.000000</td>
      <td>-0.137767</td>
      <td>-0.019621</td>
      <td>21138.0</td>
      <td>19714.0</td>
      <td>21138.0</td>
    </tr>
    <tr>
      <th>1</th>
      <td>AGE</td>
      <td>-0.137767</td>
      <td>1.000000</td>
      <td>0.268434</td>
      <td>19714.0</td>
      <td>20715.0</td>
      <td>20715.0</td>
    </tr>
    <tr>
      <th>2</th>
      <td>BILL</td>
      <td>-0.019621</td>
      <td>0.268434</td>
      <td>1.000000</td>
      <td>21138.0</td>
      <td>20715.0</td>
      <td>22223.0</td>
    </tr>
  </tbody>
</table>
</div>
</div>
<div class="cas-output-area"></div>
<p class="cas-results-performance"><small><span class="cas-elapsed">elapsed 0.00924s</span> &#183; <span class="cas-user">user 0.012s</span> &#183; <span class="cas-sys">sys 0.004s</span> &#183; <span class="cas-memory">mem 2.08MB</span></small></p>

## まとめ

データ全体の傾向を荒く確認する際に使うと便利です。ぜひご利用ください。