・Excelでも散布図は書けます
正直言うと、これまでの社会人生活でExcelで散布図を書いたことはありません。
以前、同じ会社のQC活動をやっていた人とか、品質管理を仕事にしていた人たちはよく使っていたので、目にする機会はありました。Excel の標準機能ですし、使えないことはありません。
試しに作ってみたのたのがこれです。ただ、手元にデータが無いので、ネットで見つけた数値をそのまま使いました。
それと知らなかったのですが、簡単に近似直線も引いてくれます。簡単に作ろうと
思えば、それほど手間ではありません。
・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 」で指定した表と散布図は同じ画面に表示されます。
とりあえず、ここまで。