2016/07/24 2018/06/16
R言語の入門者~中級者向けのページです。R言語の使い方を手とり足とり教えます!Rに初めて触れる方でも、分かりやすい構成にしてあります。また、Rによる代表的な統計解析を自作関数例を交えて紹介しています。リンクをクリックすると、各説明ページ(別ページ)に飛びます。
※当サイトでは、”R言語”を、省略して”R”と記述することもあります。
※当サイトで紹介しているプログラムはRでコピーアンドペーストすることで、実行が可能ですが、macのRの場合、書体(形式?)の問題でエラーすることがあるようです。その場合は、貼り付け時にcommand+alt+Vとすることで解消する場合があります。お困りの方はお試しください。ご迷惑おかけして申し訳ございません。
Contents
これからR言語の勉強をしたいと考えている方、もしくは今すぐにでもRを使って解析をしたいと考えている方に向けたページです。R言語の初心者や中級者が書籍に頼ることなく、Rを使った解析が学べるような構成にしています。
当ページは、「プログラミングも初心者です」という人も読んで分かるようにしてあります。Rプログラミングで出来ることは本当に沢山ありますが、その中でも特に入門用に厳選して構成しました。多くの方が当ページでR言語入門を果たしていただければ幸いです。
完全な初心者の方は、初心者向けコーナーがありますのでそちらから始めることをお勧めします。→初心者向け【第1回】ベクトル・行列の作成と四則演算・要素の参照
また、代表的な解析については、解析→必要なパラメーターを抽出→エクセルファイルへの書き出しの一連の流れを自作関数として作りました。解析をお急ぎの方は、こちらのプログラムを参考にしながら少し書き換えるだけで自分のやりたい解析ができるはずです。
当サイトに掲載されている、プログラムのコードは自由に使っていただいて構いません。是非、ご自分の解析にお役立てください。(無断転載するときは、該当ページへのリンクも一緒に掲載をお願いいたします。)
R言語とは、オープンソースのフリーソフトウェアであり、プログラミング言語の一種です。そして、統計的なデータ解析・データ分析に特化したスクリプト言語です。フリーソフトなので、誰でもタダで利用できますし、オープンソースという特徴を活かして現在も改良され続けられています。R言語のソースコードは主にC言語などによって出来ています。
統計解析用の言語なので、ほかのプログラミング言語のように汎用性は有りません。代わりに、統計解析に関しては抜群に簡単なプログラムで行えます。良く似た言語として、Pythonが挙げられますが、統計解析力はR言語の方が上だと言われることもあります。Rでは統計解析のための、様々なライブラリ(パッケージ)や関数が元々用意されていています。これらのライブラリはR言語が人気を高めるに連れて、SPSSやGreenplum、Exadataからも呼び出せるようになりました。
さらに、データの操作に対しても非常に柔軟性があり、ほぼ自由自在にデータを処理することが可能です。Rで使える便利なコマンド、いわゆる、”技”というものはたくさんあり、覚えれば覚えるほどRをより便利なツールとして使いこなすことができるでしょう。統計学の予備知識がない人でも短期間の学習で、ある程度は使いこなせるようになるところも魅力の一つです。
R言語は、統計学や機械学習がビジネスや医療の面でその役割を強めていくに従って、ますます重要性が高まってきている言語です。世界中のデータサイエンティストが競い合うデータ解析コンペ、KaggleはR言語かPythonでの参加を求めています。
また、Rユーザーの数も年々増えていて、TIOBEによると、人気のプログラミング言語で、昨年の19位から大幅にランキングを上昇させて、2017年11月時点で11位にランクインしています。
R言語の実行環境がまだインストールできていない方は、ご利用のOSに合わせたRをインストールしてください。
Rでベクトルと呼ばれるリストの扱い方や、行列の操作の基礎を解説しています。基本的な計算や、演算子の使い方、行列の列ごとの参照・行ごとの参照は、ここでマスターしましょう。
Rではデータフレーム型(行列に似ている)という形式でデータの操作をします。csvファイルやテキストファイルをデータフレーム型として、Rに読み込み、各種の操作する方法について解説しています。
おまけとして、R言語でよく使う便利なコマンド(関数)をまとめておきました。今すぐ覚える必要はありませんが、よく使うので必要に応じて読むようにしてください。また、第3回以降で使っているコマンドとその使い方も載せてあります。
いよいよ解析に入ります。仮想の統計データを用いて、回帰分析による統計処理を行います。R言語では解析の処理関数が、もともと用意されているのがほとんどです。回帰分析も既存の関数"lm()"を使えばいいだけです。ということで、"lm()"使い方を紹介しています。また、p値やt値、信頼区間など解析結果の細かい参照の仕方もここで紹介しています。単回帰・重回帰共にここで紹介しています。
ここでは、関数定義と関数呼び出しの方法を解説しています。Rでも他のプログラミング言語と同様に、関数名を自分で指定した自作関数を作れます。自作関数を使うことで、よりすっきりとした分かりやすいプログラムになる上に、よく使うものは関数として作っておくことで、プログラムを組まなくてもすぐに使えて非常に便利です。是非、使い方を覚えておきましょう。
Rでは、R上でグラフを作成することも出来ます。データフレームのグラフ化したい部位をグラフにプロットする方法を紹介しています。また、回帰分析の結果の回帰直線を引く方法、さらには、それをR上だけではなく、画像ファイルとして保存する方法まで解説しています。
Rには便利なパッケージ(ライブラリ)がたくさんありますが、全てがそのまま使えるわけではなく、手動のインストールを必要とするものもあります。ここでは、その方法を紹介していきます。使いたいパッケージを、自分でインストールできるようになりましょう。
コピーアンドペーストして、1行ごとに実行することで、1~6回の復習ができるプログラムを載せてあります。また、入門をお急ぎの初心者の方にも最適です。
R言語では、ほとんどの確率分布のグラフや、ヒストグラム、箱ひげ図などを簡単に描画することができます。ここでは、Rによる、グラフや図の描画の一部をご紹介いたします。
回帰分析から、回帰係数やp値やt値などの、各種結果をcsvファイルに出力するまでの一連の流れを行ってくれる、自作関数を掲載しています。是非お役立てください。
目的変数が2値データである場合に使う回帰分析、ロジスティック回帰分析の方法を解説しています。また、こちらもcsvファイルへの出力まで行う自作関数も掲載しています。
Rのsurvivalというパッケージには、条件付きロジスティック回帰分析を行うための関数clogit()が含まれています。この関数の使い方と、解析からcsvファイルへの出力までを行う自作関数を、掲載しています。
Rで相関係数を求めるR用の関数"cor()"の使い方を紹介しています。(ピアソン・スピアマン)また、相関係数に関する検定を行う関数、cor.test()の使い方もここで紹介しています。一度に多量の相関係数とそれに関する検定を行なってp値を出力する自作関数も用意したので、お役立てください。
R言語を使って、t検定を行う方法を解説しています。t検定には様々な種類が有り、等分散仮定、不等分散仮定、ウェルチの検定、ウィルコクソン検定など、幅広く紹介しています。また、結果の見方についての解説もここで行っています。最後に、結果の出力までを行う、そのまま使える自作関数も用意しています。
Rでカイ二乗検定を行うための関数chisq.test()の使い方を紹介しています。また、2列のデータに対して、独立性のカイ二乗検定を行なって、結果をcsvファイルに出力する自作関数を作成しました。ぜひお役立てください。
データ数が少ない場合、カイ二乗検定によるカイ二乗分布近似は、不正確になります。そのときには、フィッシャーの正確確率検定を使います。こちらも、解析結果までの出力を行う、自作関数を作成しましたので、お使いいただければと思います。
散布図をプロットして画像ファイルとして保存する自作関数です。2列のデータを入れることで、データの列名に応じて自動的にファイル名を決定して、出力します。for文と組み合わせて使うことで、一度にたくさんの散布図を出力して見比べることが可能です。
重回帰分析の説明変数の選択には様々な手法が有りますが、ステップワイズの変数選択法はそのうちの一つです。ここではステップワイズの変数選択法を、行う自作関数を載せています。
解析だけでなく、単にデータを集計(最大値、最頻値、25%点など)するだけでもR言語は便利なコマンド(関数)がたくさんあります。データ集計に使えるコマンドをまとめました。また、実際に集計に使える自作関数も用意しました。
R言語では試行をシミュレーションするための関数sampleが用意されています。それの使い方をコインとサイコロを例に説明した後、サイコロの和のシミュレーション結果を棒グラフ化しています。一般的にそれは正規分布に近い形になることは知られていますが、それについて検証しています。
ROC曲線によるカットオフの決め方はざまざまな手法がありますが、ここではYouden IndexによるカットオフをR言語でどのようにプルグラムするか、簡単に載せています。データがあれば、そのまま使えるように自作関数の形にしました。
回帰分析を、回帰係数の信頼区間は自動で計算されます。ここでは、重相関係数の信頼区間も出力する方法について紹介しています。
ベクトルに要素を追加するときはc(追加元のベクトル,追加したい要素)で追加できますが、追加元のベクトルにその要素が無ければ、追加して、あれば追加しない、という関数を作りました。
Mac版のRで、マルチバイトな文字があります。というエラーが出てcsvファイルの読みこみや書き出しが出来ないと言うことがあります。これは、オプションに fileEncoding="CP932" と指定することで解決することがあります。
Rでは、同じプログラムや関数で、同じデータを分析しても解析結果が変わることがあります。それは、解析用の関数の中で乱数を用いている部分があるからです。その解決方法はset.seed(125)などとして、シード値を固定することで使用する乱数を固定することです。
当サイトは、初心者により分かりやすい解説を目指して随時改善をしてまいります。もし、何かご不明点・質問等ございましたら、info@to-kei.netこちらのアドレスまでご連絡ください。