SAS Viyaで回帰分析モデルを試す


SAS Viyaでは様々なアクションセットが用意されており、データ分析を容易に行えるようになっています。今回はその一つ、回帰分析モデルを試す方法を紹介します。なお、この処理はSAS Viyaのデモアカウントでも行えますので、ぜひお試しください。

データのアップロード

元のデータは以下のURLに用意してあります。ダウンロードしてください。

そしてSAS ViyaのJupyter Notebookでアップロードします。

SAS Viyaへの接続

まずSAS Viyaに接続します。認証情報はあなたのものに書き換えてください。

cashost='localhost'
casport=5570
useremail='[email protected]'
userpassword='xxxxxxxxxxx'
casauth='~/.authinfo'
conn = CAS(cashost, casport, useremail, userpassword, caslib="casuser")

データの読み込み

次に先ほどアップロードしたデータを読み込みます。

cars = conn.upload('cars.csv').casTable

カラム情報は次のようになっています。

print(cars.columninfo());

出力結果です。

[ColumnInfo]

          Column  ID     Type  RawLength  FormattedLength  NFL  NFD
 0          Make   1  varchar         13               13    0    0
 1         Model   2  varchar         39               39    0    0
 2          Type   3  varchar          6                6    0    0
 3        Origin   4  varchar          6                6    0    0
 4    DriveTrain   5  varchar          5                5    0    0
 5          MSRP   6   double          8               12    0    0
 6       Invoice   7   double          8               12    0    0
 7    EngineSize   8   double          8               12    0    0
 8     Cylinders   9   double          8               12    0    0
 9    Horsepower  10   double          8               12    0    0
 10     MPG_City  11   double          8               12    0    0
 11  MPG_Highway  12   double          8               12    0    0
 12       Weight  13   double          8               12    0    0
 13    Wheelbase  14   double          8               12    0    0
 14       Length  15   double          8               12    0    0

+ Elapsed: 0.0014s, user: 0.001s, mem: 0.7mb

アクションセットを読み込む

回帰分析のアクションセットを読み込みます。

conn.loadactionset('regression')

モデルを作る

モデルを定義します。ターゲットと入力値を指定します。

cars.glm(
    target = 'MSRP',
    inputs = ['MPG_City']
)

モデルを次のように定義して、プロパティをセットすることもできます。

linear1 = cars.Glm()
linear1.target = 'MSRP';
linear1.inputs = ['MPG_City']
linear1()

分布をグラフ化する

ではデータを可視化してみます。まず取得するデータの定義です。

result1 = conn.CASTable('cas.MSRPPrediction2', replace=True)
linear1.output.casout = result1
linear1.output.pred = 'Predicted_MSRP'
linear1.output.resid = 'Residual_MSRP'
linear1.output.lcl = 'LCL_MSRP'
linear1.output.ucl = 'UCL_MSRP'
linear1()

次に出力設定です。

from bokeh.charts import Scatter, output_file, show
out1 = result1.to_frame()
p = Scatter(out1, x='Residual_MSRP', y='Predicted_MSRP', color='Origin', marker='Origin')
output_file('scatter.html')
show(p)

結果として、以下のようなグラフが得られるはずです。

まとめ

データの分析、可視化は大変そうに感じますがSAS Viyaを使うことでストレスなく素早く可視化まで行えます。SAS for Developers | SASからデモアカウントを作れますので、ぜひお試しください。