Edited at

SAS Viyaで回帰分析モデルを試す(その2:条件を指定する)

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


データのアップロード

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

https://raw.githubusercontent.com/sassoftware/sas-viya-programming/master/data/cars.csv

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


SAS Viyaへの接続

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

cashost='localhost'

casport=5570
useremail='dev@sas.com'
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()


取得するデータに条件を付ける

条件の付与ですが、以下のように query メソッドを使って行います。

result1[['Predicted_MSRP', 'MSRP', 'MPG_City', 'Make', 'Model']].query('Predicted_MSRP < 0').to_frame()

結果はこのようになります。

Selected Rows from Table CAS.MSRPPREDICTION2



Predicted_MSRP
MSRP
MPG_City
Make
Model




0
-12933.617000
20140.0
46.0
Honda
Civic Hybrid 4dr manual (gas/electric)


1
-37603.511169
19110.0
60.0
Honda
Insight 2dr (gas/electric)


2
-35841.375871
20510.0
59.0
Toyota
Prius 4dr (gas/electric)


可視化する

さらにこのデータをX/Y軸を指定して可視化します。

p = Scatter(out1, x='MPG_City', y='MSRP', color='Origin', marker='Origin')

output_file('scatter2.html')
show(p)

このような結果が得られるはずです。

Screenshot_ 2019-03-20 14.59.09.png


まとめ

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