SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
対応分析研究会
第3回
「R⼊⾨/Rで対応分析」
2021/02/18
Ver1.0
藤本⼀男
Kazuo.fujimoto2007[at]gmail.com
構成
• 「Rで対応分析」をタイトルをつけてますが、
それを⽬的としながら、これまでRに触れたこ
とがない⽅も対象にお話を進めます。
• Rの構成
• Rでどんな⾵に⾒えるのか
• Rで対応分析
• Rでカテゴリカルデータ分析
• その他諸々
このスライドの付録
• このスライドは、ガイドです。
• Rのスクリプト、それが吐き出した出⼒は、以
下のところに並べてあります。
• https://bit.ly/3atLwEg
Rとはなにか
• よく「無料の統計ソフト」という⾔い⽅がされ
る。
• ある時は「貧乏⼈のSPSS」とも呼ばれた
• そのために「無料」のソフトなんだから⼤した
ことはできないだろう、という思い込みさえ流
布されてしまっている。
• そんなことはありません。無料です。ですから、
無保証です。これ、有償ソフトでもそれを使っ
た結果にはなんら補償はないので同じことかと。
Rをめぐる困難?
• メニュー形式(GUI)ではなく、コマンドを⼊
⼒(CUI)するので敷居が⾼い。
• 問題(エラーなど)が発⽣した場合、⾃⼒で解
決しなくてはならない。
• 必ずしも簡単ではないのですが、⾃分で解決し
ていく⼿順を⼿にいれれば、あとは「楽」にな
ります。
• 加えて、macOSの場合、いろいろ設定が。
Rの歴史
• ベル研でのSの開発
• JMチェンバース達
• EDAのTukeyの流れ
• グラフィックスを得意とする統計処理⾔語(統計処
理環境)
• Rへ
• R Foundation
• 詳しくは、Rjpwikiの以下のページを
• http://www.okadajp.org/RWiki/?R%EF%BC%9A%E9%81
%8E%E5%8E%BB%E3%81%A8%E6%9C%AA%E6%9D%A5
%E3%81%AE%E6%AD%B4%E5%8F%B2
Rをどうやって学ぶ?
• この解説のアプローチ
• Rとはなにかを、R⾔語の全体像からは説明しませ
ん。(無理…。なんでもできる⾔語ですから。)
• 切り⼝を絞ります:
• 対応分析
• カテゴリカルデータ
• 社会調査
そして
• EDAという分析アプローチ
Rへの三つの「⼊り⼝」
• スッピンのR
• RcmdrというGUIのR
• Rstudio ★
Rの壁
• Base R の使い⽅が基本
• それでも、tidyverseで導⼊されたパイプ処理
(%>%)を使うとスクリプトが⾒えるようになる。
• .Rmd(Rmarkdown)で、再現可能性が⾼まる。
• Graphics
• Base Rのグラフィックス
• ggplot2 という解ってしまえば⾃由度の⾼いグラ
フィックス。
• こんな「区分」があることを知っておくと、
「書籍」を読む際に混乱しないかも。
Part 1
少し実演
Rがインストールされている環境で
• Rのインストール
• CRANにいくと、OSごとのリンクがあります。
• The Comprehensive R Archive Network
• https://cran.r-project.org/
• ⼀番⼤事な
ページです。
まずは、基本構成を!
• Rの本体
• コンソールに
コマンドを⼊
⼒
• 結果がコン
ソールやグラ
フィック・ウ
インドウに表
⽰されます。
macOSでの画⾯ですが
Windowsでも同じような
ものかと。
最初の⼀歩!
• 以下のコマンドをコンソールから⼊⼒します。
• コマンドは、半⾓です。
• x <- rnorm(1000)
• y <- rnorm(1000)
• Plot(x,y)
• x(とy)に、rnorm(正規乱数で)1000個の
データを⽣成し代⼊しなさい。
• xとyの散布図を描画しなさい。
⼆歩⽬!
• スクリプト(プログラム)
を書いて、実⾏します。
• ファイル名はなんでもOK。
ただ、拡張⼦は「.R」
• ⼀⾏ずつ実⾏もできます。
• 領域を指定して実⾏もでき
ます。
• 全部を実⾏もできます。
• 1000 のところをNに置き換
えます。
• ⼀度やった処理をなんでも
繰り返せます。
• N=1000 ですが、これを
100000 にして実⾏するこ
とも可能です。
このあとは⾃分で歩いていけ
ます
• Rの機能
• baseと呼ばれるR本体に最初からついてくる基本部分。
• これにpackageとして様々な機能を追加することができ
ます。
• ほんの⼀例
• ca Greenacre先⽣とテクサポのNenadicさんの作品
• FactoMineR F.Husson先⽣のPCA,CA,MCA。
• vcd M.Friendly先⽣のカテゴリカルデータ分析
• car J.Fox先⽣の回帰分析必携
• Rcmdr J.Fox 先⽣のRでGUI
• これらをlibray()で指定してloadする
Rを使う3形態
• スッピンのRを使う
• コンソールでコマンドをたたく
• スクリプト・エディタでスクリプトを書く
• package Rcmdr を使い、GUIでRを使う。
• RStudioを使い、Rmd(Rmarkdown)でスクリプト
を記述する。★
• どれを推すか、と⾔われれば、RStudioですが、⼊
り⼝として(また併⽤ツールとして)RCmdrも優
れものだと思います。
• 各関数の引数(arg)の使い⽅がわかります。
• 使った昨⽇のスクリプトも吐き出すので、それを再利⽤
できます。
Rcmdr RCommander
• J.Fox 先⽣の作品
• package Rcmdrをインストール
• これはメニューからできます。
• library(Rcmdr) でロード
Rcmdr の使い⽅
• はじめてRに触れる学⽣には「やさしい」
• メニューには基本的な統計処理は⽤意されてい
る。
• カテゴリカル変数処理系は少ないが…
• さまざなパッケージのRcmdrプラグインが提供され
ている。
• FactoMineR(PCA,CA,MCA)のプラグインもある
• メニューから選択し使⽤したコマンドのコマン
ド列(引数も設定されている)が履歴として残
るので、そのコマンドの使い⽅の⽣きたレファ
レンスになる。
最新のRcmdrでは
• Rmarkdownがサポートされている
• ⇄ RStudioとの共有。(.Rでも可能だが)
• pandocをインストールすると、レポートをWord形
式で出⼒できる。
• 少し、実演
• macOSの⼈は、terminalからRを起動してそこで
library(Rcmdr)とすると動きがもさっとしない
ようです。
真打:Rstudio
• インストールは、
• Rstudio https://rstudio.com/products/rstudio/
• Products – Rstudio でRstudio Desktopを選び、Download
Rstudio Desktopから⾃分のOSにあったものをダウンロー
ドします。
• 起動は、アイコンをクリック
• スクリプトは、Rmarkdownという書式で書く。と
いってもなにか難しいことではない。
• コマンドだけでなく、コメント、分析に関係する解釈、
など、そのままレポートを⽣成できる。
• Rmarkdown以前は、スクリプトと描画したグラフと、rポー
トは、バラバラのファイルだったので、管理がうまくいかな
かった。
• RMarkdownで⼀元管理。
• 関係するファイルは、プロジェクトというディレクトリ
(フォルダ)で管理される。
スクリプト編集画⾯
コンソール、ターミナル画⾯
変数、履歴、など管理
ファイル、プロット、help、
など
Rmdの編集、実⾏が処理の中
⼼です
• その結果が、Rmdのファイルに現れます。
• 出⼒されたグラフをcopyしレポート(wordなど)に
pasteする必要がありません。
• Knitr コマンドでHTMLなどに出⼒できます。
• 出⼒されたHTMLファイルをFILEペインでクリックす
ると、ブラウザで表⽰することができます。
Part 2
Rを使うために知っておいた⽅がいいこと
Rの基本構造(復習)
• スッピンのRで実演を振り返ります。
• コンソール(console)から
• コマンドを⼊⼒
• グラフを描きます
• スクリプトエディタで
• 同じコマンドを⼊⼒
• ⼀⾏づつ実⾏
• 修正して実⾏
• 機能追加は、packageで
• library(……)
少し実演
雰囲気をみてください
• スッピンR
• RcmdrでR
• RstudioでR
構成:baseとpackageの組合せ
R base +
Package
Package
Package
Package
Package
分析の⽬的によって必要なものをload
して使います。
Rをインストールすると「基本構成」
としておおよそのものがついてき
ます。
Rcmdrもpackageです
基本操作:コンソールとスク
リプト
Console + Script
コンソールから⼊⼒:結果もコンソール
スクリプトから実⾏
結果はコンソール
繰り返し実⾏できる。
filename.R
Rstudio:IDE(統合開発環境)
Integrated Development Environment
Console Script
File/package/object..
スッピンのR
Filename.R、filename.Rmd ★
Rstudioを使うメリット
• Project として、ファイル類をまとめて管理で
きる。
• スッピンRやRcmdrだと、⾃分でフォルダ/ディレク
トリを管理する必要あり。(作業が少し増えてくる
と⼤混乱します。)
• Rmdを使った再現可能処理
• スクリプトファイルは、コマンド処理の流れは記録
さえますが、その結果であるグラフなどもまとめて
管理できます。
Rmarkdownをマスターすると
幸せになれます。
• markdown書式
• markupの逆?
• HTML:Hyper Text Markup Language
• テキストファイル上の簡単な書式でアウトライン/レイ
アウトなどを表現する
• # ⾒出し1
• ## ⾒出し2
• これをR⽤に拡張したもの
• Rmarkdown
• Rへのコマンドだけでなく、表やグラフなど処理結果を
⼀つのファイルとしてまとめることができる。
• 再現可能な処理を記録。
• レポートまで作成
スクリプトの構成
⼊⼒ 処理 結果
データ 統計処理 処理結果
表、
グラフ、
…
コマンド
引数、オプション
スクリプトの内部で作成
外部から読み込み
などなど
スクリプトの構成
⼊⼒
処理1
結果
処理1
処理1
:
:
この関係をシンプルに表現するのが
パイプ演算⼦%>% というもの
Rの⾔語的特徴
• ベクトル/⾏列演算が可能
• Σ で関係を表⽰すると
• I,j,k…でまわす
• プログラム的には、for ⽂で表現(間違いのも
と)!
• ベクトル/⾏列表現だと、シンプル!
• 実例は、本⽂の解説の中でやります。
part3
実際に使うのに不可⽋なもの
• データ⼊⼒
• Excelやテキストファイルでつくったデータをどう
やってR/RStudioに読み込むのか
• Rmarkdown上でどうやってデータを記述するのか。
• SPSSのデータ(.sav)を読み込むこともできます
(package haven)。
• 以下、実例を交えながら説明します。
• 参照URL:https://bit.ly/3atLwEg
クロス表を使う
• http://419kfj.sakura.ne.jp/db/wp-
content/uploads/2021/02/Fisher1940.html を⾒なが
ら説明します。
• Fisherが「判別判定の精緻化」1940でつかった、髪
の⾊と⽬の⾊の関係をクロス集計したデータ。
• 出典:http://onlinelibrary.wiley.com/doi/10.1111/j.1469-
1809.1940.tb02264.x/pdf
• データを書き込む
• ベクトル
• ⾏列
• 表にする
• mosaic plot
• カイ⼆乗検定
P値ハッキング
• http://419kfj.sakura.ne.jp/db/wp-
content/uploads/2021/02/p-valHack.html
• p値が有意にならないクロス表をつくる。
• 各セルの⽐率をそのままにして、総数Nを増や
していく。
• その都度のp値をplotしてみる。
アンスコムの4重奏
• Anscombeの論⽂
• https://www.sjsu.edu/faculty/gerstman/StatPrimer/ansc
ombe1973.pdf
• Kieran Healy,,2019(2021),『データ可視化⼊⾨』
講談社p25 アンスコムの4重奏
• グラフを確認しないで回帰分析のresult数値だ
けを⾒ていると判断をあやまりますよ、という
例。
• http://419kfj.sakura.ne.jp/db/wp-
content/uploads/2021/02/Chap1.html
Part 4
Rで対応分析
対応分析をRでやります
• Package caをloadします
• まずはこれだけでやってみます。
• データは、smoke 従業員と喫煙習慣(chapxの
データです)
• 実演します
対応分析/多重対応分析
• 処理⾃体は、1⾏です。
• 例:FactoMineRのCA
• res.CA <- CA(.tbl)
• グラフも出⼒されます。
• ただし条件が!
• .tbl としてデータが⽤意されていること。
• どの分析⼿法でも同じですが、この過程いかんによって
は、結果はゴミとなります。
• res.CA に出⼒されたresultを評価するために、計算
された統計量を評価すること
• ここがCAやMCAを使いこなすポイント。
Resultを⾒てみましょう
• 吐き出された統計量の詳しいことは今後の研究会
で説明していきます(この研究会のメインテー
マ)。
• まずはグラフ出⼒
• ⾏変数、列変数を双⽅とも主座標にする(対称マップ)
かどちらかを標準座標にするか、指定。
• グラフ表⽰をinteractive にする描画ツールも公開さ
れています。
• Package explor
• ⼊⼒できるCA/MCAのresultは要チェック。
• CONTR(軸の形成に寄与)、cos2(軸がそのポイントにど
れだけ寄与しているか)をもとに、ポイントの⼤きさを変化
させせて表⽰できる。
• MCAでの集中楕円を表⽰できる。
Package vcdのmosaic plotを使う
• 対応分析は、カテゴリカル・データ分析におけ
るEDA(探索的データ解析Tukry1977)の1ピー
スなので、基本的なカテゴリカルデータ分析⼿
法と併⽤します。
• 出発点は、クロス表
• ⾏分析、列分析
• カイ2乗検定
• 期待値からのズレ
• などを図⽰してみます
• http://419kfj.sakura.ne.jp/db/wp-
content/uploads/2021/02/Fisher1940.html
困った時は!
• 近くにいるRに詳しい⼈に相談する
• ネットで検索する
• R-wakalang で質問する
• Slackで開設されています。
• https://qiita.com/uri/items/5583e91bb5301ed5a4ba
• RjpWikiで調べて/質問する
• http://www.okadajp.org/RWiki/
• Rコミュニティに参加する
• 例えば:Tokyo.R https://tokyor.connpass.com/

Weitere ähnliche Inhalte

Ähnlich wie C ai p3_jp_no3v1.0

pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画
Kazufumi Ohkawa
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前に
Kosei ABE
 
10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712
Nobuaki Oshiro
 

Ähnlich wie C ai p3_jp_no3v1.0 (20)

Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
つながるデータShare
つながるデータShareつながるデータShare
つながるデータShare
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
Tokyo.R#16 wdkz
Tokyo.R#16 wdkzTokyo.R#16 wdkz
Tokyo.R#16 wdkz
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編)
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前に
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
 
進化するArt
進化するArt進化するArt
進化するArt
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712
 

Mehr von Tsuda University Institute for Mathematics and Computer Science

Landscape of CA in Japan and Educational Perspective
Landscape of CA in Japan and Educational PerspectiveLandscape of CA in Japan and Educational Perspective
Landscape of CA in Japan and Educational Perspective
Tsuda University Institute for Mathematics and Computer Science
 

Mehr von Tsuda University Institute for Mathematics and Computer Science (20)

ITリスク研究会20230722v1.1.pdf
ITリスク研究会20230722v1.1.pdfITリスク研究会20230722v1.1.pdf
ITリスク研究会20230722v1.1.pdf
 
日本社会学会95回大会報告v1.4.pdf
日本社会学会95回大会報告v1.4.pdf日本社会学会95回大会報告v1.4.pdf
日本社会学会95回大会報告v1.4.pdf
 
MAの困難についての報告PPT.pdf
MAの困難についての報告PPT.pdfMAの困難についての報告PPT.pdf
MAの困難についての報告PPT.pdf
 
対応分析研究会第11回v1.1
対応分析研究会第11回v1.1対応分析研究会第11回v1.1
対応分析研究会第11回v1.1
 
Landscape of CA in Japan and Educational Perspective
Landscape of CA in Japan and Educational PerspectiveLandscape of CA in Japan and Educational Perspective
Landscape of CA in Japan and Educational Perspective
 
第6回第10−11章v1.6
第6回第10−11章v1.6第6回第10−11章v1.6
第6回第10−11章v1.6
 
第7回20210710第12−13章
第7回20210710第12−13章第7回20210710第12−13章
第7回20210710第12−13章
 
第8回20210827第14、15章
第8回20210827第14、15章第8回20210827第14、15章
第8回20210827第14、15章
 
第9回20211009第16−17章
第9回20211009第16−17章第9回20211009第16−17章
第9回20211009第16−17章
 
第10回2022−01−08第18−19章a
第10回2022−01−08第18−19章a第10回2022−01−08第18−19章a
第10回2022−01−08第18−19章a
 
藤本一男発表資料日本社会学会94v1.0
藤本一男発表資料日本社会学会94v1.0藤本一男発表資料日本社会学会94v1.0
藤本一男発表資料日本社会学会94v1.0
 
C ai p3_jp_no1v1.0
C ai p3_jp_no1v1.0C ai p3_jp_no1v1.0
C ai p3_jp_no1v1.0
 
C ai p3_jp_no2
C ai p3_jp_no2C ai p3_jp_no2
C ai p3_jp_no2
 
C ai p3_jp_no4v1.20
C ai p3_jp_no4v1.20C ai p3_jp_no4v1.20
C ai p3_jp_no4v1.20
 
C ai p3_jp_no5v1.2
C ai p3_jp_no5v1.2C ai p3_jp_no5v1.2
C ai p3_jp_no5v1.2
 
ggplotのplotエリアで日本語ラベルを使う
ggplotのplotエリアで日本語ラベルを使うggplotのplotエリアで日本語ラベルを使う
ggplotのplotエリアで日本語ラベルを使う
 
Jss20191006 howc aexpressrelationsv1.1
Jss20191006 howc aexpressrelationsv1.1Jss20191006 howc aexpressrelationsv1.1
Jss20191006 howc aexpressrelationsv1.1
 
Jss20191006 ts13 gda_open
Jss20191006 ts13 gda_openJss20191006 ts13 gda_open
Jss20191006 ts13 gda_open
 
Wrapper to use Japanse font with vcd::mosaic and build it as pakcage
Wrapper to use Japanse font with vcd::mosaic and build it as pakcageWrapper to use Japanse font with vcd::mosaic and build it as pakcage
Wrapper to use Japanse font with vcd::mosaic and build it as pakcage
 
vcdで日本語(3) long format が旧世界とのGateway
vcdで日本語(3) long format が旧世界とのGatewayvcdで日本語(3) long format が旧世界とのGateway
vcdで日本語(3) long format が旧世界とのGateway
 

C ai p3_jp_no3v1.0