LoginSignup
0
0

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-03-21

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

データのアップロード

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

そして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からデモアカウントを作れますので、ぜひお試しください。

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