二つのmosaic plot
と
日本語表示
Tokyo.R #65 LT
2017/09/23
作新学院大学 人間文化学部
藤本一男
Kazuo.fujimoto2007@gmail.com
報告の概要
• graphics::mosaicplot と vcd::mosaic
• カテゴリカル・データの表示に活躍
• mosaic は、しかし、「日本語が使えない」?
• Structplot Frame work のパラメータ設定
• 参考文献
graphics::mosaicplot()
データは、髪の色と眼の色、
性別データ(HairEyesColor)
• 3つの変数で596人の観測値をクロス集計した3
次元配列。変数とそのレベルは以下のとおり。
名前 レベル
• 1. 髪の色 黒、茶色、赤、金髪
• 2. 目の色 茶色、青、薄茶、緑
• 3. 性別 男性、女性
データの詳細
• 詳細
• Hair x Eyeの表は、Snee(1974)によって報告されたデラウェ
ア大学の学生の調査に基づいてい。性別による分割は、教材
的*な視点からFriendly(1992a)によって追加された。この
データセットは、標準カイ二乗検定、より一般的には対数線
形モデリング、mosaci plot、sieve diagram、またはassociation
plot などのグラフィカルメソッドなど、分割表を分析するた
めのさまざまな手法を示すのに役立つ。
• * Frendly2000:392によるコメント
• 髪の色と目の色との関係は、このようなデータでは驚くほど
見通せない。遺伝的に、髪の色、目の色、および肌の色はメ
ラニンに関連しており、少なくとも2種類のメラニンが存在し、
そのうちの1つは赤みがかった(明るい)もの、もう1つは
黒っぽいことが知られている。皮膚の中のより暗い形のメラ
ニンをたくさん持っている人は、おそらく髪と目にそれを
持っている。しかし、遺伝的には無関係であるが、人種の中
で一緒に起こりうる多数の人種特性が存在する。 Sneeのデー
タセットの学生は、人種では分類されていないため、不明だ
る。髪の色、目の色、性別の間に何らかの関係があるかどう
かは、さらに謎である。
mosaic plot の特徴
• タイルによって度数(割合)を表示する
• 棒グラフでは、変数が二つあるときに、一方の
変数しか表示できない。そのため、度数がすく
なくてもカテゴリーの割合が大きいものが「め
だつ」というようなことが起こる。
• mosaic plot は、二つの変数が同時に表現されて
いる。
mosaic plot の歴史
• 詳細は、“Advances in Visualizing Categorical Data Using the vcd,
gnm and vcdExtra Packages in R CARME 2011”, http://carme2011.agrocampus-
ouest.fr/slides/Friendly_Turner_Firth_Zeileis.pdf
• Hartigan and Kleiner (1981, 1984): representing an n-way
contingency table by a “mosaic display,” showing a (recursive)
decomposition of frequencies by “tiles”, area ∼ cell frequency.
• Friendly (1994): developed the connection between mosaic
displays and loglinear models
• Showed how mosaic displays could be used to visualize both
observed frequency (area) and residuals (shading) from some
model.
1st presented at CARME 1995 (thx: Michael & Jörg!)
• Visualizing Categorical Data (Friendly, 2000)
• But: mosaic-like displays have a long history (Friendly, 2002)!
• 2002: vcd project at TU & WU, Vienna (Kurt Hornik, David Meyer,
Achim Zeileis) → vcd package
“Data and Visualization”
• Micahel Frendly先生、CARME2015, Naples での講演
• https://youtu.be/uti5FIFJsN4
学校では習わなかった…...
• mosaicplot 「教科書」にもではじめている
• プレステップ統計学I 記述統計学 (プレステップシリーズ
14) 単行本(ソフトカバー) – 2012/3/29 稲葉 由之 (著)
きっと理由が..
• 積み上げ棒グラフ
• 計算量が大したことない。
• 比例計算を視覚的に確認する教材になる。
• それに対して、
• mosaic plotは、
• 計算量が増える。
• 絵を描くのも複雑になる。
• 棒グラフだと、極端な話、「幅ゼロ」で線で引いてもよし。
• Rのような言語が手軽に使えるようになったので、
簡単に活用できる条件が整った。
(グラフ「手書き」の教育上のことは場を改めて
…..)
中野康人,「クロス集計の視覚
化」Rを利用したグラフの紹介
• 社会調査協会,『社会と調査』No.18
(2017/03)
• p93「モザイクプロット:次に、帯グラフの完
成型といってもよいであろうモザイクプロット
を紹介する。」「モザイクプロットは、Rの
ベースグラフィックでクロス集計表をプロット
する際に出力される形式である。」「Rのベー
スグラフィックの他にはVCDパッケージでも描
画が可能である。」
vcd によるmosaic plot の拡張
• mosaic plot : 一般名称
• mosaicplot : graphics::mosaicplot() のこと
• mosaic: vcd::mosaic()
mosaicplot()
• クロス表をそのまま入れればいい。
• 日本語も問題なく表示される
• ? mosaicplotでhelp
表示させてみる/ mosaicplot()
.d <- HairEyeColor
.d_j <- .d
dimnames(.d_j) <- list(
髪=c("黒","茶","赤","ブロンド"),
眼= c("茶","青","薄茶","緑"),
性別= c("男性","女性"))
mosaicplot(.d, main="HairEyeColor")
mosaicplot(.d_j, main=“髪の色と眼の色")
2つのmosaic plotと日本語表示
2つのmosaic plotと日本語表示
ちょっと気になる変数の位置
• データは、こんな感じ。
• 行にHair
• 列にEye
• 第三変数としてSex
• しかし、mosaicplot では。
• 縦にEye、横にHair。
• つまり表出力と転置の関
係。
• str() でみると、Hair, Eye,
Sex の順。
さてvcd::mosaci() では?
vcd::mosaic で行こう!
mosaic(.d_j,main="髪の色と目の色/vcd::mosaic")
文字化け(というか所謂トーフ)です。
• rmdからknitr、pandas経由でxelatexで組版して
PDFに出力すると日本語がちゃんと表示されて
いる。
• yamlヘダーで、monofont,sansfont,mainfont を
IPAGothic, IPAGothic, IPAPMinchoに設定。
• しかし、(macですが)RStudioのplotペインや
スッピンRの「Quarz」では、ご覧のとおり。
• .Rprofileには、「macで日本語を使う」「ggplot2で
使う」「latticeで使う」などの設定を入れている。
• RStudioのplotペインで、PDFにExportさせると、ちゃ
んと文字が生きている。
• Windowsでどうなるかは未検証。
• .Rprofileのおまじない含めて「fontの設定」よ
くわかっていません!
PDFにすればいいではないか!
• というわけにもいかず、やはり、RStudio画面
で確認できないのは辛いものがある。
• plotペイン文字化けしているグラフからPDFに
exportすると日本語が「復活」するのだから文
字コード情報は生きている。
• ということは、フォントの設定の問題だろう。
• と今回の報告の本題。
その前に少し「vcdと日本語」
• vcdは、Visualizing Categorial Data (カテゴリか
るデータの可視化)の略。
• mosaicを始め、便利が機能が提供されている。
• 便利、でも日本語使えないではないか。
Rjpwiki での質問あり。誰も回
答してない。
• vcd初心者? (2012-10-23 (火) 17:43:10)
• http://www.okadajp.org/RWiki/?%EF%BC%B1%EF%BC%86%EF%BC%A1%20(%E5%88%9D
%E7%B4%9A%E8%80%85%E3%82%B3%E3%83%BC%E3%82%B9)%2F14#sbdd4c23
• 「さらに、ラベルを日本語で表示しようとして、
次のように入力すると、
> dimnames(tab) <- list(サイズ=c(“S”, “M”, “L”),
性別=c("男", "女"))
> mosaic(tab, split_vertical=T)
• 以下にエラー grid.Call.graphics(L_downviewport,
name$name, strict) : Viewport 'cell:サイズ=S' was not
foundとエラーになってしまいます。
• 日本語が通らないようなのですが、何か対処法は
ありますでしょうか。」
豊澤 栄治「実践!Webマーケ
ターのためのR入門
• 顧客属性データとコンバージョンデータを使っ
てどんどん打ち手を考えよう!【R入門講座】
• https://markezine.jp/article/detail/20665 (2014/08/28 08:00)
• 「あれ!? なんで今回は日本語の変数名では
ないのか? とツッコミが入りそうですね。
そうなんです。vcdパッケージを使うのですが
日本語表示で問題がありまして、英語表記とさ
せて頂きます。環境によってはうまいこといく
かも知れませんが……。お許しください!」
Winston Chang(石井、河内、瀬戸山、古畠)『Rグ
ラフィックスクックブック-ggplot2によるグラ
フ作成のレシピ集』オラリー・ジャパン,2013
• なお、「ggplot2による.....」は邦題でのサブタイトル。
• ここの「レシピ13.15 モザイクプロット」を作成す
るは、vcd::mosaic を紹介している。
• このレシピの最後に「モザイクプロットを作成す
るその他の関数は、?mosaicplot を参照してくださ
い。」(p316)とあるが(実は原著でも同様)、
vcd::mosaic と graphics::mosaciplot は別ものである。
• なお、本書の付録B「グラフでの日本語フォントの
利用」は、windowsやOSX向けの日本語設定の話と、
個別ggplot2で日本語をつかえるようにする説明だ
けである。
金明哲「Rによるカテゴリカ
ルデータの視覚化」
• http://mjin.doshisha.ac.jp/R/46/46.html
• vcdのfunction 説明あり。
• 便利な機能についてコンパクトに紹介。vcdでどん
なグラフが描けるのかがわかります。
• しかし、日本語については言及なし。
• 金先生のページでvcdに出会って、よし、使ってみ
よう!と意気込んで、日本語変数名データをいれる
と、エラー、に直面。
• 使えない、使わない…..。
では藤本『対応分析入門』オー
ム社2015はどうか
• 実は、第5章の「対数線形モデルと対応分析」のモデル
との当てはまりを図示するところで、vcd::mosaic を
使っている。
• ページをみると、日本語のタイトルがついてる。サ
ポートページで提供しているスクリプトをみると日本
語タイトルが付いている。
• ただ、PDF出力で入稿したので、問題なかった模様。
これを、RStudioやスッピンRで実行したら、日本語が
トーフですね。
• これは、「Rで検算しながら理解する」といいながら、
誤魔化(問題回避..)してます。ごめんなさい!
• この件で出版社に問い合わせたりしないでください!
今日のLT終わったら、スクリプト訂正しておきます。
2つのmosaic plotと日本語表示
2つのmosaic plotと日本語表示
鍵は、structplot frame work
• lattice や ggplto2 と同じgrid 系。
• そのため、baseで有効だった設定が効かない。
• 私みたいに、さんざんbaseであれこれやって(苦し
んで)来たものには、厳しい仕打ち。
• lattice や ggplot2 に比べて使う人が少ないのか、
vcd(^^;)
解説
問題は、structplot frameworkの変数
• strucplot
• From vcd v1.4-3 by David Meyer
• 92th Percentile
• Structured Displays of Contingency Tables
• This modular function visualizes certain aspects of
high-dimensional contingency tables in a
hierarchical way.
• https://www.rdocumentation.org/packages/vcd/ve
rsions/1.4-3/topics/strucplot
• もちろん ?structplot で参照可能。
ヒントは、R-help にありまし
た
• http://r.789695.n4.nabble.com/Re-fonts-in-mosaic-td3418263.html
• 回答は、 Michael Friendly先生!
• If you are doing multiple plots like this, there is no way I know of
to specify the fonts for labeling *once* for all such
plots. However,
you can do something like this to save typing and keep things
consistent:
my.largs <- list(
gp_labels = gpar(fontsize = 12, fontfamily = "calibri"),
gp_varnames = gpar(fontsize = 16, fontfamily = "calibri"))
mosaic(UCBAdmissions, labeling_args=my.largs)
mosaic(UCBAdmissions, labeling_args=my.largs, shade=TRUE)
これでOKと思いきや…
• タイトル(main=“”)がでません。(PDFにする
とでてます。)
2つのmosaic plotと日本語表示
Title(main領域)のgpは、main_gp
• それならと、my.largs のlistに、main_gpを追加
してみたけど、だめ。
• それは、labeling_args に代入していたからでし
た。main_gp(同様にサブタイトルも、
sub_gp)に代入しないといけない。
• 本体でその都度指定してもいいが。
2つのmosaic plotと日本語表示
ただ、なかなかたどり着けないhelp
• ?vcd
• ?mosaic
• をみても、なかなかわからない。?mosaicのそ
こかしこに、structplot へのリンクがはられて
いるが、私には迷路だった。いっぱいありすぎ。
• vcd::mosaic(他のdoubledeckerとかassocplotと
も)の表示は、grid系で、それはstructplot とい
うフレームワークを使っているぞ、という方面
から攻略して、たどり着きました。
やりたいこと(教えて欲しいこと)
• my.largs = list(gp_labels = gpar(fontsize =10, fontfamily = "sans"),
gp_varnames = gpar(fontsize = 12, fontfamily = "sans"))
my.main = gpar(fontsize = 14,fontfamily = "sans")
my.sub = gpar(fontsize = 10,fontfamily = "sans")
のようなものを毎回書くのは面倒なので、.RProfile に
vcdがloadされたら設定するように書きたい。
• 懇親会、でますので、この件よろしくお願いい
たいします!
今後ともよろしくお
願いいたします!

More Related Content

PDF
確率モデルを使ったグラフクラスタリング
PDF
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へ論文
PDF
Probabilistic Graphical Models 輪読会 #1
PDF
大規模ネットワーク分析 篠田
PPTX
Tokyo.R #46 Cox比例ハザードモデルとその周辺
PPTX
距離とクラスタリング
PPTX
Logistical Regression.pptx
PDF
Kaggle Avito Demand Prediction Challenge 9th Place Solution
確率モデルを使ったグラフクラスタリング
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へ論文
Probabilistic Graphical Models 輪読会 #1
大規模ネットワーク分析 篠田
Tokyo.R #46 Cox比例ハザードモデルとその周辺
距離とクラスタリング
Logistical Regression.pptx
Kaggle Avito Demand Prediction Challenge 9th Place Solution

What's hot (20)

PDF
CVIM mean shift-3
PDF
近似ベイズ計算によるベイズ推定
PDF
実践で学ぶネットワーク分析
PPTX
Kaggle – Airbnb New User Bookingsのアプローチについて(Kaggle Tokyo Meetup #1 20160305)
PPTX
EchoyaGinhanazeSu_inoka.pptx
PPTX
Descriptive Statistics in R.pptx
PDF
無限関係モデル (続・わかりやすいパターン認識 13章)
PPTX
Week 4
PPTX
[DL輪読会]HoloGAN: Unsupervised learning of 3D representations from natural images
PDF
Data tidying with tidyr meetup
PDF
Bayesian regression models and treed Gaussian process models
PDF
Tokyo r7 sem_20100724
PDF
effectsパッケージを用いた一般化線形モデルの可視化
PDF
モデルではなく、データセットを蒸留する
PDF
ニューラルネットワークを用いた自然言語処理
PDF
NetworkXによる語彙ネットワークの可視化
PDF
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
PDF
3次元のデータをグラフにする(Tokyo.R#17)
PDF
{tidygraph}と{ggraph}によるモダンなネットワーク分析
PDF
統計学の基礎の基礎
CVIM mean shift-3
近似ベイズ計算によるベイズ推定
実践で学ぶネットワーク分析
Kaggle – Airbnb New User Bookingsのアプローチについて(Kaggle Tokyo Meetup #1 20160305)
EchoyaGinhanazeSu_inoka.pptx
Descriptive Statistics in R.pptx
無限関係モデル (続・わかりやすいパターン認識 13章)
Week 4
[DL輪読会]HoloGAN: Unsupervised learning of 3D representations from natural images
Data tidying with tidyr meetup
Bayesian regression models and treed Gaussian process models
Tokyo r7 sem_20100724
effectsパッケージを用いた一般化線形モデルの可視化
モデルではなく、データセットを蒸留する
ニューラルネットワークを用いた自然言語処理
NetworkXによる語彙ネットワークの可視化
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
3次元のデータをグラフにする(Tokyo.R#17)
{tidygraph}と{ggraph}によるモダンなネットワーク分析
統計学の基礎の基礎
Ad

More from Tsuda University Institute for Mathematics and Computer Science (20)

PDF
日本社会学会95回大会報告v1.4.pdf
PDF
PDF
Landscape of CA in Japan and Educational Perspective
PDF
藤本一男発表資料日本社会学会94v1.0
PDF
ggplotのplotエリアで日本語ラベルを使う
PDF
PDF
Wrapper to use Japanse font with vcd::mosaic and build it as pakcage
日本社会学会95回大会報告v1.4.pdf
Landscape of CA in Japan and Educational Perspective
藤本一男発表資料日本社会学会94v1.0
ggplotのplotエリアで日本語ラベルを使う
Wrapper to use Japanse font with vcd::mosaic and build it as pakcage
Ad

Recently uploaded (6)

PPTX
QlikTips_20250819_Qlik Automate Update.pptx
PDF
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
PDF
LEDビジョンレンタル市場規模の成長見通し:2031年には1934百万米ドルに到達へ
PDF
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
PPTX
20250819 Qlik Tips AI assistants (SQLアシスタントとデータモデルリレーションシップ)
PDF
高所作業プラットフォーム業界の上位メーカーランキング2025:市場シェアと売上推移の分析レポート
QlikTips_20250819_Qlik Automate Update.pptx
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
LEDビジョンレンタル市場規模の成長見通し:2031年には1934百万米ドルに到達へ
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
20250819 Qlik Tips AI assistants (SQLアシスタントとデータモデルリレーションシップ)
高所作業プラットフォーム業界の上位メーカーランキング2025:市場シェアと売上推移の分析レポート

2つのmosaic plotと日本語表示