2016年8月29日月曜日

SPSS Modelerで重回帰分析をやってみた。

 今回は、SPSS Modelerで「重回帰分析」の練習をしてみます。
名前は重いですが、Modelerなら軽くサクっと出来ちゃいます。

・今回作業の概要:
 -R言語にも付属している「airquality」データセットで重回帰分析を実施。

最終的なアウトプットはこんな感じ


・データセットについて:
 -1973年5月から9月までにおけるニューヨークの毎日の大気品質に関する測定データ。
 -153レコード、6フィールド。
 -欠損値(NA)含む。
 -ダウンロードはこちら

・実施環境:
  -OS:Windows 7
  -IBM SPSS Modeler 18 Premium

 ※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。  

慣れたら10分で出来ちゃうかも。


1.データセットの読み込み
「入力」パレットにある「EXCEL」ノードから先ほどの「airquality」データセットを読み込ませてください。
自分はxlsx形式で保存しましたが、CSVでも「可変長ファイル」ノードで読み込み可能です。


こちら、「プレビュー」ボタンでデータ内容を確認すると、ユーザー欠損値として「NA」が記載されていることがわかります。


2.「置換」ノードの配置
「フィールド設定」パレットから「置換」ノードを配置してください。

・対象フィールド:全フィールドを入れてください。
・条件:@FIELD == "NA" (「対象フィールドで選択した各フィールドにおいてNAがあった場合」の意味)
・置換後:undef (「SPSS Modelerの欠損値である「$null$」に置き換える」の意味)


3.「フィールド作成」ノードの配置
「Ozone」と「Soloar.R」フィールドが「カテゴリ」になっています。下記のように設定してください。
CLEM式は式ビルダーを使用しても手入力でもOKです。

・フィールドリスト:当該フィールドを選択
・CLEM式:to_real(@FIELD)   (「@FIELDで指定したフィールドを実数に変換する」の意味)


4.「フィルター」ノードを配置
前述の「フィールド作成ノード」で変換する前のフィールドは不要なので、「フィルター」列の矢印をクリックして以降のストリームに流れないようにします。


5.「データ型」ノードの配置
「データ型」ノードを開き、「Ozone」と「Soloar.R」 の尺度を「連続型」に変更します。


6.「線型回帰」ノードを配置
ここからが本番です。「モデル作成」パレットから「線型回帰」ノードを配置してください。
今回は「Ozone」の値を予測する重回帰モデルを作ります。

「フィールド」タブでは下記のように設定してください。
・対象:Ozone
・入力:Wind、Temp、Solor.R


「モデル」タブにある「方法」では、「ステップワイズ法」を選択してください。

ざっくり書くと下記の通りですが、ステップワイズ法の方が便利ですね。

・強制投入法:入力欄で指定した説明変数を全て使用する方法
・ステップワイズ法…SPSSが自動的に有意な説明変数を増やす方法


「エキスパート」タブでは、「モード」を「エキスパート」に選択し、下記ダイアログのようにオプションを選択してください。


このあと、「実行」ボタンを押してください。ストリーム上にナゲット(金色の菱形オブジェクト)が配置されます。

7.ナゲットを開く
「モデル」タブを見ると、「予測変数の重要度」グラフが表示されます。あら、Tempが思ったよりも高いですね。


「要約」タブの「精度分析」では、本モデルにおける各変数の影響度を見ることができます。

<モデル式>
$E-Ozone(予測値)=Wind * -3.334 + Temp * 1.652 + Solar.R * 0.05982 - 64.34



「記述統計」表です。
Pearsonの相関で、「Temp」と「Ozone」の相関係数が「0.699」。
この値が「0.8」を超えると、ワカチコ♪ワカチコ♪
・・・じゃなくって、マルチコ~多重共線性の可能性が高いので、選択する説明変数を再考した方がよいです。
そういえば、「予測変数の重要度」で「Temp」がちょっと高過ぎかなぁと思ったのも納得です。


続いては「モデルの要約」表。
最終モデルの「モデル3」における「調整済みR2乗」が「0.595」なので、とても良いと言うほどでもないですが、そこそこのモデルと言えそうです。
(1.0に近いほど良いモデルと言えます。逆に「赤池情報基準」は低いほど良いです)


「分散分析」表の「モデル3」における「有意確率:0.000」なので有意と言えます(使えるモデルと言うこと)


「係数」表。
「モデル3」における「T値」の絶対値がいずれも2.0以上、有意確率が0.05以下なのでモデル式に入れても大丈夫そうです。
また、多重共線性を見るVIFも10以下なのでこのままで良さそうですね。


最後に「残差の統計量」。
標準偏差と残差の値が極端に離れていないのと、残差の標準偏差が予測値の標準偏差よりも小さい点を確認してください。


以上です。
次回は、この重回帰モデルで作ったSPSS Modelerのストリームファイルを使って、Bluemixの「Predictive Analytics」に投入して遊んでみます。

その他:SPSS Modeler関連エントリー


(無料)Watson StudioでSPSS Modeler flowの決定木を動かす

(Watson)Personality InsightsのJSONをR言語でパースしてみた

Watson Studioの「Data Refinery」機能で「馬の疝痛(せんつう)」データを眺めてみた。

SPSS Modelerでアソシエーション分析がしたいっ! (前処理編〜縦持ちを横持ちへ)
http://sapporomkt.blogspot.jp/2017/06/spss-modeler.html


SPSS Modelerでクラスター分析をやってみた(K-Means)
http://sapporomkt.blogspot.jp/2016/08/spss-modelerk-means.html

SPSS ModelerからStatistics用ファイルを出力する方法
 http://sapporomkt.blogspot.jp/2016/08/spss-modelerstatistics.html

(SPSS Modeler)馬の疝痛データを誰でもカンタン決定木♪
http://sapporomkt.blogspot.jp/2016/07/spss-modeler.html

「SPSS Modeler Text Analytics」によるテキストマイニング(データ読み込みからグラフ化)
 http://sapporomkt.blogspot.jp/2016/07/spss-modeler-text-analytics.html

「SPSS Modeler」におけるデータ操作及びシーケンスデータの取り扱いまとめ
http://sapporomkt.blogspot.jp/1970/01/spss-modeler_1.html

SPSS Modelerでリーディングサイアーデータ分析:前処理(レコード追加等)
http://sapporomkt.blogspot.jp/2016/05/spss-modeler.html

SPSS Modelerで「サイアー/ブルードメアサイアー」データをレコード結合
http://sapporomkt.blogspot.jp/2016/05/spss-modeler_13.htm

2016年8月13日土曜日

噂どおりのコスパ最高店だった!「でりかおんどる 新大久保本店」

先日、家族で新大久保にある「でりかおんどる 新大久保本店」に行ってきました。
嫁さんは韓国出身でソウルっ子。当然、韓国料理には一家言あるわけですが、そんな嫁さんが訪問前にこんな感じだったのです。

・「でりかおんどる」はゼッタイ行くべき!
・韓国人でも美味しいと思える味なのよ!
・しかもボリュームたっぷり!
・そのくせ、値段も結構やすいのよ!
・あのね、カキ氷も安くて美味しいんだって!
・・・あとね、あとね・・・

こりゃ、行くしかないなと(笑)

お店の様子から料理まで


「でりかおんどる」2号店と比べると、本店の場所はややわかりにくいかも。
JR新大久保駅を東口で降りて、大久保通りを5分ほど歩くと2号店の看板が見えるので、それを目印にしてください。




こちらを右折(郵便配達の車)の方に1~2分歩くと本店に到着です。


この日はお昼11:00頃に来店したのですが、「さすがに早いだろ・・・」と思っていたところ、1Fは既に満席で2階へ案内されました。祝日とはいえ、ちょっとビックリ。

店内はご覧のとおり清潔感があってオシャレな感じ。見た目は空いているようですが、30分後には満席ですからね。



こちら、同店ご自慢のおかずたち。なんと、都内の韓国料理屋としては珍しい「お代わり自由」!
味もキムチ含めて韓国人の嫁も大満足のクオリティーでした。


おまちかねの料理。ランチメニューは1,020円(税込み)。日替わりランチだと800円ぐらいで食べられますが、味・ボリュームを考えると結構おトクな感じがします。


こちらは「サムゲタン」。すいません、美味しすぎて食べてから撮影しちゃいました(笑)


こちら、韓国式のカキ氷「パッピンス」。なんとこれ、480円ですよ!
家族3人でシェアしましたが、ご飯でお腹いっぱいになったこともあり、家族3人でシェアしてちょうどよい感じでした。


この他、冷麺を注文して家族3人で3,500円程度で済みました。
普段体験できない「韓国っぽい感じ」も楽しめて、お腹いっぱい美味しい料理が食べられてこのお値段。とってもリーズナブルだと思いませんか?^^

店舗情報など


店名:でりかおんどる 新大久保本店
住所:東京都新宿区百人町1-3-20 エスケイビル
電話:03-3205-5679
営業時間:
 Open 10:00~25:00 (年中無休)
 Lunch: 10:00~16:00
 Dinner: 16:00~25:00

2016年8月12日金曜日

森美術館「宇宙と芸術展」、けっこう、楽し馴染みやすかったです。

先日、六本木の森美術館で開催されている「宇宙と芸術展」に行ってきました。
訪問前は「こういうアートなものって馴染めるかなぁ」と思うところもあったのですが、実際見るとかなり楽しかったです。
古代に生きていた人々の宇宙観を記した地図なんて、芸術というより「貴重な歴史展示物」で、そっち方向が好きな方にもオススメです。

展示作品のご紹介


こちらの展示物、高名な方々の作品も多いのですが、一部作品は写真撮影OKなのも魅力的です。
(撮影はNGですが、岡吉国宗の「流星刀」ありますっ!)

今回は、撮影OKな作品の一部をご紹介します。

まず、入館前に当展示会のメインビジュアルでもあるスペースシャトルの巨大ポスター。
写真撮影は出来ませんが、もちろん、館内に展示されていました。かっこよかった!


あと、こちらも入口付近に衛星が展示されています。宇宙好きにはたまりませぬ。


とっても宇宙的な作品。写真で見るよりインパクトがあるので、皆さん立ち止まってじっと見ていました。


結構、尖った作風が多い中、こういうタイプの作品もほっとして好きです。



これ、グイングイン動きます。一部屋占有するぐらいの大きさなので、とても迫力があるのですが、整然とした動きで何故か心休まりました。


他にも写真撮影OKな作品満載ですが、続きは現地で是非ご覧くださいっ!

開催情報など


「宇宙と芸術展」~かぐや姫、ダ・ヴィンチ、チームラボ
・開催日程:2016年7月30日(土)~2017年1月9日(月・祝)
・開館時間:10:00-22:00(火曜は17:00まで)
・場所:六本木ヒルズ森美術館
・入場料金
 一般 1,600円
 学生(高校・大学生) 1,100円
 子供(4歳-中学生) 600円
 ※表示料金に消費税込
 ※展望台 東京シティビュー、屋上スカイデッキ、森アーツセンターギャラリーへは別途料金がかかります。
公式ホームページはこちら

2016年8月10日水曜日

SPSS Modelerでクラスター分析をやってみた(K-Means)

 過去、当ブログではSPSS Modelerに関するエントリーを何度か記載していますが、そろそろ高度な分析もやってみたくなってきました。
とはいえ、SPSS Modelerが高機能なので、「内容は高度でもオペレーションはとってもカンタン」はいつもどおりの展開です。

最終的にはこんなアウトプットを作ってみます。


 ※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。  

ちょっとだけ「クラスター分析」のおさらい。


 専門的な解説は他にもたくさんのエントリーがあるので、ご興味があればGoogleなどで検索してください。今回は「SPSS Modeler操作方法のご紹介」なので、基礎用語の解説レベルに留めます。

●クラスタリング(clustering)
データ解析手法のひとつで、与えられたデータを外的基準なしに、データ内に存在するグループを見つけ出し分類する手法です。「教師なしセグメンテーション(※)」といった呼び方もされます。

※:逆に、外的基準があるものを「教師ありセグメンテーション」と呼びます。
  調査対象における目的変数の特徴に着目し、目的変数の値が異なるグループを見つけ出す方法です。


● 階層的クラスタリング
 データが階層的に分類される手法です。下記のような「デンドログラム(樹形図)」、見たことありますよね? ちなみに、これ、「生命の樹」と言われる図で、地球上にいる生物のRNA配列から作ったんですって!なんかわからないけど、とりあえず、すごいっ!


●非階層的クラスタリング
 特定のクラスタ数に分類される手法です。それぞれのクラスタの中心点(セントロイド)として分類を表現します。

今回は、セントロイドを用いる手法として最も有名なアルゴリズムである「k平均法(K-Means)」を用いたクラスタリングをSPSS Modelerで実施してみます。


●K-Meansクラスター(k-means clustering) ←本日のネタです。
データ内のクラスターを「k平均法(K-Means)」によって分類する手法で、比較的高速にクラスタリングできることが特徴です。「k」はデータから見つけ出したいクラスタの数を表しており、分析者が自由に設定することが出来る点が階層的クラスタリングとは異なります。

手順のご紹介


もう前置きだけで飽きちゃいましたよね。僕もです(笑)。
今回は、下記データセットを利用しました。事前にCSVデータをダウンロードしてください。

1991年時における世界48都市の経済状態を記録したデータ
http://mo161.soci.ous.ac.jp/@d/DoDStat/cityecon/cityecon_dataJ.xml


なお、今回の作業環境は下記のとおりです。
・OS:Windows7
・SPSS Modeler 18 Premium


1. 「可変長ファイル」ノードを配置
「入力」パレットから「可変長ファイル」ノードを配置するか、上記でダウンロードしたCSVファイルを直接ストリームにドラッグ&ドロップしてください。

下記は「可変長ファイル」ノードを開いた直後の画面ですが、デフォルト設定のままで大丈夫です。


2.「データ検査」ノードを配置
「出力」パレットから「データ検査」ノードを配置して、データ内容をご確認ください。フィールド列を見ると「Work」と「Salary」が文字ストレージになっていますね。


3.「フィールド作成」ノードを配置
先ほど配置した「可変長ファイル」ノードに「フィールド作成」ノードをつなげてください。
その「フィールド作成」ノードを開き、「フィールドリスト」で「Work」と「Salary」を選択し、 式ビルダーで下記のように入力してください。




過去、ご紹介していますが、改めて関数の意味をおさらいです。
@FIELD関数:
CLEM式が複数のフィールドに適用される場合、@FIELDは順番に各フィールドを表します。

to_integer(ITEM)関数:
ITEMを整数に変換します。ITEMは文字列または数字でなければなりません。

今回は、「フィールドリスト」で選択した「Work」と「Salary」を「@FIELD」関数で複数指定して、「to_integer」関数でこの二つの変数を整数に変換してね という意味になります。

4.「フィルター」ノードを配置
先ほど追加したフィールド名を変更したうえで、変更前のフィールドはフィルターでデータの読み込みを止めておきます。


5.「K-Means」ノードを実行
配置した「K-Means」ノードを開き、内容をご確認ください。今回作成するクラスター数はデフォルト値のまま「5」でいきますが、変更も可能です。



なお、余談ですが、「K-Means」ではクラスター間の距離を計算する際に「ユークリッド距離」 を使用します。その際、各フィールド間の値や標準偏差が大きく異なっていると正しい分類が出来ない可能性があります。SPSS ModelerではK-Meansを実行する前に各フィールドのデータを標準化するため、その心配はありません。

6.「K-Means」ナゲットを開く
まず「要約」タブを開いてクラスター作成における反復が何回目で停止されたのかご確認ください。


「モデル」タブはこんな感じです。「クラスター3」が一番少なく8.3%となっています。


上記画面の左下にある「ビュー」を「クラスター」に切り替えると、「クラスタービューア」が表示されます。1991年時点でのデータとなりますが、「クラスター3」は「給料は高いが、物価も高く、やや長時間勤務」といった特徴があるようです。


7.「テーブル」ノードを配置
生成された「K-Means」ナゲットに「テーブル」ノードを配置してデータ内容を確認すると、右列にクラスター名が追加されていることがわかります。「Tokyo」は「クラスター3」だったことがわかります。


8.「グラフ」ノードの配置
あとはお好みでグラフ化してお楽しみください。



「K-Meansノードにおける欠損値」について(2016/8/26 追記)
<空白の場合>
・「連続型」または「フラグ型」の欠損値→「0.5」が代入される
・「名義型」の欠損値→「0.0」が代入される

代入の自動実行をしたくない場合は、欠損値の多いフィールドやレコードを前もって除外してください。

その他:SPSS Modeler関連エントリー


(無料)Watson StudioでSPSS Modeler flowの決定木を動かす

(Watson)Personality InsightsのJSONをR言語でパースしてみた

Watson Studioの「Data Refinery」機能で「馬の疝痛(せんつう)」データを眺めてみた。

SPSS Modelerでアソシエーション分析がしたいっ! (前処理編〜縦持ちを横持ちへ)
http://sapporomkt.blogspot.jp/2017/06/spss-modeler.html


SPSS ModelerからStatistics用ファイルを出力する方法
 http://sapporomkt.blogspot.jp/2016/08/spss-modelerstatistics.html

(SPSS Modeler)馬の疝痛データを誰でもカンタン決定木♪
http://sapporomkt.blogspot.jp/2016/07/spss-modeler.html

「SPSS Modeler Text Analytics」によるテキストマイニング(データ読み込みからグラフ化)
 http://sapporomkt.blogspot.jp/2016/07/spss-modeler-text-analytics.html

「SPSS Modeler」におけるデータ操作及びシーケンスデータの取り扱いまとめ
http://sapporomkt.blogspot.jp/1970/01/spss-modeler_1.html

SPSS Modelerでリーディングサイアーデータ分析:前処理(レコード追加等)
http://sapporomkt.blogspot.jp/2016/05/spss-modeler.html

SPSS Modelerで「サイアー/ブルードメアサイアー」データをレコード結合
http://sapporomkt.blogspot.jp/2016/05/spss-modeler_13.htm

2016年8月5日金曜日

オンラインストレージ「Box」の導入手順をサクっと作ってみた。

オンラインストレージと言えば、日本では「Dropbox」や「Googleドライブ」等が有名ですが、「Box」もなかなか良いですよ。

<個人的に気に入ったポイント>
・セキュリティ設定がしっかりしている。
・無料。
・Watson Analyticsとの連携も出来ちゃう。

ただ、若干、残念なのは、「導入手順」的な情報がシンプルに纏まっているページが少なかったので、サクっと作ってみました。

 ※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。  


手順のご紹介


下記手順は2016年8月5日時点での仕様に基づいて記載しておりますので、変更点などありましたらお声がけ頂けると幸いです。

1.Box Personal用ページにアクセス
https://www.box.com/pricing/personal」にアクセスしてください。
最初は「Business Plans」が表示されるので、画面中央ボタンから「Personal Plans」を押してください。


2.日本語表示に切り替え
画面フッダー部分に言語切り替えボタンがあるので「Japanese」を選択してください。

3.「サインアップ」ボタン押下
「Personal」になっていることを確認した上で、「サインアップ」ボタンを押してください。


4.必要情報の記入
フルネームやメールアドレスなど、必要情報を記入してください。


5.確認メールの送信
先ほど入力したメールアドレスにBoxから確認メールが送信されますのでご確認ください。


6.「メールの確認」ボタン押下
先ほど入力したメールアドレスを管理するメーラー/Webメールサービスを開くと、下記のような確認メールが表示されるはずです。送信元等を確認の上、「メールの確認」ボタンを押してください。


7.Box利用用途の選択
前述の「メールを確認」ボタンを押すと、Box利用用途の選択を促す画面が表示されます。 「プライベート用」を選択してください。


8.他の人との共有
Boxサービスの利用を他の人にも勧める画面が表示されますが、今回は入力不要なため、画面下部に ある「これをスキップしてBoxに直接移動」のテキストリンクをクリックしてください。


9.Box機能紹介のダイアログ
Box機能紹介のダイアログが表示されますので、御興味のある方は「次へ」ボタンを押して内容をご覧 ください。不要の場合は、右上の「×」マークを押してください。


10.Boxアカウント準備の完了
下記のようなダイアログが表示されると、Boxアカウント準備の完了です。


11.Boxにログイン
Boxにログインすると、下記のような画面となり、ファイルの閲覧・アップロード/ダウンロードが可能と なります。


12.(ご参考)フォルダの作成や共有
新規作成からフォルダ作成を選択すると、下記ダイアログが表示されます。「Folder Name」に作成されたいフォルダ名を記入してください。
-Keep private for now:はプライベートフォルダ、
-Invite people to upload or download files:は他のBoxユーザーとのファイル共有モード

入力欄に、他のBoxユーザーのメールアドレスを記入してください。


13.(ご参考)フォルダにファイルをアップロードした直後の画面他のBoxユーザーと共有するフォルダにファイルをアップロードすると、下記のような画面になります。


14.ファイルのダウンロード最初に設定したBoxログインパスワードのセキュリティレベルが低い状態(文字数が少ない、文字の組み合わせ要件を満たしていない等)で「承認」ボタンを押すと、より複雑なパスワードにするよう変更を促されます。


15.Boxパスワードの変更(必要時のみ)「強力なパスワードにするには・・・」の条件を満たした新しいパスワードを入力し、「更新」ボタンを押してください。


16.ファイル/フォルダの操作前述の要件を満たしたパスワードでログインした状態になると、ファイル/フォルダに対する各操作が 可能となります。



以上です!