SAS University Edition で散布図を描く

・Excelでも散布図は書けます

正直言うと、これまでの社会人生活でExcelで散布図を書いたことはありません。
以前、同じ会社のQC活動をやっていた人とか、品質管理を仕事にしていた人たちはよく使っていたので、目にする機会はありました。Excel の標準機能ですし、使えないことはありません。

試しに作ってみたのたのがこれです。ただ、手元にデータが無いので、ネットで見つけた数値をそのまま使いました。

SAS_sanpu_table

SAS_sanpu_fihure

それと知らなかったのですが、簡単に近似直線も引いてくれます。簡単に作ろうと
思えば、それほど手間ではありません。

SAS_sanpu_fihure2

・SAS University Edition で散布図を描く

散布図は SAS University Edition でも作成できます。
なお、ネットで調べると、散布図を書いただけでは解析したことにはならないそうです。散布図作成に利用した2つの系列のデータに関係性があるかどうかを判断し、関係があるならどれだけ密接かも加味し、2つの系列のデータの相関関係を導きだし、そのうえで、使った数値が使えるかどうかを判断するのだそうです。そして、使えると判断したら、その2つの系列のデータを基にした施策を行うのだそうです。

昔のQC活動とか品質管理の教育でもそんな話があったのでしょうが、それ以前に、現状把握と原因追求の考え方が重要と習ったので、こういうのは覚えてませんでした。

さて、SASでのプログラムの話です。
SAS には、統計で使う標準偏差のような数値を算出する機能があります。もちろん同じものはExcel でも標準で用意された関数で計算できます。まず、その数値を表で出します。そして続いて、散布図のグラフを描きます。

(1) CSV取り込み

Excel の表で準備した数値は、CSVファイルで取り込みます。
取り込み方法は、折れ線グラフや棒グラフで使ったものと同じです。


filename readin '/folders/myfolders/sample/SASで散布図を作成する.csv';
data enshuu;
	infile readin dlm=',' dsd firstobs=1 encoding="sjis" termstr=CRLF;
	input No e_x e_y;
	run;

filename でCSVファイルのファイル名を指定します。このとき、CSVファイル名には
倍角の漢字なども使用できます。
次に、data でデータセットを定義します。
infile は、ファイルからデリミタ「,」や1行目がコメントで、「SJIS」でエンコード
されており、改行コードが「CRLF」で、「”」で囲まれた「,」は文字の一部と扱うなどの
仕様で読み込みします。
また、input で指定した順で、数値として読み込みます。

(2) 表を描く

次に、標準偏差などの数値を表で表示します。
これには、「proc corr data=(データセット)」を使います。

proc corr data=enshuu;
	var e_x e_y;
	run;

データセットは、CSVファイルから読み込んだものを使い、3つのデータのうち、「var 」コマンドで「e_x」と「e_y」の2つのデータを使うよう指定しています。run は、表を描くための命令です。

(3) 散布図を描く

そして、散布図を描きます。
散布図を描く命令は、「proc sgplot data=(データセット)」です。

proc sgplot data=enshuu;
	scatter x=e_x y=e_y;
	xaxis min=10 max=30 label="X軸" grid;
	yaxis min=0 max=100 label="Y軸" grid;
	reg X=e_x y=e_y / clm cli ;
	run;

データセットは、CSVファイルから読み込んだものを使います。「scatter」が散布図を描く命令です。X軸の変数とY軸の変数を指定します。
xaxis と yaxis で、X軸とY軸の範囲や、ラベルを指定しています。ここでは、さらにX軸とY軸の両方でグリッドを使うように指定しています。
reg コマンドは回帰直線で近似線を引くコマンドです。回帰直線とは何か、というのはネットで調べてみてください。統計の基本みたいです。ここでは「/」以降にオプションとして、「clm cli」を指定しています。これは、信頼区間と予測区間をいっしょに表示するオプションです。
最後に、run でグラフを描きます。
なお、「proc 」で指定した表と散布図は同じ画面に表示されます。

SAS_sanpu_fihure3

とりあえず、ここまで。