SlideShare a Scribd company logo
1 of 63
Download to read offline
R 入門編
2016年4月16日
AITC女子:
第1回データ分析勉強会資料 1.00版
1
はじめに
 本資料作成に当たり私が所属している関東メトリクス・データ
分析勉強会のR関係資料を参考にしています。
https://sites.google.com/site/kantometrics/home
上記勉強会サイトに記載されている情報ならびに資料の内容を一部または全面的
に引用していますので、資料の著作権は部分的に上記勉強会サイトの作成者に
帰属します。
ただし、一部の画像等の著作権は原著作者が所有しています。
また、この資料の情報や資料を用いて行う一切の行為についていかなる責任も負い
ません。被った被害・損失に対してもいかなる場合でも一切の責任を負いません。
2
"R"とは?
 R言語の慣用的な呼び方
 統計解析向け言語・開発実行環境
 様々な統計解析を実行できるパッケージが存在
◦ 線形・非線型モデル
◦ 古典的統計検定
◦ 時系列解析
◦ クラスタリング等
 グラフィクスをサポートする様々なパッケージが存在
◦ Tcl/Tk (GUIスクリプティング環境)
◦ 高水準作図関数/低水準作図関数
 GNU General Public License(本体)
◦ パッケージには色々なライセンスがあるので商用使用は注
意を
3
"R"の特徴
 AT&T Bell Laboratoriesの開発したS言語に影響を受けているインタ
ラクティブ言語・開発実行環境
 特徴(Wikipediaより)
◦ ベクトル処理言語
◦ 統計に適した解析環境
 ベクトル、配列、行列、リスト、テーブル等の扱いが簡単
◦ 高速な組込関数群
◦ 高度なグラフィック機能
 インタプリタにしてはかなり高速・高度
◦ 様々なデータとの互換性
◦ CRANからの一元的配信
 The Comprehensive R Archive Network
CRANの読み方は「しーらん」派と「くらん」派でわかれるそうです。
 オープンソース、マルチプラットフォーム対応4
“R”の利用環境について
 Rを単体起動した”R Console”はCUIで初学者
が使用するのは熟練がいりそう
 利用者のタイプに合わせてRの利用環境を拡張する
のがおススメ
 Rのプログラミング知識より手っ取り早くデータを統計
的に分析したい方向け
R Commander が使いやすいです
 Rのプログラミングを本格的にやりたい
R Studio の使用がお勧めです
5
準備
 フォルダを用意してください。
演習を円滑に進めるためシンプルにローカルディスクの
直下に作ると解かり易いです
”C:¥R”
 配布したUSBメモリから
dataフォルダごとファイルをC:¥Rへコピーしてく
ださい。
“C:¥R¥data”
6
R + R Commaner
R言語プログラミングの知識が無
くてもできます
Rを使って簡単なデータ分析を
してみよう
7
Rを起動する
 Rの起動は管理者権限で実行する
マウス右クリック→
“管理者として実行“
8
Rcmdrを起動する
 Rcmdrを起動する
◦ [パッケージ]-[パッケーパッケージの読み込み
…]から起動する
 一覧から「Rcmdr」を選択して[OK]ボタンをクリックす
る
◦ コマンドで起動
 library(Rcmdr)
9
Rcmdrを起動する
 Rcmdrを再起動する
◦ 間違ってRcmdrを終了させてしまったら
 Commander()
 Rcmdrを解放する
◦ あんまり使うことはないと思いますが…
 detach("package:Rcmdr", unload=TRUE)
10
Rcmdrを起動する
11
Rcmdrのメニュー概説
 [データ]
◦ データセットを扱うためのメニュー
 [統計量]
◦ 統計量算出、検定、分析、モデル適合(回帰分
析)
 [グラフ]
◦ 各種グラフの描画
 [モデル]
◦ モデル適合結果に対する診断等
 [分布]
◦ 各種分布に基づく計算、描画
 [ツール]
◦ R/Rcmdr用のパッケージ選択、オプション設定12
Rcmdrのメニュー概説 [統計量]
 [要約] 各種統計量の算出、および、統計量に対する検定
 [分割表]分割表に対する検定
 [平均]平均値に対する検定
 [比率]比率に対する検定
 [分散]分散に対する検定
 [ノンパラメトリック検定]
◦ ノンパラメトリックな検定
 [次元解析]
◦ 主成分分析、因子分析、クラスタ分析等の多変量解析
 [モデルへの適合]
◦ 回帰分析関係
統計量とは?(Wikipedia)
要約統計量:標本の性質を表すもの
順序統計量:大小の順番で表すもの
検定統計量:検定に利用するための
これらを算出するのが[統計量]メニュー
青色のメニューは全て検定に関わるもの
13
Rcmdrのメニュー概説 [グラフ]
 [色パレット]
◦ 利用する色を変更する
 [インデックスプロット…]
 [ヒストグラム…]
 [密度推定…]
 [幹葉表示…]
 [箱ひげ図…]
 [QQプロット…]
----------
 [散布図…]
 [散布図行列…]
› [折れ線グラフ…]
› [条件付き散布図]
› [平均値のプロット…]
› [ドットチャート]
----------
› [棒グラフ…]
› [円グラフ…]
----------
› [3次元グラフ…]
› [グラフをファイルに保存]
14
R Commandrのサンプルデータを
使ってデータ分析
15
利用するデータセットについて
 データセット iris(Edgar Anderson's Iris Data)
◦ 別名:フィッシャーのあやめのデータ
 北米に生息する菖蒲の萼片と花弁に関するデータ
◦ データ項目はSepal(しーぱる)と
Petal(ぺたる)
 Sepal.Length : 萼片の長さ
 Sepal.Width : 萼片の幅
 Petal.Length : 花弁の長さ
 Petal.Width : 花弁の幅
 Species : 菖蒲の種類(品種)
 setosa
 versicolor
 virginica
出典:http://biostor.org/reference/11559
Sepal
Petal
16
データの読み込み
 Rcmdrでサンプルデータを読み込む
◦ [データ]-[パッケージ内のデータ]-[アタッチされたパッケージ
からデータセットを読み込む…]を実行する
◦ 「dataset」-「iris」を選択し[OK]ボタンを押下する
◦ または、[データセット名を入力]欄に「iris」と入力して
[OK]ボタンを押下する
◦ または
 data(iris)
17
データ全体を眺めてみる
 Rcmdrでデータが読み込まれたことを確認する
◦ Rcmdrの画面上部「データセット:」の部分に「iris」と表示されている
◦ [iris]ボタンでデータセットの
選択が可能(複数読み込んだ
場合)
◦ [データセットを表示]ボタンを
押下して左図のような「iris」
ウィンドウが表示される
18
グラフを眺めてみる
 [グラフ] ヒストグラム
データの分布傾向を確認するためによく利用さ
れます
[グラフ]-[ヒストグラム]を実行する
「Petal.Length」を選択し[OK]ボタンを押下する
19
グラフを眺めてみる
 [グラフ] ヒストグラム
 横軸
データをある一定の範囲ごと
に分けた各区間、階級
 縦軸
各区間に入るデータの個数、
度数、頻度
例)
左図のようなふた山型のヒス
トグラムになった場合、母集
団の異なるデータが混在して
いると考えられる
要因を突き止め層別をし、
ヒストグラムを作り直す必要
がある
20
グラフを眺めてみる
 [グラフ] ヒストグラム(層別)
母集団の異なるデータ混在の影響を層別してグラフ
化することで取り除く
[グラフ]-[ヒストグラム]を実行する
「Petal.Length」を選択し、[層別のプロット]ボタンを押下する
層別変数 [Species]を選んでOK押下する
21
グラフを眺めてみる
 [グラフ] ヒストグラム(層別)
層別=種類別に分け
てグラフからデータの傾
向を眺める
22
グラフを眺めてみる
 [グラフ] 箱ひげ図(boxplot)
◦ データの分布傾向(バラツキ)を確認するためによく
利用されます
23
箱ひげ図の見方
24
𝑚𝑎𝑥 最大値 (外れ値を除く)
上ヒンジ
第3四分位点
全データの最小値から75%点
median 中央値 (第2四分位点)
下ヒンジ 第1四分位点
全データの最小値から25%点
𝑚𝑖𝑛 最小値 (外れ値を除く)
𝑚𝑎𝑥
 四分位範囲(IQR)
𝐼𝑄𝑅 = 上ヒンジ − 下ヒンジ
データのばらつきを示す統計量。
 外れ値
上ヒンジ + 1.5 × 𝐼𝑄𝑅 より大きい値
下ヒンジ − 1.5 × 𝐼𝑄𝑅 より小さい値
箱から箱の大きさの1.5倍より
離れた値が外れ値となる。
𝑚𝑖𝑛
𝐼𝑄𝑅 𝑚𝑒𝑑𝑖𝑎𝑛
グラフを眺めてみる
 [グラフ] 箱ひげ図(層別)
【簡単な演習】
層別=種類別に分けてグラフからデータの
傾向を眺めて
「何がグラフから読み取れるか考えてみてく
ださい」
25
要約統計量を眺めてみる
 要約統計量=「データ全体の傾向」を数値で考
えたもの
 [統計量]
◦ [要約]
 [アクティブデータセット] summary()
 各データ項目に対する最小値、中央値、平均値、最大値、分
位値を表示します
 非数値のデータ項目(因子)に対しては、個々のデータ数を表
示します
26
要約統計量を眺めてみる
 要約統計量=「データ全体の傾向」を数値で考
えたもの
最小値→
第1四分位→
中央値→
平均値→
第3四分位→
最大値→
27
要約統計量を眺めてみる
 [統計量]
[要約]
 [数値による要約] numSummary()
 任意のデータ項目に対する平均値、標準偏差、平均の標準誤
差、分位範囲、変動係数、歪度、尖度の中から任意の項目を
表示します
28
中心位置を推測するための統計量
 平均
𝑥 =
𝑥1 + 𝑥2 + ⋯ + 𝑥 𝑛
𝑛
=
𝑖=1
𝑛
𝑥𝑖
𝑛
 メディアン (中央値) 𝑥
データを大きさの順に並べて
 データが奇数個ならば中央の値
 データが偶数個ならば中央の2つの値の平均値
 最頻値
データの中で最も頻繁に出現する値
後述するヒストグラムにおいて、棒状のグラフが最も高い (頻度の最
も多い) 区間の中心値
29
メディアン (中央値) や最頻値は異常値や外れ値の影響を
受けにくい。このような統計量はロバスト (頑健) であるといいます
さらにグラフを眺めてみる
 [グラフ] 散布図
2変数のデータの同士の関連性を確認するためによく利用されま
す
2種類のデータを横軸と縦軸に取り、データを点でプロットしたグラフで、
2種類のデータの相関を観察するために作成します
30
さらにグラフを眺めてみる
 [グラフ] 散布図
「Petal.Length」と「Petal.Width」を選択し[OK]
ボタンを押下する
31
さらにグラフを眺めてみる
 [グラフ] 散布図
32
さらにグラフを眺めてみる
 [グラフ] 散布図(層別)
【簡単な演習】
層別=種類別に分けてグラフからデータの
傾向を眺めて
「何がグラフから読み取れるか考えてみてく
ださい」
33
さらにグラフを眺めてみる
 [グラフ] 散布図行列
データの同士の関連性を確認するためによく利
用されます
34
さらにグラフを眺めてみる
 [グラフ] 散布図行列
「Petal.Length」,「Petal.Width」,
「Sepal.Length」,「Sepal.Width」を
選択し[OK]ボタンを押下する
35
さらにグラフを眺めてみる
 [グラフ] 散布図行列 散布図行列
このグラフの意味は、
多数の変数を組み
合わせて散布図にし
たものです。この散
布図行列を見れば
、どのデータの組み
合わせで「正の相関
・負の相関・相関な
し」のどれに該当する
のかを一目でざっくり
わかると思います。も
ちろんこれだけで何
か統計的な結論を
出せるわけではあり
ませんが、詳細な分
析をするデータを絞
り込む際に活用しま
す。
36
散布図に回帰直線を表示する
最小2乗直線(回帰直線)
このように2変量に強い相関関係がみられるとき、それ
をよくあらわす直線が存在します。その直線を「回帰直
線」といいます
オプションの最小2乗直
線をチェックする
グラフを表示してみてくださ
い
37
グラフと要約統計量を眺めて傾向
からデータの本来持つ性質につい
ての可能性(仮説)を考えてみる
グラフ 要約
統計量
仮説
38
R Commandrへ外部のデータを
使ってデータ分析
39
データ分析の基本
1. データから最初にグラフを書いてみる
ヒストグラム、箱ひげ図
2. 要約統計量を見てみる
これによってデータの全体的傾向をつかん
でみる
3. 傾向からデータの本来持つ性質について
の可能性(仮説)を考えてみる
40
利用するデータセットについて
 データセット sample01.xlsx
◦ 【仮想】婚活中独身男性紹介サイトMITCの200名分
データ
◦ データ項目は
 年齢 : 戸籍上年齢
 身長 : 背の高さ
 体重 : 体の重さ
 年収 : 1年間の税込所得額
 項目1:何か属性
41
データの読み込み
 Excelファイルを開いて、A~E桁、201行目までを選択してクリップ
ボードへコピーしてください。
 Rcmdrでクリップボードからデータを読み込む
◦ [データ]-[データのインポート]-[テキストファイルまたはクリップボード,
URLから…]を実行する
◦
42
データの読み込み
 ダイアログボックスの設定
◦ データセット名を入力 : Dataset01
◦ データファイルの場所:クリップボード
◦ フィールド区切り文字:タブ
◦
43
データの読み込み
 [ OK ] でクリップボードのデータが読み込まれます。
◦
データセットを表示するで
内容を確認する
データセットがDataset01
を確認する
44
データ分析の基本をやってみよう
1. データから最初にグラフを書いてみる
ヒストグラム、箱ひげ図
2. 要約統計量を見てみる
これによってデータの全体的傾向をつかん
でみる
3. 散布図または散布図行列で関連性を確
認してみる
4. 傾向からデータの本来持つ性質について
の可能性(仮説)を考えてみる
45
R Studioを使ってみる
R言語プログラミングを試してみ
よう
46
R Studioの起動
R Studioの起動は管理者権限で実行します
RStudio overview
Editor
Console
Workspace
Others
R Studioを使ってデータ分析の基本を
やってみよう
1. データを読み込む
クリップボードや CSVファイル
2.データ列の最頻値を求める
3.各列データのヒストグラムを表示する
49
プロジェクトの作成
50
File メニュー ➡ New Project
New Directory
プロジェクトの作成
51
Empty Projectを選択する
Directory name
test01 を入力してください
Create project as …
C:¥R を入力してください
[Create Project]ボタン押下
プロジェクトの作成
52
Rstudio画面確認
プロジェクトの作成
53
C:¥R¥dataフォルダ内のファイルをすべて、C:¥R¥test01フォルダへコピーして
ください
プロジェクトの作成
54
File メニュー ➡ New File ➡ R Script を選択してください
プロジェクトの作成
55
File メニュー ➡ New File ➡ R Script を選択してください
プロジェクトの作成
56
Untitled1というEditorウィンドウが左側上にできます
プロジェクトの作成
57
C:¥R¥test01¥test01.txtファイルをメモ帳やテキストエディタで
開きます
テキストデータを全部選択してRstudioのUntitled1というEditor
ウィンドウへ貼り付けます
プロジェクトの作成
58
RstudioのUntitled1というEditorウィンドウにRスクリプトが貼り付
けられていることを確認してください
R Studioを使ってデータ分析の基本を始
めます
1. データを読み込む
クリップボードや CSVファイルからRのデー
タフレームへ
2. データを眺める
3. 基本統計量を求める
4. データ列の最頻値を求める
5. 各列データのヒストグラムを表示する
59
無料のお勉強情報
 おススメ:データ分析勉強会
https://sites.google.com/site/kantometrics/home
2016年度第一回は5/21日 @文京区 東洋大学白山キャンパス
こくちーずにて申し込み
60
無料のお勉強情報
 おススメ:データ分析勉強会
https://sites.google.com/site/kantometrics/home
61
無料のお勉強情報
 総務省統計局提供のデータ分析系のWEB講座が2週間後に開講します。データ分析
にご興味のある方はご検討を
入門編を受講していなくても受講可能、かつ、無料です(^^)b
「社会人のためのデータサイエンス演習」講座概要
http://gacco.org/stat-japan2/
講座内容(詳細はリンク先にて)
https://lms.gacco.org/c…/course-v1:gacco+ga063+2016_04/about
62
引用、参考、参照資料
 IPAソフトウェア開発データ白書2012-2013
 ソフトウェアメトリクス統計分析入門 現場エンジニアによる直観的解説と実践ドリル
著者:小池利和
 データ思考のソフトウェア品質マネジメント メトリクス分析による「事実にもとづく管理」の
実践 著者;野中誠、小池利和、小室睦
63

More Related Content

What's hot

確率統計-機械学習その前に v2.0
確率統計-機械学習その前に v2.0確率統計-機械学習その前に v2.0
確率統計-機械学習その前に v2.0Hidekatsu Izuno
 
研究室内統計勉強会20160526
研究室内統計勉強会20160526研究室内統計勉強会20160526
研究室内統計勉強会20160526敬之 中島
 
確率統計-機械学習その前に
確率統計-機械学習その前に確率統計-機械学習その前に
確率統計-機械学習その前にHidekatsu Izuno
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
SapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドSapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドHiroshi Shimizu
 
20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pub20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pubYoichi Tokita
 
Pythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみようPythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみようTatuya Kobayashi
 

What's hot (7)

確率統計-機械学習その前に v2.0
確率統計-機械学習その前に v2.0確率統計-機械学習その前に v2.0
確率統計-機械学習その前に v2.0
 
研究室内統計勉強会20160526
研究室内統計勉強会20160526研究室内統計勉強会20160526
研究室内統計勉強会20160526
 
確率統計-機械学習その前に
確率統計-機械学習その前に確率統計-機械学習その前に
確率統計-機械学習その前に
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
SapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドSapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライド
 
20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pub20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pub
 
Pythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみようPythonで時系列のデータを分析してみよう
Pythonで時系列のデータを分析してみよう
 

R入門編