Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@ViyaDev

SAS Viyaで回帰分析モデルを試す(その3:データを絞り込んで表示する)

More than 1 year has passed since last update.

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.where = 'MSRP < 100000 and MPG_City < 40'
result1 = conn.CASTable('cas.MSRPPrediction2')
result1.replace = True

そして回帰分析モデルを取得します。

linear1 = cars.Glm()
linear1.target = 'MSRP'
linear1.inputs = ['MPG_City']
linear1.output.casout = result1
linear1.output.copyVars = 'ALL'
linear1.output.pred = 'Predicted_MSRP'
linear1.output.resid = 'Presidual_MSRP'
linear1.output.lcl = 'LCL_MSRP'
linear1.output.ucl = 'UCL_MSRP'

同じようにクエリを指定する方法もあります。

linear1 = cars.query('MSRP < 100000 and MPG_City < 40').Glm()
out1 = result1.to_frame()

このデータ(out1)は以下のようになります(一部)。

Selected Rows from Table CAS.MSRPPREDICTION2

     Predicted_MSRP  Presidual_MSRP      LCL_MSRP      UCL_MSRP        Make  \
0      38099.925698    -1154.925698  12333.085214  63866.766182       Acura   
1      22780.447626     1039.552374  -3001.031835  48561.927088       Acura   
..              ...             ...           ...           ...         ...   
419    35911.428831     1648.571169  10152.411504  61670.446157       Volvo   
420    31534.435096     6195.564904   5781.150241  57287.719951       Volvo   

                                Model    Type  Origin DriveTrain     MSRP  \
0                                 MDX     SUV    Asia        All  36945.0   
1                      RSX Type S 2dr   Sedan    Asia      Front  23820.0   
..                                ...     ...     ...        ...      ...   
419                         S60 R 4dr   Sedan  Europe        All  37560.0   
420                       S80 2.9 4dr   Sedan  Europe      Front  37730.0   

     Invoice  EngineSize  Cylinders  Horsepower  MPG_City  MPG_Highway  \
0    33337.0         3.5        6.0       265.0      17.0         23.0   
1    21761.0         2.0        4.0       200.0      24.0         31.0   
..       ...         ...        ...         ...       ...          ...   
419  35382.0         2.5        5.0       300.0      18.0         25.0   
420  35542.0         2.9        6.0       208.0      20.0         28.0   

     Weight  Wheelbase  Length  
0    4451.0      106.0   189.0  
1    2778.0      101.0   172.0  
..      ...        ...     ...  
419  3571.0      107.0   181.0  
420  3576.0      110.0   190.0  

[421 rows x 19 columns]

可視化する

さらにこのモデルを可視化します。

p = Scatter(out1, x='Predicted_MSRP', y='Presidual_MSRP', color='Origin', marker='Origin')
output_file('scatter3.html')
show(p)

以下のようなグラフが出力されるはずです。

Screenshot_ 2019-03-20 15.07.04.png

まとめ

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

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?