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

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

機械学習を用いる際に専用のテーブル（casTable）を用いますが、今回はそのテーブルオブジェクト（Python版）でデータの相関関係を確認する方法を紹介します。

## テーブルの作り方

テーブルはCSV、HTML、他のデータベースなどから作れます。

```py
out = sess.upload('Jupyter_Saved_Work/Data/iris.csv')
```

ファイルをアップロードした後、casTableとして取得します。

```
tbl = out.casTable
```

## 相関関係はCorrelationで確認できる

まず相関関係を取得できるオブジェクトを作ります。

```py
cor1 = tbl.correlation()
```

さらにテーブルを取り出します。

```py
cor1.get_tables('Correlation')
```

そうすると、以下のようにデータが返ってきます。同じデータ同士は 1.000000 ですが、他のデータについては相関が割合で表示されます。このデータを見るだけでも何となくデータの状態が見えてきます。

```
[Pearson Correlation Coefficients for IRIS

                 Variable  SepalLength  SepalWidth  PetalLength  PetalWidth
 Name                                                                      
 Iris-setosa  SepalLength     1.000000    0.746780     0.263874    0.279092
 Iris-setosa   SepalWidth     0.746780    1.000000     0.176695    0.279973
 Iris-setosa  PetalLength     0.263874    0.176695     1.000000    0.306308
 Iris-setosa   PetalWidth     0.279092    0.279973     0.306308    1.000000,
 Pearson Correlation Coefficients for IRIS

                     Variable  SepalLength  SepalWidth  PetalLength  PetalWidth
 Name                                                                          
 Iris-versicolor  SepalLength     1.000000    0.525911     0.754049    0.546461
 Iris-versicolor   SepalWidth     0.525911    1.000000     0.560522    0.663999
 Iris-versicolor  PetalLength     0.754049    0.560522     1.000000    0.786668
 Iris-versicolor   PetalWidth     0.546461    0.663999     0.786668    1.000000,
 Pearson Correlation Coefficients for IRIS

                    Variable  SepalLength  SepalWidth  PetalLength  PetalWidth
 Name                                                                         
 Iris-virginica  SepalLength     1.000000    0.457228     0.864225    0.281108
 Iris-virginica   SepalWidth     0.457228    1.000000     0.401045    0.537728
 Iris-virginica  PetalLength     0.864225    0.401045     1.000000    0.322108
 Iris-virginica   PetalWidth     0.281108    0.537728     0.322108    1.000000]
```

`swat.concat` を使うとデータをつなげて見られます。

```python
swat.concat(cor1.get_tables('Correlation'))
```

| | Variable | SepalLength | SepalWidth | PetalLength | PetalWidth
|----|----|----|----|----
| Iris-setosa | SepalLength | 1.000000 | 0.746780 | 0.263874 | 0.279092
| Iris-setosa | SepalWidth | 0.746780 | 1.000000 | 0.176695 | 0.279973
| Iris-setosa | PetalLength | 0.263874 | 0.176695 | 1.000000 | 0.306308
| Iris-setosa | PetalWidth | 0.279092 | 0.279973 | 0.306308 | 1.000000
| Iris-versicolor | SepalLength | 1.000000 | 0.525911 | 0.754049 | 0.546461
| Iris-versicolor | SepalWidth | 0.525911 | 1.000000 | 0.560522 | 0.663999
| Iris-versicolor | PetalLength | 0.754049 | 0.560522 | 1.000000 | 0.786668
| Iris-versicolor | PetalWidth | 0.546461 | 0.663999 | 0.786668 | 1.000000
| Iris-virginica | SepalLength | 1.000000 | 0.457228 | 0.864225 | 0.281108
| Iris-virginica | SepalWidth | 0.457228 | 1.000000 | 0.401045 | 0.537728
| Iris-virginica | PetalLength | 0.864225 | 0.401045 | 1.000000 | 0.322108
| Iris-virginica | PetalWidth | 0.281108 | 0.537728 | 0.322108 | 1.000000

----

機械学習のネットワークを組む前に一度軽くデータの相関関係を確認することで見えるものもあるでしょう。　Correlation は使いどころの多そうなメソッドなので覚えておくと便利です。

[SAS for Developers | SAS](https://developer.sas.com/home.html)