広告/統計/アニメ/映画 等に関するブログ

広告/統計/アニメ/映画 等に関するブログ

AI(人工知能)の本領は、「集合知」と「センシング」だと思う

最近はバズワードのように「AI(人工知能)」が流行っている。 とは言え、ニューロ家電やファジー家電と言っていた頃もあるし、一体今、何が重要で、何が重要でないのか?よくわからないというのが正直なところではないかと思う。

人工知能の歴史

人工知能の歴史については、この本が詳しい。

人工知能自体はずっと昔から研究されているもので、これまで何度も流行りがあった。

機械学習、深層学習、人工知能

現在流行っているAIというのは、ドラえもん鉄腕アトムのようなものではなく、「機械学習」「パターン認識」のものである。 感情を理解するお友達ロボットではなくて、与えられた情報を事前に学習した情報と照らし合わせて正しく分類しているだけで、 例えれば、受験勉強が得意な優等生タイプ、ということだ。

機械学習人工知能の言葉の包含関係はこちらの図を見て欲しい。 blogs.nvidia.co.jp

ここ最近発達してきた理由

では、昔からあった筈の人工知能が何故この数年急速に発達してきたのか?というと、その技術的理由は、 - コンピュータの性能が上がって、これまで計算できなかった量の計算ができるようになったこと。 - 乱数によって擬似的に学習用データを自動生成する、という手法を思いついたこと。 である。

人工知能の得意分野を俯瞰で見る

人工知能が人の仕事を奪うのか?誰の仕事を奪うのか?を議論することに意味は薄い。今も昔も技術革新で職を失う人は居たし、これらかも同じだ。 そんな心配をしている暇があったら、人工知能で人間がより豊かになるにはどうしたらいいのか?を考える方が建設的である。

大量のデータが処理できるなら「集合知」が重要である

インターネットで世界が繋がり、Wikipediaが流行りだした頃によく言われていたのが「集合知」という概念である。 Amazonのレコメンド機能が始まったとき、その精度の高さに驚いた頃を思い出して欲しい。過去にその本を買った人が他にどんな本を買っていたのか?という情報を大量に集めれば集める程、「この本を買った人は、この本もチェックしています」の精度が上がる。

となるど、とにかくデータを集めることが重要で、自社だけで頑張って集めるよりも、如何に外部と協力してデータを集めるか?或いは、何かのサービスのついでにデータを収集するか?が人工知能の性能に直結する。

そういう意味で、個人のデータを記録し学習し気の利いたタイミングで何かをサジェストしてくれる人工知能家電、というのは、人工知能のメリットを活かせていないと言えるだろう。

情報が共有されていない分野の情報をつなぐことが重要

今、医療分野に人工知能が入ろうとしている。これまで属人的な個人のスキルとして蓄積されていたものを繋げてみんなで一緒に考えることができるようになる。そういう分野こそ活躍の場があると思われる。

例えば、「小さい子どもの子育て」という分野は、人類が産まれてこの方、うん十年とあるわけだがいつまでたっても正解がなく、毎年のように説は新しくなる。個人にとっては、人生の中で数年間のことで、老人になると必要の薄い知識になる。一方で社会全体では、いつも大量にその情報を欲している人がいる。

そういった問題を解決するために使われるべきだろう。

人間を超えるには「センシング」技術の応用が重要である

このことについて分かり易いのは、落合陽一先生のこの本の最後の方である。

魔法の世紀

魔法の世紀

人間の知覚を超える技術としては、今はおなじみの赤外線が代表的だが、センシング技術が発展することによって、人間の閾値を超えた範囲の空気の振動が測定できるようになった。つまりそれが落合陽一先生の言う「魔法」の世界である。

センシングは既に役立っている

経験と勘に頼っていた農業がセンシングデータによって手軽になってきたことは、周知の事実だと思われる。 もっと身近な例で言えば、デジタルカメラが自動的に人間の顔を認識して自動でピントを併せてくれる、といったものも普通に使っている筈だ。ちょっと前までは人間がマニュアルで焦点距離・光量・シャッタースピード全て調整していた。

人間には感知できないセンシングが重要

相手が怒っているのか? 個人の経験では判断に限界があることがある。

しかし人間よりも細かく声の抑揚を感知できれば、感情も認識できるようになる。

nlab.itmedia.co.jp

「勘のいい人」「気の利く人」すらも人工知能の力でバックアップできる時代が来るかもしれない。

人間がデータとして普段意識していないこともデータベース化する

入館IDの行動ログをとって、誰と誰との会話量が多いか?など組織や個人が普段集計していないデータも収集することによって組織変更に応用できる

或いは、こちらの本にある、バルーンチャレンジの例のように、情報提供のアシストだけをして結果に一見コミットしていないように見えるけれど実際には重要な役割をした人、に注目すると良い場合がある。

こういったことは既に実用化されていて、客先とのメールの回数によって担当営業がそろそろ営業に行くべきクライアントを見つけてアラートを出す、みたいなシステムも存在する。そういった個人では気がつかないデータを活躍することも重要と思われる。

まとめ

  • 色々な人が経験している筈なのに知識が共有されていないなぁという分野
  • 誰かの勘に頼っているなぁという分野
  • データを取ることなんて無理だと思っていた分野

が今後人工知能が伸びる分野だと思われる。

個人の購買履歴を追ってターゲティングされた広告を打つ、或いは、課金ユーザーを維持する、という狭い範囲で統計学が活かされても余り社会を良くするとは思えないし、そういう分野は大きなイノベーションには繋がらない。社会全体の役に立つように統計学を生かして欲しいと思う。

当選確率nのくじをn回ひいた時に少なくとも1回は当る確率の計算について

先日このツイートを見て、念のためそれを確かめてみた。

n回中、少なくとも1回は当る確率

「n回の試行中、少なくとも1回は当たりが出る確率」は、「n回の試行中、1回も当たらない確率」を「1(=100%)」から引けばいい。 *1

当る確率が「p」だとして、1回の試行で当たらない確率は「1- 1/p」。 n回連続で当たらない確率は、「(1-1/p)n」(累乗計算)となります。

試しにPythonで数式計算をしてみる

Pythonで数式計算をするライブラリは「sympy」

from sympy import *

sympyでは先ず使用する変数を定義します。 ここでは1回の当選確率を「p」。求めたい値であるn回試行中1回は当る確率を「p1」。試行回数を「n」としました。

n,p,p1=symbols("n p p1")

先ほどの計算式を記述

p1 = 1 - (1-1/p)**n

また、今の設定では、当選確率の逆数の回数分だけくじを引くことになっているので「p == n」を代入し、それを新たに「p1_2」と定義します。

p1_2 = p1.subs(p,n)
print(p1_2)

すると、「1/n」の確率で当るくじを「n」回ひいた時に、少なくとも1回は当るが出る確率は

「-(1 - 1/n)**n + 1」

とわかりました。 先ほどの手計算の数式と同じです。

このp1_2に具体的に「n==2」なり「n==100」なりを代入した結果を出力すれば、求めたい数値が出てきます。 「evalf()」で分数が小数点表示になります

print(p1_2.subs(n,2).evalf())
print(p1_2.subs(n,6).evalf())
print(p1_2.subs(n,100).evalf())

当選確率1/2で2回だと「0.750000000000000」 1/6の確率で6回だと「0.665102023319616」 1/100の確率で100回だと「0.633967658726771」

値を求めるだけならRでできる

数式を求めることに意義が薄いと思えば最初からRを使えば手っ取り早いです。

当たり/外れ の2種類しかない試行は二項分布になります。 確率を求めるのは、「d~」で、二項分布は「binom」。 引数は、「当たりの確率」、「試行回数」、「当る確率」の3つで、先ほど同様、1回も当たらない(==0)確率を1から引けば良いです。

1-dbinom(0,2,1/2)
1-dbinom(0,4,1/4)
1-dbinom(0,6,1/6)
1-dbinom(0,100,1/100)
> 1-dbinom(0,2,1/2)
[1] 0.75
> 1-dbinom(0,4,1/4)
[1] 0.6835938
> 1-dbinom(0,6,1/6)
[1] 0.665102
> 1-dbinom(0,100,1/100)
[1] 0.6339677

それはそうと、さっきと数字が違うじゃないですか?

さっきのツイートの数字は、63%と断言されていましたが、実際には違う、、、でも1/100で100回の時はとても近い

Rで繰り返し処理

というわけで、n==2 から n==100 までの夫々の確率をデータフレームに格納して、プロットしてみます。

繰り返し処理でデータフレームに追記していく場合、rbindを使います。

df <- data.frame()
for (n in 2:100){
  dat <- data.frame(1- dbinom(0,n,1/n))
  df <- rbind(df,dat)
}
colnames(df) <- c("prob")
df$x <- rep(2:100)

結果を出力すると、試行回数が上がるに連れて一定の数字に修練しているようです。

> head(df)
       prob x
1 0.7500000 2
2 0.7037037 3
3 0.6835938 4
4 0.6723200 5
5 0.6651020 6
6 0.6600833 7
> tail(df)
        prob   x
94 0.6340653  95
95 0.6340450  96
96 0.6340250  97
97 0.6340055  98
98 0.6339864  99
99 0.6339677 100

グラフにしてみる

ggpotでグラフ化

p <- ggplot(data=df,aes(x=x,y=prob))
p <- p + geom_bar(stat="identity")
p <- p + ggtitle("当たりの確率の逆数と同じ回数だけひいたら1回は辺りが出る確率")
p <- p + geom_text(aes(x=100,
                       y=df[df$x==100,]$prob,
                       label=round(df[df$x==100,]$prob*100,2)),
                   vjust=-1)
plot(p)
ggsave(plot=p,file="20170115.png",h=4,w=6,scale=2)

ほぼほぼ63.4%に収斂しています。

f:id:yyhhyy:20170115172459p:plain

それでは、「3n回」や「5n回」は?

繰り返し計算中の確率計算部分で試行回数を「n3」や「n5」にするだけです

dat <- data.frame(1- dbinom(0,n*3,1/n))

3倍の回数なら

f:id:yyhhyy:20170115172557p:plain

5倍の回数なら

f:id:yyhhyy:20170115172609p:plain

実際のところ、確率1%であっても100回も引く人はいないと思いますが、、、

これだけ回数を増やせばポアソン分布である

ガチャの確率が一般的にどれくらいなのか知りませんが、 二項分布は確率が低く、試行回数が増えればポアソン分布で近似できる、ということがわかっています。

二項分布 - Wikipedia

dskjal.com

qiita.com

例えば、当選確率pが「1/100」で試行回数nが「100回」なのであれば、

lambda = n * p は、「100*(1/100)」

同様に「300回」なら「100(1/300)」、「500回」なら「500(1/100)」を引数として

1 - dpois(0,(100*(1/100)))
1 - dpois(0,(300*(1/100)))
1 - dpois(0,(500*(1/100)))

とすれば、先ほど収束していった値が出てきます。

> 1 - dpois(0,(100*(1/100)))
[1] 0.6321206
> 1 - dpois(0,(300*(1/100)))
[1] 0.9502129
> 1 - dpois(0,(500*(1/100)))
[1] 0.9932621

コード全体

from sympy import *
n,p,p1=symbols("n p p1")
p1 = 1 - (1-1/p)**n
p1_2 = p1.subs(p,n)
print(p1_2)
print(p1_ans.evalf())
print(p1_2.subs(n,6).evalf())
print(p1_2.subs(n,100).evalf())
library("dplyr", lib.loc="C:/hogehoge/r/R-3.3.2/library")
library("reshape2", lib.loc="C:/hogehoge/r/R-3.3.2/library")
library("ggplot2", lib.loc="C:/hogehoge/r/R-3.3.2/library")

1-dbinom(0,2,1/2)
1-dbinom(0,4,1/4)
1-dbinom(0,6,1/6)
1-dbinom(0,100,1/100)

df <- data.frame()
for (n in 2:100){
  dat <- data.frame(1- dbinom(0,n,1/n))
  df <- rbind(df,dat)
}
colnames(df) <- c("prob")
df$x <- rep(2:100)
head(df)
tail(df)

p <- ggplot(data=df,aes(x=x,y=prob))
p <- p + geom_bar(stat="identity")
p <- p + ggtitle("当たりの確率の逆数と同じ回数だけひいたら1回は辺りが出る確率")
p <- p + geom_text(aes(x=100,
                       y=df[df$x==100,]$prob,
                       label=round(df[df$x==100,]$prob*100,2)),
                   vjust=-1)
plot(p)
ggsave(plot=p,file="20170115.png",h=4,w=6,scale=1)

df_3 <- data.frame()
for (n in 2:100){
  dat <- data.frame(1- dbinom(0,n*3,1/n))
  df_3 <- rbind(df_3,dat)
}
colnames(df_3) <- c("prob")
df_3$x <- rep(2:100)
print(df_3)

p3 <- ggplot(data=df_3,aes(x=x,y=prob))
p3 <- p3 + geom_bar(stat="identity")
p3 <- p3 + ggtitle("当たりの確率の逆数との3倍の回数をひいたら1回は辺りが出る確率")
p3 <- p3 + geom_text(aes(x=100,
                       y=df_3[df_3$x==100,]$prob,
                       label=round(df_3[df_3$x==100,]$prob*100,2)),
                   vjust=-1)
plot(p3)
ggsave(plot=p3,file="20170115_3.png",h=4,w=6,scale=1)


df_5 <- data.frame()
for (n in 2:100){
  dat <- data.frame(1- dbinom(0,n*5,1/n))
  df_5 <- rbind(df_5,dat)
}
colnames(df_5) <- c("prob")
df_5$x <- rep(2:100)
print(df_5)

p5 <- ggplot(data=df_5,aes(x=x,y=prob))
p5 <- p5 + geom_bar(stat="identity")
p5 <- p5 + ggtitle("当たりの確率の逆数との3倍の回数をひいたら1回は辺りが出る確率")
p5 <- p5 + geom_text(aes(x=100,
                         y=df_5[df_5$x==100,]$prob,
                         label=round(df_5[df_5$x==100,]$prob*100,2)),
                     vjust=-0.5)
plot(p5)
ggsave(plot=p5,file="20170115_5.png",h=4,w=6,scale=1)

1 - dpois(0,(100*(1/100)))
1 - dpois(0,(300*(1/100)))
1 - dpois(0,(500*(1/100)))

*1:数学が面白いのはこの手の逆転の発想が普通に出てくることですよね

【夢を見た】VMWareとEl Capitanのメモ

夢を見た話。

以前に、

yyhhyy.hatenablog.com

という記事を書きましたが、今はVMwarePlayerを使用しています。

PCを新しくしたのでこれを機会にMavericksからEl Capitanに変更したので、その時に参考にしたリンク集。これらに従えば簡単に使用できるようになります。

参考サイト一覧

El CapitanのISOイメージファイルを手に入れるまで

MacOSはISOイメージの形で頒布されていないので以下の手法でISOイメージファイルを作る

Windows で VMWare に Mac OSX El Capitan を入れるには - Enjoi Blog

※当然ですがMacOSを持っていないとMaxOSはダウンロードできません。

その際の画面等

基本はソフトウェアの指示の通り。

seedofhack.wp.xdomain.jp

MacOSインストール後

VMWare toolsのインストール方法

英語ですがここがわかりやすいです。

www.wikigain.com

キーボードの配列の有効化

(*何故か私は上手く行きませんでした。)

ichitaso.com

LinuxVMware

インストールまで

そもそもLinuxVMwareを入れる方法がわかりにくい

itlx.ldblog.jp

itlx.ldblog.jp

インストール後

バーチャルウィンドウは、Ctrl + Alt + Enter で全画面表示に切り替わりますが、 微妙に画面の端っこをクリックするとUbuntuのLauncherの方が反応してしまいます。

UbuntuのLauncherは、このように下側に配置し、

Ubuntu 16.04 LTSのLauncherを画面下に配置する

MacのDockの方は、Dockの環境設定で右か左にしておけば、操作中に誤ってホストOS側に移ってしまう、ということもないでしょう。

日本の労働者の低い生産性_再現可能なものへの転換

年末年始最初に読んだ本は、

でした。

昨今では日本の高度経済成長の要員はモーレツ社員の頑張りだけでなく、「円の固定相場制」「人口ボーナス」などの影響が大きかった、というのは通説になりつつあるのではないかと思いますが、本書は「人口ボーナス」の要員の大きさを自覚すべきだという主張でした。

そしてこのまま生産性が低いママでは各国に置いてけぼりになります。

では、どうしたら生産性は上がるのか?

デービッド アトキンソン氏の本は、アナリストらしく、具体的な改善方法というよりも、マネジメント層が改革をせざるを得なくなるように株式市場のプレッシャーを与えるように構造を変えよう、という主張で、その先は経営者が自分で考えることになっています。

普段、日経CPの元編集長 木村さんのツイートをよく見ていますが、日本は”失われた20年”の間に随分と効率化から置いてけぼりになっているのだと毎朝思い知らされる事例をツイートしてくれます。

カスタマイズするのは、悪

何年か前に読んでなるほど!と思った本に

があります。

小説ですがとてもためになります。

本書では効率化を図るために、部品のカスタマイズ=「すり合わせ」を止めて、共通して売れるものを生産し、それを買ってくれる客を探すのだ、という主張をしていました。

「すり合わせ」とは逆方向に進むインダストリー4.0

中間部品の標準化の重要性は世界的に肯定されている流れです。

にも、ドイツのインダストリー4.0は工場の自動化などではなく、中小企業が納品する中間生産財の規格を標準化していることの方が重要であるという指摘がありました。

再利用可能という考え方

規格化や標準化による効率化は、再利用可能と言い換えても良いと思います。

一つ一つ、個別対応してすり合わせをした部品は他の顧客には使えませんが、標準化した部品は他の顧客にも使えます。

プログラムの世界

例えば、統計のレポーティングをExcelではなくRなどプログラムで行うのは、コードが再利用可能だからです。

qiita.com

お酒の世界

職人芸の世界でも獺祭のような事例がありました。職人の技を再利用可能にした取組です。

tjo.hatenablog.com

jp.fujitsu.com

広告デザインにおける再利用可能性について

では広告の世界ではどのような分野で再利用可能なものへの変革が可能でしょうか?

例えば、デザインの世界では、一文字一文字字間を詰めるだとか、手作業で調整しているところが大変沢山あります。

一方でAdobeは最先端の技術を道入してどんどん人間の手間を省いています。

japanese.engadget.com

因みについ最近、人間の切抜き作業をしたのですが一昔前とは全然切抜きの精度が向上していて、小さいサイズであれば全くのおまかせでも大丈夫そうなくらいでした。

手間がかかっている方が良いという信仰

この人のツイートもよく読んでいますが、例えばこういうことなのだと思います。

一つ一つ特別仕様にすることが良いことだと思っている人は多いのではないかと思います。

「これは手間がかかっている!」ということを良しとするのをやめるべきでしょう。

手間がかかっていないことは消費者のメリットになる

最近のスマートフォンのオススメはHUAWEIです。

生産ロットが多いということは、イニシャルコストが薄く分散されているため、同じ値段のスマートフォンでもロット数が多いものほど、良い機能が突っ込まれているわけです。

getnews.jp

China eyes breakthroughs in SOE reform - Business - Chinadaily.com.cn

工芸品と工業製品は異なるものですので、手間がかかっていることが良い場合と悪い場合とがあるということだと思います。


参考

固定相場制の影響の重要性について

人口ボーナスについて

デザインの職人芸について

ルイ・マル『死刑台のエレベーター』に見るこだわり

オールナイトでルイ・マルの『死刑台のエレベーター』『地下鉄のザジ』『さよなら子供たち』を鑑賞しました。(『鬼火』は寝ました)

地下鉄のザジ』しか観たことがなかったので、勝手にサイケデリックな人だという先入観がありましたが、『死刑台のエレベーター』はとてもロマンチックな話でしたし、『さよなら子供たち』はしみじみとした美しい作品でした。

死刑台のエレベーター』の音楽との相性、『地下鉄のザジ』の劇伴と絵のタイミングの併せ方など、色々と特徴があって関心をしましたが、ポイントポイントでの力の入れよう拘りようが半端ない人だと感じました。 これを機会に是非色んな人に観て欲しい映画です。

以降、ネタバレを少し含みます

ここが良かった!というのを忘れずに備忘録的にメモします。

オープニングがお洒落

死刑台のエレベーター』は、電話をしている男女のドアップから、徐々にカメラが引いていき、建物まで見えて行く間にテロップが載ります。『地下鉄のザジ』では、パリまで行く列車からの流れる景色がずーっと流れます。 後から、ここをオープニングにしようとしたのではなくて、最初からオープニングに使うことを意識して撮っているなと思います。

死刑台のエレベーター』の写真が泣ける

昨晩観た中で一番強く印象に残っているのがこのシーンです。

現像中の写真が出て来るシーンがあるのですが、幸せそうな2人の写真が何枚も何枚も何枚も出てきます。

本編の動画とは別撮りでスチールを撮っている筈です。 ストーリーのオチとして使うだけであれば1枚でも済むシーンなのですが、彼が何枚も撮ったのは、本作が推理やサスペンスをテーマとしているのではなく男女の純愛をテーマとしているからだと考えられます。

さよなら子供たち』の本の交換シーンが泣ける

大切な友達との繋がりである本をお互い交換し絆を確かめ合うシーンがあります。僕はこういう脚本の作り方がとても好きです。

話の流れ上は、なくても成立します(伏線にもなっていません)。 しかしここがあるのとないのとでは、2人の絆の印象は全然違うと言えるでしょう。

以前、良い脚本というものは存在する、というエントリーを書きましたが、ルイ・マルもまた、その勘所が泣けるほど素晴らしいです。

yyhhyy.hatenablog.com

拘ると効くところとそうでもないところ。

2016年に大ヒットアニメ映画となった『君の名は』は、CGのカメラワークでVコンを作ってから美術の絵を発注することで、アニメの絵の中をカメラが動いて撮影してきたような美しさが目をひく作品でした。その圧倒的な絵の美しさが全体を引っ張ったと思います。

一方で、タイプラプスのシーンは、周りの実写映像系の人からは、”え?何でわざわざアニメでやったの?”という反応がちょいちょい見られます。言われてみてから気が付きましたが、確かに美しいは美しいのですが、何か強く印象に残るシーンでもありません。

ストーリー上、そのシーンで最も伝えたいことは何か?から逆算した上での拘りがルイ・マルの拘りだと思います。撮りたかったから、やってみたかったから、といったプロダクト・アウトな発想ではなく、とてもマーケット・インな発想です。

日々の文章、企画書、記念写真、あらゆる局面で共通して持っておきたい意識だと思いました。


音楽もいいですが、雷の音のタイミングも良いです。25才で撮ったとは思えない程に細部に拘りがあります

2人の少年がとにかくイケメンです。何でもないような日々なのに2人の仲がゆっくりつまっていくのが、とても良いです。 本の交換のシーンもそうですが、タイトルのセリフが出て来るシーンでは泣いてしまいました。

当時これをどうやって作ったのか??という程、切り貼りが凄い、サイケデリックな作品です。シュルレアリストだと言われてもおかしくない飛びようです。笑いの中に哀愁があります。 可変させているところなどはどうやっているのでしょう?

RStudioからLaTeXを使ってPDFやHTMLでプレゼンテーション資料として出力したい時の設定について

以前、「RStudioからLaTeXを使ってPDFで出力したい時の日本語設定について」というエントリーを書いた時は、RStudioではSweaveが便利だと言いました。

yyhhyy.hatenablog.com

ところが最近はエラーが多く、RMarkdownを使うようになったので、その場合の設定についてメモします。

RMarikdownを使う場合

新規ファイル作成

New FileからRMarkdownでbeamerプレゼンテーションを選びます

f:id:yyhhyy:20161029180617j:plain

プリアンブルを丸っと入れ替える

注意点が幾つかあります

  • Beamerは変なサイズをしているので"\usepackage[size=a4,scale=3.5]{beamerposter}"でA4サイズになるようにする
  • 日本語のフォントを指定する"\usepackage{zxjatype}"," \setjamainfont{Noto Sans CJK JP}"
  • latexのエンジンをデフォルトから変更する。私の場合はxelatexが日本語との相性が良いと思いますので、"latex_engine: xelatex"を追記。 この際にインデントをするのも重要です。
---
title: "年齢別インターネットの利用機器状況"
author: "yhy"
date: "2016/10/29"
header-includes:
   - \usepackage[size=a4,scale=3.5]{beamerposter}
   - \usepackage{zxjatype}
   - \setjamainfont{Noto Sans CJK JP}
   - \usetheme{boxes}
   - \usecolortheme{seagull}
output:
  beamer_presentation:
    latex_engine: xelatex
---

ggplotの中でフォントを指定する

ggplotの中でもRが認識できる日本語フォントを使用する必要があります

riyoukiki_nenrei_g <- riyoukiki_nenrei_g + theme_bw(base_family="Japan1GothicBBB")

表はxtableの方が便利

表は、kableと xtableがありますが、xtableの方が便利だと感じました。主な注意点は以下です

  • xtableをprintする時にscaleboxでサイズを調整する
  • xtableをprintする時にlatexと明示する
  • xtableをprintする時にcommentをFALSEにしておく
  • 個別のセルのサイズを「p{~cm}」で固定すると横幅が入りきる

チャンクの中のコードは以下のようになります

{r echo=FALSE,warning=FALSE,error=FALSE,message=FALSE,results="asis"}
library("xtable", lib.loc="C:/hogehoge/r/R-3.2.3/library")
riyoukiki_nenrei_tb <- xtable(riyoukiki_nenrei,caption="%")
align(riyoukiki_nenrei_tb) <- "|l|l|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|"
print(riyoukiki_nenrei_tb,type="latex",comment = FALSE,scalebox=0.7)

※xtableの設定について

https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf

出力結果イメージ

f:id:yyhhyy:20161029182839j:plain

f:id:yyhhyy:20161029183503j:plain

コード全体

今回は総務省のデータを加工して使用しました

統計表一覧 政府統計の総合窓口 GL08020103

※コードの前後は、チャンク「```」で囲んでいます

---
title: "年齢別インターネットの利用機器状況"
author: "yhy"
date: "2016/10/29"
header-includes:
   - \usepackage[size=a4,scale=3.5]{beamerposter}
   - \usepackage{zxjatype}
   - \setjamainfont{Noto Sans CJK JP}
   - \usetheme{boxes}
   - \usecolortheme{seagull}
output:
  beamer_presentation:
    latex_engine: xelatex
---

## 日本語の入ったグラフ

総務省「平成27年通信利用動向調査」補問 インターネットの利用機器(加工2)

{r echo=FALSE,warning=FALSE,error=FALSE,message=FALSE}
library("dplyr", lib.loc="C:/hogehoge/R-3.2.3/library")
library("reshape2", lib.loc="C:/hogehoge/R-3.2.3/library")
library("ggplot2", lib.loc="C:/hogehoge/R-3.2.3/library")
library("RColorBrewer", lib.loc="C:/hogehoge/R-3.2.3/library")
riyoukiki_nenrei <- read.csv("kosein15_2_1.csv",header = TRUE)
riyoukiki_nenrei_m <- melt(riyoukiki_nenrei,id.vars = c("Age"))
riyoukiki_nenrei_g <- ggplot(data=riyoukiki_nenrei_m,
                             aes(x=variable,y=value,fill=variable,color=variable))
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + geom_bar(stat="identity",position="dodge")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + theme_bw(base_family="Japan1GothicBBB")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + ggtitle("インターネットの利用機")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g  + ylab("%")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + xlab("")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + geom_text(aes(x=variable,y=value,label=value),vjust=-0.5,color="black",size=4)
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + scale_fill_brewer(palette = "Spectral")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + scale_color_brewer(palette = "Spectral")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + facet_wrap(~Age,scales = "fixed")
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + theme(axis.text.x=element_blank())
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + scale_y_continuous(breaks=seq(0,100,by=10),limits = c(0,100))
plot(riyoukiki_nenrei_g)

## 日本語の入った表

総務省「平成27年通信利用動向調査」補問 インターネットの利用機器(加工2)

{r echo=FALSE,warning=FALSE,error=FALSE,message=FALSE,results="asis"}
library("xtable", lib.loc="C:/hogehoge/R-3.2.3/library")
riyoukiki_nenrei_tb <- xtable(riyoukiki_nenrei,caption="%")
align(riyoukiki_nenrei_tb) <- "|l|l|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|"
print(riyoukiki_nenrei_tb,type="latex",comment = FALSE,scalebox=0.7)

「reveal.js」でも出力できます

最近流行りのHTMLでのプレゼンテーションに出力することもRMarkdownなら簡単です

プリアンブルの変更

最初に「revealjs」パッケージをインストールしておきます。 アウトプットの出力をrevealjsに変更して、テーマを選べば終わりです。

---
title: "年齢別インターネットの利用機器状況"
author: "yhy"
date: "2016/10/29"
output:
  revealjs::revealjs_presentation:
    theme: default
    center: true
    fig_height: 5
    reveal_options:
      slideNumber: true
---

諸々の設定についてはこちら

Presentations with reveal.js

出力例

f:id:yyhhyy:20161029185246j:plain

表について

プリアンブルの下にCSSの指定を入れるとカスタマイズできて、文字色や背景色は変更できるのですが、表のサイズを上手く変更できませんでした。 こちらは、詳しい人にお願いします!!

広告代理店の営業マンは何を売っているのか?

大手広告代理店の電通で新卒社員が過労自殺をしました。

その事件を受けて色々な人が”広告代理店が何故長時間労働しているのか?”について情報発信しています。 実態としてその通りな面はあると思いつつ、若干のミスリードもあると思っているので、自分なりの意見をまとめました。

広告代理店の実態を書いたブログエントリー

どちらも既に業界には居ない人ですが、レガシィな代理店はその頃から変化はなく、大枠の実態としてはその通りです

jnakagawa.blog.jp

monthly-shota.hatenablog.com

上記のエントリーはどちらも実態を把握しているものと感じます。

しかし、現場が日々目指している”ちゃんとした営業マンの営業スタイル”は必ずしもこのような世界ではありません。

特に、クライアントの言う通りに何もかもを調整して対応することは、クライアント・代理店そして発注先の媒体社や制作会社、全てに対して負の連鎖しか生みません。

人は一緒に乗り越えた苦労は覚えているがピンチを助けてくれたことは忘れがち

先輩であり上司である人に教えて貰った教訓です。

「あの時はピンチでしたね~」と苦労を共有して乗り越えた案件というのは、クライアントと広告代理店の絆を強くします。

一方で、値引きをしたり、今回だけ特別対応ですよ?と短納期で納入したり、と一方的に広告代理店及びその先の媒体社・制作会社側だけが苦労して対応した案件というのは、その瞬間は凄く感謝されますが、時間が経つと不思議と忘れられてしまいます。

それどころか

  • 「前回は、このスケジュールで何とかなったじゃないですか?なので今回も!」
  • 「前回のあの金額が残ってしまっていて、なかなか値上げをするには追加メリットがないと。。。」

などと最初から短納期が設定されたり、最初から低収益でスタートしてしまいかねないのです。

そもそも”値引き”も”短納期対応”も”とても失礼”である。

”値引き”は自社の利益を削って対応するのですから、自社が決断すれば誰にも迷惑をかけないと思いがちですが、

  • 定価で購入した別のクライアント
  • 商品価値を維持したい媒体社・制作会社

に対して失礼です。

もし同じ案件に対して、A社には値引きして売っていたのに、B社には値引きせずに利益確保していたことが、 何年も経った後でB社に情報が逆流したら、B社の宣伝部担当者はどう思うでしょうか?B社担当の営業マンはどう対処すればいいでしょうか?

”短納期対応”は、もっと失礼です。

広告代理店は自社で作業を解決することはできません。

”明日までに修正お願い!”と言われて、企画書の文言修正であれば広告代理店内で済む話ですが、グラフィック案の修正であれば外部のデザイナーが広告代理店のクリエイターのディレクションの後に徹夜で作業をしているのです。

広告代理店が売っているのは、”媒体・コンテンツ”と”人”である

広告代理店のビジネスは大きく2つに分かれています。

  • 広告媒体・タレント・キャラクター・イベントなど値段の決まっている媒体やコンテンツの代理販売
  • 社内のスタッフ・外部スタッフなど”人”

1つ目の説明は不要でしょう。2つ目について説明します。

ちゃんと商品が売れるような広告表現が出来る優秀なクリエイターの人生は限られています。彼等の貴重な仕事時間を色んなクライアントに切り売りするのが、営業マンのしていることです。

一般的商品に例えると

  • 仕事の出来るスタッフに効率的にアウトプットして貰う = 生産効率を上げる
  • 1回辺りのスタッフの仕事をできるだけ高く請求する = 商品単価を上げる

の2つを意識して会社に利益を残すことが営業マンの役割です。

日々どういう意識を持っているのか?

  • ほんとにその作業は今、依頼する必要があるのか?
  • この案件はスタッフの経歴として誇らしいものになっただろうか?
  • スタッフのした仕事をちゃんとクライアントに説明して評価して貰えたろうか?
  • このプロジェクトはちゃんと利益が確保できて、次回も継続できるだろうか?

などを考える必要があります。

利益を確保することはクライアントの為である

スタッフを効率的に回して利益確保することが会社のミッションであると理解している管理職は、利益の出ていないプロジェクトからスタッフを外し、時に担当の営業マンの数も減らします。

値引きに値引きを重ねてスタッフを安売りしてしまったプロジェクトは、人員不足になり最終的に崩壊し、その取引は終わります。

その時に広告代理店の営業マンは困りません。何故ならまた別のクライアントの仕事があるからです。

一方でクライアント側は、優秀なスタッフが抜けることでアウトプットのクオリティが下がりますし、最終的に広告代理店に請負うだけの人員が確保されない場合は取引を別の会社にゼロから委託せざるを得なくなります。

クライアントの伝書鳩な人は自分が可愛いだけ

人は誰かに頼られたり感謝されたりすることに快感を覚えるものです。 「今回はありがとう!」「お願いなんですけど。。。」と言われると、”頑張ろう!”という気持ちになります。

しかし動き出す前に、 その無理なスケジュールや予算を請けることが、”会社として正しいことか?”、”長期的にクライアントの為になっているか?”と一歩考えてから踏み出さないと何もかもが崩壊します。

電通で自殺者が出てしまった遠因を作ったのが、現場の誰かなのか?組織の構造的欠陥だったのか?いずれにしても、正常な営業スタイルは維持できていなかったということでしょう。