2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SPSS Modelerで相関行列を見たい R拡張ノード編

Last updated at Posted at 2020-04-23

SPSS Modelerで相関行列を見たいという話があり、以前以下の記事も書いています。

SPSS Modelerで相関行列を見たい - Qiita
https://qiita.com/kawada2017/items/a77f14bd0c4351d055a6

しかしながら、いずれも結果を加工したり、エクスポートしたりはできませんでした。
そこで今回は拡張ノードをつかってRで実装してみました。これにより結果を加工したり、エクスポートしたりということも可能になります。

Essentials for R のセットアップ

この方法は拡張ノードでRを利用しますので設定が必要です。設定が終わっていない方は以下を参考にしてください。

SPSS Modelerの拡張ノードでRを利用する - Qiita
https://qiita.com/kawada2017/items/0bb68e0b577e02bb8c6a

#拡張の変換ノードにRのコードを入力
以下のように拡張の変換ノードでR言語を選択し、Rシンタックスに以下のコードを入力します。

image.png

#相関行列取得
cormat =cor(modelerData)

modelerData<-cbind(data.frame(COLNM=rownames(cormat)),cormat)
#modelerData

#メタデータ設定
modelerDataModel<-data.frame(X1=c(fieldName='COLNAME',fieldLabel="",fieldStorage="string",fieldMeasure="",fieldFormat="",fieldRole=""))

for (x in colnames(cormat) ){
newVar <- c(fieldName=x,fieldLabel="",fieldStorage="real",fieldMeasure="",fieldFormat="",fieldRole="")
modelerDataModel <- cbind(modelerDataModel,newVar)
}
#modelerDataModel

これで相関行列を作りたい数値型の列のみの以下のようなデータをフィルターノードでつくって、この拡張変換ノードを通します。
image.png

すると以下のような相関行列が返ります。

image.png

変換ノードにしたのでエクスポートも可能です。

image.png

また、加工も可能です。例えば、以下のようなことを行えば相関係数が0.3以下のデータをNULLに置き換えます。

image.png

相関係数が0.3より大きいものを見つけやすくなります。
image.png

コード解説

簡単にコードも解説しておきます。

#相関行列取得
cormat =cor(modelerData)

上でこのノードに入るデータで相関行列を作っています。
ですので、文字列型のデータなどが混じっているとエラーになります。

modelerData<-cbind(data.frame(COLNM=rownames(cormat)),cormat)

上で、行名に入っている列名を一列目につけて返しています。以下の赤で囲った部分です。
image.png

#メタデータ設定
modelerDataModel<-data.frame(X1=c(fieldName='COLNAME',fieldLabel="",fieldStorage="string",fieldMeasure="",fieldFormat="",fieldRole=""))

上でこの列のメタデータを設定しています。以下の赤で囲った部分です。
image.png

for (x in colnames(cormat) ){
newVar <- c(fieldName=x,fieldLabel="",fieldStorage="real",fieldMeasure="",fieldFormat="",fieldRole="")
modelerDataModel <- cbind(modelerDataModel,newVar)
}

上で相関ととった列名のメタデータを設定しています。以下の赤で囲った部分です。
image.png

サンプルのストリームファイルは以下で公開しています。

テスト環境
Modeler18.2.1
Windows 10 64bit

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?