Rによるデータ分析

Rによるデータ分析について

Rによるデータ分析 は、 環境と品質のためのデータサイエンス からのスピンアウトとして作ったものです。 Excelによるデータ分析Pythonによるデータ分析 の姉妹版です。

作った動機は2つあります。

1つ目ですが、 環境と品質のためのデータサイエンス は、手法の勉強用に作られたものなので、 Rの実施例があったりもしますが、日常的に使うツールとしては、とても使いにくいものです。 必要なコードが散在していて、書いてあっても、どこにあるのかがわかりにくいです。 これを解消して、Rを使いやすくする必要がありました。

2つ目として、業務の片手間でデータ分析が必要な人にも、Rを使えるものにしたいと思いました。 Rには、Excelや、既存の統計ソフトでは到達できないアウトプットに、あっという間に到達できてしまうという、魅力があります。

Rは、業務の片手間でデータ分析が必要な人が使うツールとしては、とても敷居が高いです。 本業に影響しないように使えるようになるには、 相当な時間がかかりますが、それが苦にならない人や、その時間が確保できる人でないと、その敷居が越えられないです。

サンプルコードの編集方針

実戦用のコード

このサイトの内容は、実戦向きです。 「主成分分析と多次元尺度構成法の合わせ技」などが、平気で出て来ます。 実戦では、個々の手法では手数が足りないことが多いのですが、世の中の解説は、個々の手法を個別に説明しているものばかりなので、 そのギャップを埋める意図もこのサイトにはあります。

個々の手法については、 環境と品質のためのデータサイエンス の説明を見ていただいても良いかもしれませんが、検索すれば、世の中の解説は相当な数があります。

探索的データ分析では、教師あり学習の手法は、あまり使わない

教師あり学習の手法( 回帰分析パターン認識 )は、とにかく当てはまりの良いモデルを作りたい時は便利です。

原因分析でも、結果を表す変数を教師データ(目的変数)にして、使いたくなる手法です。 しかし、これらの手法を使ってしまうと、用意したデータの持っているサンプリングの偏りや、変数のクセのようなものに結果が引きずられてしまい、 本来、見るべきものが見えなくなることがあります。 筆者自身は、これが原因となって、近道をしたつもりなのに、遠回りになった経験がけっこうあります。

そのため、探索的データ分析の手法は、見るべき部分が、手法によって狭められない手法にしています。

コピペで使えるコードにする

世の中のサンプルコードには、変数名を自分のデータに合わせて書き変える必要があるものがあります。 しかし、分析のスピードが重要になっているようなデータ分析では、手打ちは効率が悪いですし、間違いの元になりやすいです。 また、変数が多い時に、いちいち手入力するのは大変です。

そこで、サンプルコードは、できるだけ手打ちをしないで済むようにしています。

機械学習の手法にはユーザーがパラメタをいろいろ設定する必要があるものがありますが、 できるだけパラメタの設定がないものを選んでいます。 パラメタの設定があったとしても、デフォルトのままでも、けっこう使える手法を選んでいます。

サンプルコードの共通点

setwd("C:/Rtest")

入力のデータは、Cドライブの「Rtest」というフォルダに入っていることを想定しています。 それができるように、作業用ディレクトリを設定するようになっています。 この名前のフォルダを事前に作っておいて、分析したいファイルを置けば、サンプルコードは変更なしで使えます。

Data <- read.csv("Data.csv", header=T)

入力のデータは、csvファイルを想定しています。 Excelで用意する場合は、最初の列がA列になるようにして作る必要があります。 また、一番上の行は、変数名(列の名前)になっていることを想定しています。

「csvファイル」は、Excelで保存する時に、保存形式を選ぶと作ることができます。

Rのサンプルコードは世の中にたくさんありますが、「手入力のデータ」、「乱数のデータ」、「Rのサンプルデータ」を使っていることが多く、 自分の持っているデータに対して、 そのコードを応用したい時に、入力データをどうしたら良いのかがわからないことがあります。

このサイトでは、そういうことで悩む時間がないように、と思い、サンプルコードを作ってみました。

よくあるエラー

libraryの読み込み

Rのライブラリは、「library(・・・)」と毎回コードに書く必要があるものと、ないものがあります。

毎回コードに書く必要があるものについては、サンプルコードにも入れてあります。

また、Rでは、初期のインストール時に、基本的なライブラリは一緒にインストールされますが、 それ以外は、ユーザーが必要に応じて自分でインターネットからダウンロードして使うようになっています。

一度ダウンロードすれば、初期にインストールされているライブラリと同じようにして使い続けることができます。

サンプルコードは、毎回、必ず必要なコードにしてあるので、ダウンロードされている状態を前提にしています。 そのため、ダウンロードされていないライブラリがあると、エラーになります。

エラーが出たら、CRANからダウンロードしてください。 一度、ダウンロードすれば、次からはそのエラーが出なくなります。

変数の種類の自動選択

Rは、量的変数(数値型)、質的変数(文字型)を自動で判断して、処理します。 自分は量的変数のつもりでいても、1文字でも数値以外の文字が含まれていると、質的変数として扱われてしまい、 思ったような分析ができないことがあります。

「X1、X2」という変数名

 Rの出力として、列名のない行列データが作られることがあります。 そのデータに対して、「transform」という処理をすると、列名のない部分に「X1、X2・・・」という列名が自動的に与えられます。

「transoform」は、行列データを合体させる処理なのですが、合体する相手に「X1、X2」という列名が入っていると、 列名がダブってしまうので、合体する相手の「X1、X2」という列名が違うものに変えられてしまいます。 混乱の元になるので、「X1、X2」という列名はあまり使わない方が良いです。 例えば、「X01、X02」ならこの問題は起きません。



データサイエンス教室