2017年8月30日水曜日

【新しいブログ】 データの宇宙で彷徨うデータサイエンティストのR言語とは何ぞや的ブログ。

最近、Rに関する記事が多くなってきたので、Rに特化したブログをはじめてみました。


Rに特化した新しいブログ。まだ2記事だけ。。

しばらく様子を見ながらやっていくつもりなので、タイトルとかはたびたび変更するかもです。


2017年8月15日火曜日

朝風呂のあと日枝神社でおみくじ

朝風呂のあと、日枝神社に参拝。

恒例のおみくじを引く

結果は大吉。

何事も正直にして他人を恨まず

との戒めがあったのでそうします

2017年8月13日日曜日

【研究】機械に自分の分野を推定してもらうと。。地球惑星科学!?

日本の研究.com( https://research-er.jp/)というサイトがあり、
日本の研究者の情報が公開されています(すごい時代だ)。

そして、ここのサイトの面白いところが、
アルゴリズムで研究者の分野を推定しているところです。

自分もこんな感じで研究分野を推定されてました。

宇宙科学がちょっと入ってる!まあ、宇宙好きだし。

社会科学が大半で人文科学が次に多い。
工学も多いかと思っていたけど全然ないな。

これ見ると、文系の研究者だ。

ん!?

なんか、地球惑星科学とか宇宙科学も入っているぞ!

趣味で惑星の相互作用のシミュレーションやってるのがバレたのかな!?

・・・

まあ、宇宙好きだからいっか。

今日もdTVで宇宙のドキュメンタリーばっかり見てたし。


R dplyrとはなんぞや?大規模データも簡単に処理? ~使い方~

前回のおさらい

dplyrとは?
  1. Rで大規模データをさくさく処理するためのパッケージ
  2. 内部結合とかSQLみたいな処理もできる
  3. Rでデータ処理する人は必ず使ってる(くらいメジャーで有用)

導入は簡単!

インストールして
> install.packages("dplyr")
 

パッケージを読み込むだけ
> library(dplyr)

今回は使い方を説明

前回はRのサンプルデータを使ったせいで妙なエラーに悩まされました。なので、オリジナルのサンプルデータを作成していろいろ使い方を紹介していきます。

実はRで遭遇するエラーの多くがデータの構造や型に起因するものです。データがしっかりしていれば、大抵うまくいきます。そのため、データのところは丁寧めに説明しています。

「ちゃんとした」サンプルデータをつくろう

と、言うわけでサンプルデータの作成からはじめていきます。

そのサンプルデータですが、データフレームの構造にする必要があります。なぜなら、dplyrはデータフレームでないと使えないためです。

ちなみに、dplyrは普通のデータフレーム(data.frame)でも利用できますが、dplyr用に最適化されたデーターフレーム(tbl_df)もあります。

違いは、普通のdata.frameでデータ名を実行するとコンソールに全データが表示されますが、tbl_dfだと勝手に要約して表示されます。

(え、それだけ!?)

たぶん他にも違いはあると思うので気になる方はぐぐってください!

では、データをつくります。

> #サンプルデータ作成
> 
> #まずはベクトルデータをつくる(先頭のv.はベクトルだと分かりやすいように付けているだけです)
> v.date <- c("2017-08-01","2017-08-02","2017-08-03","2017-08-04","2017-08-05")
> v.sales <- c(100,200,300,40,500)
> 
> #データフレームを作成
> df.data <- tbl_df(date = v.date, sales = v.sales)
Error in tbl_df(date = v.date, sales = v.sales) : 
  unused arguments (date = v.date, sales = v.sales)

 あ、やっぱりエラー出た。tbl_dfではデータをつくれないか。まずは、data.frame()でデータをつくる必要があるようですね。

気を取り直して、

> #データフレームを作成
> df.data <- data.frame(date = v.date, sales = v.sales)
> class(df.data) #データ構造の確認
[1] "data.frame"

無事にエラーなくデータフレームできました。classという関数でデータ構造を確認すると、ちゃんとdata.frameになってますね。

では、データを表示してみましょう。

> #データ表示
> df.data
        date sales
1 2017-08-01   100
2 2017-08-02   200
3 2017-08-03   300
4 2017-08-04    40
5 2017-08-05   500

今回はデータ少ないので特に問題ないですが、もし、100万行くらいのデータの場合はコンソールがデータでいっぱいになります。

では、data.frameをtbl_dfに変換します。

> #tbl_dfに変換
> df.data <- tbl_df(df.data)
> class(df.data) #データ構造の確認
[1] "tbl_df"     "tbl"        "data.frame"

tbl_dfが表示されています。うまく変換できているようです。

では、データを表示してみましょう。

> #データ表示
> df.data
# A tibble: 5 x 2
        date sales
      <fctr> <dbl>
1 2017-08-01   100
2 2017-08-02   200
3 2017-08-03   300
4 2017-08-04    40
5 2017-08-05   500

data.frameの時と少し違いますね。

# A tibble: 5 x 2
は、データが5行で2列のデータであることを示します。

カラム名の下にある<fctr>と<dbl>ですが、それぞれデータの性質を意味しており、簡単に言うと、

<fctr>は文字!
<dbl>は数値!

です(正確にはちょっと違いますが)。

第三者> あれれー? dateって日付なのに文字になってるー!

はい。

このままだと、dateを日付として扱うことができません。

そこで、日付に変換します。

> #dateを日付データに変換
> df.data$date <- as.Date(df.data$date)
> 
> #データ表示
> df.data
# A tibble: 5 x 2
        date sales
      <date> <dbl>
1 2017-08-01   100
2 2017-08-02   200
3 2017-08-03   300
4 2017-08-04    40
5 2017-08-05   500

dateの下が<date>となり日付として認識されました。(日付と認識されることで、日付の計算や不等号を用いての条件検索ができるようになります。)

やっぱり、tbl_df便利ですね!
データ名で実行しただけで、データ型も表示してくれます。

これでサンプルデータ作成は終わりです。


dplyrを使ってみよう

 一気にいきましょう。簡単です!

  1. 行指定の条件抽出:filter
  2. 列指定の条件抽出:select
  3. 並び変える:arrange
  4. 新しい列の作成:mutate
  5. 複数の処理をつなげる:%>%
  6. まとめて:group_by、計算する:summarise
  7. 結合処理もできる:inner_joinなど

1.行指定の条件抽出:filter

2017年8月3日以降のデータを抽出するには、

> #filter
> filter(df.data, date > "2017-08-03")
# A tibble: 2 x 2
        date sales
      <date> <dbl>
1 2017-08-04    40
2 2017-08-05   500

これでOK!

もし、dateをdate型に変換せずに<fctr>のままだと、

> #filter
> filter(df.data, date > "2017-08-03")
# A tibble: 0 x 2
# ... with 2 variables: date <fctr>, sales <dbl>
Warning message:
In Ops.factor(date, "2017-08-03") : ‘>’ not meaningful for factors

このようにエラーとなります。

2.列指定の条件抽出:select

 salesの列だけ抽出するのは、

> #select
> select(df.data, sales)
# A tibble: 5 x 1
  sales
  <dbl>
1   100
2   200
3   300
4    40
5   500

これでOK!ベリーイージー!

3.並び変える:arrange

salesの昇順で並べるには、

> arrange(df.data, sales)
# A tibble: 5 x 2
        date sales
      <date> <dbl>
1 2017-08-04    40
2 2017-08-01   100
3 2017-08-02   200
4 2017-08-03   300
5 2017-08-05   500

はい、OK!

ちなみに降順は、

> #arrange
> arrange(df.data, desc(sales))
# A tibble: 5 x 2
        date sales
      <date> <dbl>
1 2017-08-05   500
2 2017-08-03   300
3 2017-08-02   200
4 2017-08-01   100
5 2017-08-04    40

desc(カラム名)でOK!

そう言えば昔、記事書いていました。
R 順番を変える(arrange)

4.新しい列の作成:mutate

日付の年だけ取り出した新しい列をつくるには、

> #mutate
> mutate(df.data, year = substring(date,1,4))
# A tibble: 5 x 3
        date sales  year
      <date> <dbl> <chr>
1 2017-08-01   100  2017
2 2017-08-02   200  2017
3 2017-08-03   300  2017
4 2017-08-04    40  2017
5 2017-08-05   500  2017

これでOK!!

今回はsubstringという関数も使っています。

substringの使い方は、
substring(カラム名、切り出す最初の文字の順番、切り出す最後の文字の順番)
です。

こちらも昔、記事書いていたのでご参考まで
【R】 日付データから年や月だけを抜き出す方法

5.複数の処理をつなげる:%>%

複数の処理をつなげて一緒にするには、

> df.data %>%
+ filter(date > "2017-08-03") %>%
+ select(sales) %>%
+ arrange(desc(sales))
# A tibble: 2 x 1
  sales
  <dbl>
1   500
2    40

 これでOK!

6.まとめて:group_by、計算する:summarise

年でまとめてsalesの合計を計算するには、

> #group_by summarise
> df.data %>%
+   mutate(year = substring(date,1,4)) %>%
+   group_by(year) %>%
+   summarise(total = sum(sales))
# A tibble: 1 x 2
   year total
  <chr> <dbl>
1  2017  1140

これでオッケーです!

7.結合処理もできる:inner_joinなど

実は、SQLでお馴染みの内部結合とかもできます!

結合処理にはもう一つデータが必要なのでパパっと作成しましょう。

> #まずはベクトルを作成
> v.date <- c("2017-08-01","2017-08-02","2017-08-03","2017-08-04","2017-08-05")
> v.user <- c(1000,20,300,4,50)
> 
> #データフレームを作成
> df.data_2 <- data.frame(date = v.date, user = v.user)
> class(df.data_2) #データ構造の確認
[1] "data.frame"
> #tbl_dfに変換
> df.data_2 <- tbl_df(df.data_2)
> class(df.data_2) #データ構造の確認
[1] "tbl_df"     "tbl"        "data.frame"

はい。2つ目のデータ完成しました。

では、最初のデータを新たに作ったデータを確認しましょう。

> #data
> df.data
# A tibble: 5 x 2
        date sales
      <date> <dbl>
1 2017-08-01   100
2 2017-08-02   200
3 2017-08-03   300
4 2017-08-04    40
5 2017-08-05   500
> df.data_2
# A tibble: 5 x 2
        date  user
      <fctr> <dbl>
1 2017-08-01  1000
2 2017-08-02    20
3 2017-08-03   300
4 2017-08-04     4
5 2017-08-05    50

おっと、df.data_2のdateが<fctr>になってる。

df.data_2のdateを日付に変換するのを忘れてましたね。

変換しましょう。

> #日付に変換
> df.data_2$date <- as.Date(df.data_2$date)
> 
> #data
> df.data
# A tibble: 5 x 2
        date sales
      <date> <dbl>
1 2017-08-01   100
2 2017-08-02   200
3 2017-08-03   300
4 2017-08-04    40
5 2017-08-05   500
> df.data_2
# A tibble: 5 x 2
        date  user
      <date> <dbl>
1 2017-08-01  1000
2 2017-08-02    20
3 2017-08-03   300
4 2017-08-04     4
5 2017-08-05    50

これで準備OK。

やっぱり、tbl_dfだとすぐにデータ型を確認できるのでいいですね。

さて、2つのデータが揃ったので内部結合してみましょう。両データに共通するカラムはdateなので、dateをキーにして2つのデータを結合すると、

> #inner_join
> inner_join(df.data, df.data_2, by = "date")
# A tibble: 5 x 3
        date sales  user
      <date> <dbl> <dbl>
1 2017-08-01   100  1000
2 2017-08-02   200    20
3 2017-08-03   300   300
4 2017-08-04    40     4
5 2017-08-05   500    50

こうなります。

他にも外部結合とかアンチ結合とかもできるので下記の記事をご参照ください。

---他の結合---
R 内部結合(inner join)
R 内部結合(複数key)
R 外部結合(left join, right join)
R 完全外部結合(full join)
R アンチ結合(anti join)


以上でdplyrの使い方は終わりです。

本当はまだまだ奥が深く1%も説明できてないですが、以上のことだけでも実用には十分だと思います。

次回は、tidyrという大規模データのクロス集計等を高速におこなうパッケージについて説明できればと思っています。

それでは、

一度は富士山に登ってみたい



2017年8月12日土曜日

【日本学術会議ニュース】「ニュートリノと重力波で紐解く宇宙のしくみ」が面白そう

日本学術会議からニュースメールが来たので紹介

あ、これ面白そう!

 第24回国際光学委員会総会(ICO-24)市民公開講座
「ニュートリノと重力波で紐解く宇宙のしくみ」
 日 時:平成29年8月24日(木)15:30~17:30
 会 場:京王プラザホテル 南館5Fエミネンスホール

ちょっと行ってみたいなー

---以下、詳細---

======================================================================
** 日本学術会議ニュース・メール ** No.607 ** 2017/8/10
======================================================================

〔目次〕

・【開催案内】平成29年度共同主催国際会議
             「第24回国際光学委員会総会(ICO-24)」

・【開催案内】公開シンポジウム「大地震に対する大都市の防災・減災」

・【独立行政法人日本学術振興会】
平成30年度科学研究費助成事業(科学研究費補助金)(研究成果公開促進費)
の公募に関する個別相談会の開催について


■--------------------------------------------------------------------
 【開催案内】平成29年度共同主催国際会議
             「第24回国際光学委員会総会(ICO-24)」
--------------------------------------------------------------------■

 会 期:平成29年8月21日(月)~8月25日(金)[5日間]
 場 所:京王プラザホテル(東京都新宿区)

 日本学術会議及び国際光学委員会が共同主催する「第24回国際光学委員会
総会(ICO-24)」が、8月21日(月)より、京王プラザホテルで開催されます。

 この度の国際光学委員会総会(ICO-24)では、『Light for Society』をメイン
テーマに光学・フォトニクス技術の進展と、quality of lifeの向上や、エネ
ルギー問題に代表される人類社会の抱える課題への貢献について研究発表と討
論が行なわれることになっております。

 本会議には40カ国以上の国と地域から1,000人近くの参加者が見込まれてい
ます。

 この会議を日本で開催することは、光学およびフォトニクス分野における我が
国のプレゼンス・研究水準の高さを改めて国内外に強く印象付ける絶好の機会と
なるとともに、我が国のこの分野の科学者が世界の多くの科学者と直接交流する
機会を与えることとなります。

 また、一般市民を対象とした市民公開講座として、
8月24日(木)に「ニュートリノと重力波で紐解く宇宙のしくみ」が
開催されることとなっております。
 関係者の皆様に周知いただくとともに、是非、御参加いただけますよう
お願いいたします。

 第24回国際光学委員会総会(ICO-24)市民公開講座
「ニュートリノと重力波で紐解く宇宙のしくみ」
 日 時:平成29年8月24日(木)15:30~17:30
 会 場:京王プラザホテル 南館5Fエミネンスホール

※内容等の詳細は以下のホームページをご参照ください。
○国際会議公式ホームページ(http://ico24.org/)
○市民公開講座案内(http://ico24.org/program/seminar/)

【問合せ先】日本学術会議事務局参事官(国際業務担当)付国際会議担当
 (Tel:03-3403-5731、Mail:i254@scj.go.jp)

■--------------------------------------------------------------------
 【開催案内】公開シンポジウム「大地震に対する大都市の防災・減災」
              (大地震に対する大都市の防災・減災分科会)
--------------------------------------------------------------------■

 大都市直下の大地震発生が予測される中、大都市への人・構造物・機能の過
度の集中と複雑なシステムにより震災リスクがますます高まっている。マグニ
チュード7クラスの首都直下地震が起きた場合、2万人を超える死者だけでな
く、わが国の国家予算に匹敵する規模の被害が予測されている。現状は、大都
市の賑やかで活発な生活と活動を広げつつ、震災発生を前提にして地震後の対
応のための対策・準備に重点がおかれている。一朝一夕には進まないが、将来
の都市構成を見通した中で災害を極力減じるための抜本的で具体的な活動を、
個人・家族・企業・自治体・国は、それぞれ且つ協力して推進すべきである。
本シンポジウムでは、大都市の震災軽減につながる強靭な都市・社会の構築に
向けたハード・ソフト対策と、将来的に目指すべき国土や都市の構成に関して
本分科会で議論してきたことを説明し、これをもとに大地震に対する大都市の
防災・ 減災について真剣な議論を行いたい。

ポスター:http://www.scj.go.jp/ja/event/pdf2/247-s-3-1.pdf

◆日 時:2017年8月28日(月)12:00 ~16:00

◆場 所:日本学術会議 講堂(東京都港区六本木7-22-34)
◆主 催:日本学術会議 土木工学・建築学委員会
            大地震に対する大都市の防災・減災分科会

◆参加費:無料、以下のサイトから申込して下さい
     https://ws.formzu.net/fgen/S64188825/

(司会): 田村和夫(日本学術会議連携会員、千葉工業大学工学部教授)
開会あいさつ「専門を超える視野を持って行動する努力」
  米田雅子(日本学術会議第三部会員、慶應義塾大学特任教授)
背景と課題 「最新の科学的知見にもとづき、想像力を広げた熟考」
  和田 章(日本学術会議連携会員、東京工業大学名誉教授)
「居住、活動のための適地の選択」
  浅岡 顕(日本学術会議連携会員、名古屋大学名誉教授)
「大都市地震係数の採用」
  田村和夫(前 掲)
「土木構造物・建築物の耐震性確保策の推進」
  小野徹郎(日本学術会議連携会員、名古屋工業大学名誉教授)
「人口集中、機能集中の緩和」
  福井秀夫(日本学術会議連携会員、政策研究大学院大学教授)
「留まれる社会、逃げ込めるまちの構築」
  沖村 孝(日本学術会議連携会員、神戸大学名誉教授)
「情報通信技術の強靭化と有効な利活用」
  山本佳世子(日本学術会議連携会員、電気通信大学准教授)
「大地震後への準備と行動」
  南 一誠(日本学術会議連携会員、芝浦工業大学建築学部教授)
「耐震構造の進展と適用」
  高橋良和(日本学術会議連携会員、京都大学工学研究科教授)
「国内外の震災から学ぶ、国際協力、知見や行動の共有」
  東畑郁生(日本学術会議連携会員、東京大学名誉教授)
総合討論
閉会挨拶
  東畑郁生(前 掲)

◆問合せ先:田村和夫(千葉工業大学)
      e-mail : kazuo.tamura@it-chiba.ac.jp


■---------------------------------------------------------------------
【独立行政法人日本学術振興会】
 平成30年度科学研究費助成事業(科学研究費補助金)(研究成果公開促進費)
 の公募に関する個別相談会の開催について(通知)
---------------------------------------------------------------------■

日本学術会議協力学術研究団体 御中

                          独立行政法人日本学術振興会
                             研究事業部 研究事業課

  このたび、本制度への理解を深めていただき、より円滑な実施に資するた
 め、学会または複数の学会の協力体制による学術団体等の代表者等を対象と
 して、標記相談会を開催しますので、お知らせします。
  なお、本件の詳細については、以下のURLを御覧いただくとともに、関
 係者への周知をお願いします。


【開催日時・会場】
日 時:平成29年9月11日(月)~9月15日(金)
         10:00~12:00
         13:00~17:00
会 場:独立行政法人日本学術振興会 4階会議室
住 所:東京都千代田区麹町5―3―1 麹町ビジネスセンター
相談時間:1団体につき30分を予定しております。

・独立行政法人日本学術振興会HP
http://www.jsps.go.jp/j-grantsinaid/index.html


(問合せ先)
独立行政法人日本学術振興会
研究事業部 研究事業課 研究成果公開促進費係
〒102-0083 東京都千代田区麹町5-3-1 麹町ビジネスセンター
Tel:03-3263-4926 , 4920
E-mail:seikakoukai@jsps.go.jp

★-------------------------------------------------------------------☆
 日本学術会議では、Twitterを用いて情報を発信しております。
          アカウントは、@scj_info です。
        日本学術会議広報のTwitterのページはこちらから
            http://twitter.com/scj_info
***********************************************************************
       学術情報誌『学術の動向』最新号はこちらから
     http://www.h4.dion.ne.jp/~jssf/doukou_new.html
***********************************************************************
=======================================================================
 日本学術会議ニュースメールは転載は自由ですので、関係団体の学術誌等へ
の転載や関係団体の構成員への転送等をしていただき、より多くの方にお読み
いただけるようにお取り計らいください。

【本メールに関するお問い合わせ】
 本メールは、配信専用のアドレスで配信されており返信できません。
 本メールに関するお問い合わせは、下記のURLに連絡先の記載がありますの
で、そちらからお願いいたします。
=======================================================================
 発行:日本学術会議事務局 http://www.scj.go.jp/
     〒106-8555 東京都港区六本木7-22-34


【貨幣創造】VALUで自分のVA(株のようなもの)を発行!気になる時価総額は?

そもそもVALUとは?

簡単に言えば、VAと呼ばれる自分の株を発行してビットコインと交換できるというサービス。

そのため、VAを換金、例えば、日本円で引き出したいときは、まず、自分のVAと誰かのビットコインを交換する必要があり、得られる金額は、その後のビットコインと円のレートによって変動する。

言わば、ビットコインを基軸とするビットコイン本位制のような通貨だ。

もっと分かりやすい説明は下記をご参照



VAを発行してみた

数週間前にVAの発行申請をしたまま今日まで完全に忘れていた。。

ほとんどログインもしてなかったので、アカウント消されてないかも心配しつつ、ログイン!


2017/08/12時点の評価額は57万1千961円なり

あっ、なんか発行できてる!

現在の評価額は57万円くらいかー。高いのか安いのか分からない。。。

ちょっとぐぐってみるか。

これからVALUを始める方へ、MyValu発行申請は慎重にね!
この記事によると、
  • 連結するFacebook、Twitter、Instagramのアカウントのフォロワー数が少ないと、売り出し時の時価総額が低い
  • 売り出し時の1VAの単価は、時価総額÷発行VA数
  • 発行VA数は1VAの単価が一定金額内(¥100-1000)に収まる選択肢しか選べない
  • 売り出し時の時価総額が低い人は、最初に設定できる発行VA数が100しか選べない
  • 一度、公開してしまうとVALUの追加発行はできない
だそうです。

なるほど、SNSのフォロワー数が時価総額に関係するのか。。

自分の場合は、facebookが35人くらい(少ない)、twitterが1400人くらい(多い?)という感じなので、おそらくtwitterのフォロワー数のお陰で価値が付いた??

他もぐぐってみると、
「VALU」に登録しようとしたけど俺が無価値すぎて断られたw
とのこと。

なるほど、フォロワー数少ないとVAを発行することもできないのか。。

twitterやっててよかった(^_^;)


*追記

VALUの小川社長と少し話をさせて頂きました(3分くらい)。

と言うのも、VALUをはじめて知ったとき、
自分が5年前くらいから目指している

「誰もが貨幣を創造できる社会の実現」

に最も近い仕組みだと衝撃を受けたため。

そこで、

「ユーザが発行するVAが新たな通貨や基軸通貨になるような世界観を目指していますか?」

という質問をしてみました。

(おそらくYESだろうから自分のやることはもうないな。隠居するか・・・)

と、思っていたところ、なんと答えはNOでした。

さらにNOの理由を聞いてみたところ、
小川さんとしては、

「VAは貨幣にならない。」
「ビットコインを基軸通貨にしたい。」

とのこと。

これを聞いて、残念とは思いつつ、一気にやる気が出てきました。

この後、すぐに友人に連絡して、翌日から新しい貨幣づくりを開始!

隠居が少し伸びました。




2017年8月11日金曜日

R dplyrとはなんぞや?大規模データも簡単に処理? ~導入編~

dplyrとは

  1. Rで大規模データをさくさく処理するためのパッケージ
  2. 内部結合とかSQLみたいな処理もできる
  3. Rでデータ処理する人は必ず使ってる(くらいメジャーで有用)
以上!!

あとはだらだら使い方を説明。

使い方

まず、データを用意する。

用意するデータは、ドイツなどの株価指数のデータ。

(全然大規模データじゃないけど。。)

> #Rに最初からあるサンプルデータ(EuStockMarkets)を使う
> #中身は主要株価指数:DAX(ドイツ)、SMI(スイス)、CAC(フランス)、FTSE(イギリス)
> #データの先頭部分を確認してみる
> head(EuStockMarkets)
         DAX    SMI    CAC   FTSE
[1,] 1628.75 1678.1 1772.8 2443.6
[2,] 1613.63 1688.5 1750.5 2460.2
[3,] 1606.51 1678.6 1718.0 2448.2
[4,] 1621.04 1684.1 1708.1 2470.4
[5,] 1618.16 1686.6 1723.1 2484.7
[6,] 1610.61 1671.6 1714.3 2466.8
> #作図
> plot(EuStockMarkets)

plot(EuStockMarkets)の結果。上からドイツ、スイス、フランス、イギリスの主要株価指数の日次データ

グラフにすると分かりやすい♪

*このデータを使ったせいで後ほど不思議なエラーに遭遇します

準備①:dplyrをインストールする

下記のコードを実行。

> install.packages("dplyr")

これを実行すると、勝手にダウンロード・インストールが始まる。

インストールできたらdplyrを読み込む。

> library(dplyr)



準備②:データをtbl_dfというデータ構造に変換

(まあ、普通のデータフレーム:data.frameでも操作可能だけど。。)

ちなみに、dplyrを読み込まないと、、

> #tbl_df(データフレーム拡張したデータ構造)に変換
> EuStockMarkets_df <- tbl_df(EuStockMarkets)
Error in tbl_df(EuStockMarkets) : could not find function "tbl_df"

あ、エラーだ。
肝心のdplyr読み込むの忘れるとエラーになります。。

ちゃんと、dplyrを読み込むと、

> library(dplyr)

 次のパッケージを付け加えます: ‘dplyr’ 

 以下のオブジェクトは ‘package:data.table’ からマスクされています: 

     between, first, last 

 以下のオブジェクトは ‘package:stats’ からマスクされています: 

     filter, lag 

 以下のオブジェクトは ‘package:base’ からマスクされています: 

     intersect, setdiff, setequal, union 

> #tbl_df(データフレーム拡張したデータ構造)に変換
> EuStockMarkets_df <- tbl_df(EuStockMarkets)

エラーでません。

ちなみに、tbl_dfに変換しておくと、データ名実行でデータの要約が表示されます。

> EuStockMarkets_df
# A tibble: 1,860 x 4
       DAX    SMI    CAC   FTSE
     <dbl>  <dbl>  <dbl>  <dbl>
 1 1628.75 1678.1 1772.8 2443.6
 2 1613.63 1688.5 1750.5 2460.2
 3 1606.51 1678.6 1718.0 2448.2
 4 1621.04 1684.1 1708.1 2470.4
 5 1618.16 1686.6 1723.1 2484.7
 6 1610.61 1671.6 1714.3 2466.8
 7 1630.75 1682.9 1734.5 2487.9
 8 1640.17 1703.6 1757.4 2508.4
 9 1635.47 1697.5 1754.0 2510.5
10 1645.89 1716.3 1754.3 2497.4
# ... with 1,850 more rows

また、普通のデータフレームに変換して実行すると、

> data.frame(EuStockMarkets_df)

全データがコンソールに表示されます。
(今回は省いていますがコンソール画面はデータでいっぱいです)

あと、データ構造(クラス)を確認すると、

> class(EuStockMarkets_df)
[1] "tbl_df"     "tbl"        "data.frame"

ちゃんとtbl_dfになっています。
(data.frameも表示されているので普通のデータフレーム型としても扱えそうです)


使い方①:filterでほしい行のデータを抽出

方法は、filter(データ名, 条件)という感じ。

やってみると、

> filter(EuStockMarkets_df,  DAX <= 1450)
Error in filter_impl(.data, quo) : matrix as column is not supported

ん、エラーだ。。

意味はmatrixはサポートしてないよーて感じかな。
いやでもtbl_dfに変換しているからmatrixになってないはず。
一応、調べると、

> class(EuStockMarkets_df)
[1] "tbl_df"     "tbl"        "data.frame"

やっぱりmatrixになってない。おかしいなー。

元のサンプルデータは、、、

> class(EuStockMarkets)
[1] "mts"    "ts"     "matrix"

matrixだ。でも、変換してるから関係ないはず。。

んー、なぞだ。これバグでは??

元のサンプルデータがmatrixだから変な挙動してるのかな。

一回、データを書き出して新しいデータとして読み込んで実行してみるか。

> #write.csvでcsvファイルを書き出す *row.names = Fは行番号を書き出さない処理
> write.csv(EuStockMarkets,"C:/Users/mtsuj/data.csv",row.names = F)

> #freadはcsvを高速で読み込む関数
> #*data.tableをインストールしてlibrary(data.table)で読み込む必要
> EuStockMarkets_df <- fread("C:/Users/mtsuj/data.csv") 

> #freadで読み込むとdata.tableとdata.frameのデータ構造になる
> class(EuStockMarkets_df)
[1] "data.table" "data.frame"
> 
> #今のデータ構造でも問題ないが、今回はtbl_dfに変換する
> EuStockMarkets_df <- tbl_df(EuStockMarkets_df)
> class(EuStockMarkets_df)
[1] "tbl_df"     "tbl"        "data.frame"
> 
> #filterでドイツの株価指数が1450以下のものを抽出
> filter(EuStockMarkets_df,  DAX <= 1450)
# A tibble: 6 x 4
      DAX    SMI    CAC   FTSE
    <dbl>  <dbl>  <dbl>  <dbl>
1 1402.34 1788.0 1611.0 2446.3
2 1421.49 1820.5 1612.5 2488.4
3 1434.61 1858.2 1654.2 2517.1
4 1446.32 1870.3 1673.9 2538.8
5 1437.65 1878.4 1657.3 2541.2
6 1441.57 1881.5 1655.1 2557.2

お、いけた。

Rってこうゆうところありますよね。。

他の使い方は次回ご紹介

*使い方編はこちら
R dplyrとはなんぞや?大規模データも簡単に処理? ~使い方~

2017年7月29日土曜日

【学会】第4回世界社会科学フォーラム(WSSF2018)の案内

世界社会科学フォーラムの案内が来たのでメモ

人間の安心、安全、生活基盤の確保がテーマとのこと

サブテーマに、Economicsはないんだ


---以下詳細---

======================================================================
** 日本学術会議ニュース・メール ** No.605 ** 2017/7/28
======================================================================

〔目次〕

【開催案内及びセッション公募】
 平成30年9月開催「第4回世界社会科学フォーラム(WSSF2018)」

■---------------------------------------------------------------------
 平成30年9月開催「第4回世界社会科学フォーラム(WSSF2018)」
の開催とセッション公募について
----------------------------------------------------------------------■
 国際社会科学評議会(ISSC)が3年に一度開催している『世界社会科学
フォーラムWorld Social Science Forum(WSSF)』が、いよいよアジアで
初開催されます。
 社会科学、行動科学の様々な学問分野や関連機関を横断し学際的議論を
深める場で、日本のリーダーシップが問われます。只今セッションの公募
が行われています。
 参画のご検討及び関係各位への周知をお願いいたします。


 この度の第4回世界社会科学フォーラム(WSSF2018)では、『Security
and Equality for Sustainable Futures 』をメインテーマに、世界中が
直面している人間の安心、安全、生存基盤の確保という問題に迫ります。
社会保障や地政学的な安全保障のみならず、バイオセキュリティ、サイバー
セキュリティ等も含めて『Security』をどうすれば持続的に保障できるか、
また多様性を維持しつつ『Equality』と持続性の危機を打開するにはどうす
ればよいか、研究発表と議論が行われます。

 本会議には85ヵ国・地域から約1,000名の参加が見込まれています。

 この会議を日本で開催することは、持続性のある科学技術と社会のイノ
ベーションにおいて我が国の社会科学関係者の国際的なリーダーシップを
提示することにつながります。また本会議のため中国、韓国、台湾、ASEAN、
インドなどと共同してアジア各国・地域の社会科学研究機関と連携するこ
とで、アジアの各機関との今後のネットワーク拡大の基礎を確立できます。
  国内的には“人文・社会科学”の問題関心を再構成する絶好の機会と言
えます。
 併せて、広い意味でのSecurityを一つの柱とし、エネルギ―、環境保護、
持続可能な社会や防災の問題にも対峙するこの大会を東日本大震災を経験
した日本、中でも平成28年熊本地震に遭遇した九州の地で開催することは、
世界各地から参加するあらゆるステイクホルダー及び一般市民にとっても
大きな意義があります。


会議名:第4回世界社会科学フォーラム(WSSF2018)
会 期:平成30年9月25日(火)~9月28日(金)[4日間]
会 場:福岡国際会議場(福岡市)

テーマ:Main theme: “Security and Equality for Sustainable Futures”
         持続可能な未来のための生存・安全の確保と平等

サブテーマ:
 1.Sustainability and security
  持続可能性と生存・安全
 2.Cybersecurity, cyberattacks, hybrid warfare
   サイバーセキュリティ、サイバー攻撃, ハイブリッド戦争
 3.Human security
   人間の安心・安全
 4.Security and the 2030 Agenda
   生存基盤の確保と国連採択課題:持続可能な開発のための2030アジェンダ
 5.Globalization, diversity, and cultures of belonging
   グローバリーゼーション、多様性と文化的帰属
 6.Development and inclusion in urban and rural areas
  都市と地方を包摂する開発
 7.Gender equality and security
  男女平等と人間の安全保障
 8.Health, safety and biosecurity
  健康、安全とバイオセキュリティ
 9.Freedom, democracy and security
  自由、民主主義と安全確保

主催:International Social Science Council(ISSC),
    国立大学法人九州大学

スケジュール:
 ・セッション公募   平成29年 6月 1日~9月1日(〆切予定)
 ・採択セッション発表 平成29年11月30日 (予定)
 ・ペーパー公募    平成29年12月 1日~平成30年3月1日(予定)


 なお、この会議は、日本学術会議との共同主催となる予定です。

※内容等の詳細は以下のホームページをご参照ください。
○WSSF2018公式ホームページ(http://www.wssf2018.org
〇WSSF2018セッション公募要項
(http://www.wssf2018.org/call-for-session-proposals.html)

【問合せ先】WSSF事務局(九州大学本部第一庁舎内)
 (Tel:092-642-2257、Mail:wssf2018@jimu.kyushu-u.ac.jp)

2017年7月26日水曜日

【貨幣創造】「溜池会議」の後、おみくじを引いたら…

後半登場するキーパーソン!?

これは溜池ではなく愛宕神社内の池。鯉がいっぱい。

◇溜池会議


今日は、新たな貨幣創造に向けた「溜池会議」を開催

そもそも貨幣とは何か?、生成崩壊シミュレーションの結果、そのメカニズムなどに関する今までの研究成果をかなりかみ砕いて説明

そして、そこから導き出される「可能性」を実現するための具体的な方法を議論

今まであまりにものんびりし過ぎた。。

なので、ちょっと動きだそう

世間(この辺の分野の最先端と呼ばれる人たち)がまだこの「可能性」を不可能だと思っている内に。。



◇会議後、愛宕神社に参拝


いつも何か始める前は神社に参拝しておみくじを引くのが自分ルール

例えば、前職や前々職からの転職時にも神社に参拝しておみくじを引いてきた

(ちなみに、すべて大吉。まあ、大吉じゃないと見送ってたからだけど)

さて、今回は。。

・・・

・・・雨の中、神社へ向かう・・・

・・・

到着。

まずは、愛宕神社のものすごい急な階段を上る(雨が結構降っていたのでちょっと怖かった)。むかし、この階段を馬で駆け上った武士がものすごい出世したとのこと(マジで!ほぼ壁だけど。。)。

愛宕神社の階段。出世階段とも呼ばれているらしい。

・・・階段を上りながら思ったこと・・・

・・・今も昔もリスクを顧みずに勝負した人が出世するってことか。

・・・上ばかり見てると足を踏み外しそうになるな。

・・・(はあ、はあ、結構疲れる)・・・

いろいろ思いを巡らせながら階段を上るとすぐに神社。

改めて見ると周りに緑多いな

いつも通りの参拝(手を合わせて「感謝!」と心の中で言う)を済ませたあとは。。

おみくじだ。

ちなみに、おみくじを引く理由の一つは自分への戒めのため。

(基本的に人の言うことを聞かないので、おみくじに戒めてもらって日頃のおこないを反省しています)

さて、おみくじの結果は。。

・・・
・・・
・・・

おみくじ。大吉だ。
あ、大吉だ。

内容は、

身も進み財宝も出来て立身出世する事は 春の暖かい日に美しい花の野を心楽しく遊び行く心地にてよき人の引立にあずかります けれど心正しくないと災いがあります

とのこと。

おおー、よい感じだ。

でも、やっぱり最後に戒めがあるな。

「心正しく」は結構難しいな。正しいという価値観は多様だし。。

とは言え、貨幣創造の事業は「儲ける」ではなく「世界を変える」に完全に振り切ってやろうと思っているから、この哲学が変わらなければ「心正しく」になる気がする!

・・・

ちなみに、おみくじを引くところにねこがいました。

ちょっと呼んでみたけど全然振り向いて頂けませんでした

ご尊顔。

眠ってるけど耳はしっかりこちらに

しばらく横に座っていたらちょっとだけ顔を見れました

・・・

・・・(青年よ、やるか、やらぬかじゃ)・・・

・・・

と、しゃべり出しそうで

なんだか、ジブリっぽかった



【学会】第22回進化経済学会九州大会の案内

第22回進化経済学会の案内がきたのでメモ

九州はちょっと遠いかも。。

弟は九大だから近いな

---以下詳細---
九州大会のHPが公開されましたのでご連絡いたします。
学会HPともリンクを頂いておりますので、そちらからも訪問いただけます。まだ十分な情報を掲載するには至っておりませんが、順次充実させていく予定でございます。

 URL:https://sites.google.com/view/jafee-kyushu-2017

また、本年度のオータムコンファレンスは、9月23日(土)13時〜九州大学箱崎キャンパスにて開催予定でございます。同コンファレンス関連の情報も公開しておりますので、ご覧いただきたく存じます。詳しい情報につきましては追って本ML・九州大会HPにてご連絡したく存じます。

*オータムコンファレンスは、週末・秋分の日となっております。この時期の福岡では。例年ホテルの予約が取りづらいという報道もなされております。
参加をご予定の方は、早めの宿泊場所のお手配・確保をお願い申し上げます。

2017年7月25日火曜日

【日本認知科学会】サマースクールの開催

研究室メールで日本認知科学会のサマースクールの案内が来たのでご紹介

---以下詳細---
日時: 2016年8月29日(火)13:00 ~8月31日(木)15:30
場所: 神奈川県箱根市 箱根湯本富士屋ホテル(小田急線箱根湯本駅より徒歩)
定員: 60名(若手研究者を優先します)
対象: 広く認知科学に興味を持つ学生・研究者。日本認知科学会の会員に限りません。
参加費:25,000円(一日あるいは二日の部分参加の場合は15,000円)
宿泊費:14,000円(3名~5名での相部屋)
        28,000円(シングル)
*宿泊費には夕食および朝食が含まれます。
*学生の参加者には日本認知科学会から10,000円の補助(上限30名)があります。
問合せ先: 日本認知科学会事務局 jcss@jcss.gr.jp
主催: 日本認知科学会
申込:https://conv.toptour.co.jp/shop/evt/2017summer/

プログラム
8月29日(火)
12;30~13:00 受付
13:00~13:00 開会の挨拶
13:00~18:00 セッション1
「良い理論を見極め、適切な仮説を生成するレッスン」
講師:川合伸幸、鈴木宏昭、岡田浩之、他

(1部:良い理論とは)
 認知科学の研究には、実験や観察、調査がつきものですが、何の理論や仮説もなくデータを収集することはできません。それらは、必ず何らかの仮説(理論)に基づいて取得されます。しかし理論や仮説には「良い理論」と「あまりよくない理論」があります。良い理論(仮説)とはどのようなものか、まず物理学の理論をモデルに説明します。いくつかの練習問題を通じ、良い理論とはどのようなものかを理解してもらうことを目指します。
(2部:仮説の検証方法)
 良い理論はよい仮説を生成します。しかし、認知科学の仮説や説明は、物理学や生物学のように物質や細胞などに還元できるものは多くありません。認知過程や心の働きを説明するためには、媒介変数や隠れた前提を仮定したり、いくつかの仮説(前提)をつなげる必要が生じることがあります。帰納法に演繹法を組み合わせることで、天王星の軌道の動きを説明できなかった当時のニュートン力学が海王星の存在を予測し実際に発見されたように、これまでの多くの事象を説明するとともに、新たな予測(仮説)を生成するもあります。
 このような推論をアブダクション(仮説推論)といい、認知科学や多くの科学分野では、アブダクション(仮説推論)を一般的に行っています。しかしなかには、「風が吹けば桶屋が儲かる」ほどではないにしても、後づけの説明が塗り重ねられ、とても論理的な説明になっていない、と思えるようなものもあります。
 仮説は実験や観察によって検証されねばなりませんが、認知科学の研究では仮説そのものの真偽を直接観察できないこともあります。そこで、アブダクション(仮説推論)によって仮説が正しいかを検証することになります。仮説推論は、非演繹的な推論の1つですが、演繹法とも組合わさっているので、まず帰納法と演繹法、さらに仮説推論との相違を説明します。そして、仮説推論で生成された仮説が妥当なものとして受け入れられるためには、「検証」だけでなく「反証条件」も与えている必要があるということを説明します。実際にいくつかの例題で、隠れた前提などを考えてもらいます。これらを通じて、正しい(科学的に妥当な)仮説の生成方法を理解してもらいます。

(3部:人間や動物行動に関する「よくない理論」と「良い理論」)
 認知科学に近づけて考えるために、人間や動物行動に関する「よくない理論」と「良い理論」を紹介します。良い理論は適切な仮説を生成する原動力となりますが、なかにはまったく仮説を生成できない「理論」もあります。いっぽうで、直感と反する仮説を生成し、実際にそれが確かめられるような理論もあります。それらの例として「バイオリズム理論」と「連合学習理論」を取り上げ、良い理論や仮説に必要な条件(検証(反証)可能性、簡潔性、普遍性、多産性、データとの整合性)について整理します。そしてその「良い理論」がDavid
Marrの3つの水準とどのように対応するかや、「強化学習理論」とどのように対応しているかを確認します。
 そして、強化学習と脳機能画像に関する2ページほどの学術論文(邦訳済み)を読み、そこではどのような仮説が提示され、どのような事実でもってそれが検証されたか、前提はなにか、反証条件は与えられているか、などを読み解いてもらいます。また、その研究は、Marrの3つの水準とどのように対応しているかを考えてもらいます。これらの作業は、3−4人でグループで議論することを想定していますが、なるべく領域が重ならないほうが、領域固有の知識を補いあい、創発的な発想が生まれるようです。そのために、事前にご自身の専門領域(複数可)をお聞きし、これらの基づいて翌日の午前中のワークショップの班分けを行います。

18:00~19:00 休憩
19:00~ 夜のセッション
若手講演
講師氏名:米田英嗣
所属:京都大学白眉センター
講演のタイトル:物語理解における共感:定型発達者と非定型発達者に基づく検討
講演の概要:
 物語に書かれた情報を理解する際に、主人公への感情移入や、登場人物への共感といった反応が生ずることがある。こうした反応は、物語に書かれた出来事があたかも現実に起こっていることであるかのように疑似的に体験されるシミュレーションによって生起すると考えられる。本プレゼンテーションでは、第一に、定型発達者を対象とした、自分と性格が似ている他者に対する理解の促進、共感の生起についての研究を紹介する。第二に、非定型発達者として自閉スペクトラム症の方々を対象とした物語における登場人物の心情理解および援助動機についての研究と、fMRI(functional
Magnetic Resonance
Imaging、機能的磁気共鳴画像法)を用いた、自閉スペクトラム症者による自閉スペクトラム症者に対する共感的反応についての研究を紹介する。最後に、物語に記述された世界がどのように現実世界に拡張していくのか、物語を読むことを通じて共感性を育成することは可能か、について議論したい。

※翌日のセッションの予習を行います


8月30日(水)
9:00~12:00 セッション1のつづき
「仮説を読み解くレッスン」
講師:川合伸幸、鈴木宏昭、岡田浩之、他

 認知科学会で発表賞を受賞すると、その要旨が「認知科学」誌に掲載されます。それらの論文要旨(発表概要?)を読み、これまでのセッションで学んだことをもとに、その研究での仮説はなにか、どのような仮定(仮説)にもとづいて分析が行われているか、その仮説には反証可能性は与えられているか、総じて適切な仮説や説明であるかなど、を読み解いてもらいます。3−4人でグループで意見を出し合いながら、仮説を読み解いてください。各班ごとに別々の論文(要旨)を読みますが、それぞれの班にシニア研究者がチューターとしてつきます。班内で議論をまとめて、その研究での仮説はどのようなものであり、そしてどのように支持された(されなかった)のか、などこちらで用意する設問に答えながら、研究を紹�!
 �してもらいます。
 このような作業を通じて、無自覚に受入れていた「もっともらしい仮説や説明」を批判的に咀嚼し、自身の研究で生成する仮説をより高いレベルのものにしてもらうことを期待しています。これらの準備があれば、安西先生によるレクチャーがより深く理解できると考えています。

12:00~13:00 昼食休憩

13:30分~18:00 セッション2
「認知研究の革新はいかにして起こるか~帰納と理論/データと概念/観察と説明/機能主義と構造主義~」
講師:安西祐一郎(日本学術振興会)

概要
認知に関わる幾多の研究の中で、「時代を画した研究」はどんな特徴を持っているのだろうか?
それ以前に、認知研究におけるデータ、仮説、理論とは何だろうか? また、心理学や医学を源とするさまざまな実験方法論は常に妥当なのだろうか?
特に、多くの研究者が関心を持っている(ようにみえる)「心のプロセス」に関わる研究について、データ、仮説、理論とはいったい何を指しているのだろうか?
これらの設問は、多くの認知研究にあてはまる設問と考えられるが、そのうえで、時代を画する認知研究は、どんな特徴を持ち、どのようにして革新を引き起こしたのだろうか?
この講演では、演者が30歳のころに行った認知方略の学習に関する研究(Y.Anzai and H.A.Simon, The Theory of
Learning by Doing, Psychological Review, 86(2), 124-140,
1979)を中心として、(1)経験科学における帰納と理論の関係、(2)「心」の研究におけるデータと概念および観察と説明の関係、(4)「心」の研究における機能主義と構造主義の相克の克服などについて述べる。(この論文は、当時の心理学的研究ではほとんど受け入れられていなかった発話プロトコール分析とコンピュータシミュレーションを併用し、認知スキルの研究に新しい時代を拓いただけでなく、人工知能から臨床研究に至る多様な分野に影響を与えた。講演ではさらに、この論文で述べた理論を船の操舵に適用した研究(Y.Anzai,
Cognitive Control of Real-Time Event-Driven Systems, Cognitive
Science, 8(3), 221-254, 1984) も参考にする。)
講演の内容は、サマースクール初日(8月29日)および8月30日(2日目)午前中のセッション1の内容に深く関係しており、また、夜のセッションにもつながる。

18:00~19:00 休憩
19:00~ 夜のセッション
「認知研究における理論・仮説・データとは~時代を画す認知科学方法論を創り出そう」講師:安西祐一郎(日本学術振興会)

概要
夜のセッションは、2日間の議論を総括しながら、「時代を画す認知科学方法論」を参加者一人ひとりが自ら創り出すためのきっかけとしたい。
重要なことは、参加者が
(1)従来の学問分野に囚われない自由闊達な心を持つこと
(2)分野・学会・研究室などによって固定されがちな研究方法や実験方法などに囚われない自由闊達な心を持つこと、ただし
(3)「心」という対象が、古今東西の俊秀を吸い寄せ、また撥ねつけてきた、興味深いがきわめて複雑な研究対象であることを自覚すること、そして
(4)そのような対象に対して、大雑把な演繹的かつ素人的推論でなく、多様な現象から帰納的かつ緻密に推論したプロフェッショナルな理論を提示し、理論と現実のギャップを体験することで現実を深く理解していく営為には、簡単ではないがワクワクする面白さがあることなどを理解し共有することである。
知覚、記憶、情動、イメージ、思考、言語、社会性、インタラクション、学習、発達、進化、その他、参加者が関心を持つテーマを中心に、多様な分野における理論・仮説・データの問題について、「時代を画す認知科学方法論」の創造を目標に、活発な議論できればと考えている。


8月31日(木)
9:00~12:00 セッション3
「世界理解の新しい試み -質感の科学から-」
講師:小松英彦(玉川大学脳科学研究所)
   山口真美(中央大学文学部)
   佐藤いまり(国立情報学研究所)

概要
質感認知は感覚情報をもとに、物の素材や状態を推定する機能である。外界の事物の生物的な意味の判断をする上で質感認知は欠かせない。また物を握ったり持ち上げたり運動系を介して相互作用する時にも質感認知は重要な働きをする。更に物の価値や美醜の判断の基礎には質感認知の働きがある。
世界を構成するすべての事物が固有の質感を持つので、質感は極めて多次元で複雑な情動である。質感がどのように生み出され、それをヒトがどのように認知しているかを理解することは簡単ではない。しかし、そのようなプロセスの理解抜きには、ヒトが世界を認識する働きの理解には本質的な欠落が伴うだろう。近年、工学と心理物理学と脳科学の接点で、質感認知の科学的理解が進み始めている。その一旦を紹介し、世界を理解する知の働きについてあらためて考えるきっかけとしたい。

12:00~13:30 昼食休憩

13:30~15:00 セッション3の続き

15:00~15:30 クロージング
15:30 閉会

2017年7月24日月曜日

【マジで!】ビックリマンチョコ買ったら変なスーパーゼウス出てきた!?

スーパーで買い物してたら懐かしのビックリマンチョコを発見。

思わず大人買いしてしまった!


大人買いと言っても8個くらいだけど。。

いっきに全部開けたいけど。。小食なのでとりあえず2個だけ。。


パッケージは違うがどちらも同じシリーズ(復刻セレクション)

開けてみよ。。。

スーパーゼウス??とサタンマリア

おおー、スーパーゼウスだ!

あ、でも格好がなんかいつもと違うぞ。


このスーパーゼウスはアーバンリサーチ推薦とのこと

なるほど。このスーパーゼウスはアーバンリサーチの服きてるのか。

(アーバンリサーチの社長ってビックリマンチョコ好きなのかな?)

とりあず、スーパーゼウスGETできたのでテンション高め。

明日、百均で写真立て的なもの買ってデスクに飾ろう。


おいしくいただきました

以下、ビックリマンチョコあるある。

「チョコおいしいけど、粉が散らかりがち。。」


---
あとでパッケージの後ろ見てみたら、
URBAN RESERCH 20周年 × ビックリマンチョコ発売40周年
って書いてた。



2017年7月22日土曜日

R 数字の桁数増やしてもメモリ増えないぞ!? object.sizeで実験してみた

object.sizeを使うと、ベクトルやデータフレームなどのオブジェクトのメモリ使用量を確認することができるのだが。。試しに、ちょっと実験してみたら不思議なことが起こった。

まず、サンプルのベクトルとデータフレームを用意する。

> v.x <- c(1,2,3)
> v.x1 <- c("a","b","c")
>
> v.y <- c(1,2,30)
> v.y1 <- c("A","B","C")
>
> df.x <- data.frame(id = v.x, name = v.x1)
> df.y <- data.frame(id = v.y, name = v.y1)

object.sizeでメモリ使用量を調べる。

> object.size(v.x)
72 bytes
> object.size(v.x1)
216 bytes
> object.size(df.x)
1360 bytes
> object.size(v.y)
72 bytes
> object.size(v.y1)
216 bytes
> object.size(df.y)
1360 bytes
>

ふむふむ。なるほどー。

やっぱり、数字(v.x)よりも文字列(v.x1)の方がメモリ食ってるな。

てか、72 bytes(v.x)のベクトルと216(v.x1)のベクトルでデータフレーム(df.x)を作ると、メモリが1360 bytesに跳ね上がるのかー

v.x1とv.y1の結果を見ると、小文字と大文字でメモリ使用量に変化はなさそう。

あと、v.xとv.yもメモリ使用量が変わっていないので、数字が一桁から二桁に増えたのが混ざってもあまり影響はないのかー。ちょっと、桁数をすごい増やしてみるか。

> v.z <- c(1,2,3000000000000000000000000000)
> object.size(v.z)
72 bytes

あれ??桁数すごい増やしたけど全然メモリ増えない!マジで!

なんでだろ??


R 関数の前に「?」を付けるとヘルプが表示される!

Rって関数の前に「?」を付けるとヘルプ表示されんだ!っと今さらながら気づく

例えば、

>  ?sum

とすると、ブラウザが起動してヘルプが表示される。
RStudioを使っている場合は、下記のようになる。

RStudioを使っていれば横のところに表示される

とても便利!!

他もやってみよ。

>  ?write.csv
>

(↓ヘルプから抜粋)

Data Output

Description

write.table prints its required argument x (after converting it to a data frame if it is not one nor a matrix) to a file or connection.

Usage

write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
            eol = "\n", na = "NA", dec = ".", row.names = TRUE,
            col.names = TRUE, qmethod = c("escape", "double"),
            fileEncoding = "")

write.csv(...)
write.csv2(...)

おお!便利だ!

group_byも調べてみよー

>  ?group_by
No documentation for ‘group_by’ in specified packages and libraries:
you could try ‘??group_by’
>

なるほど。パッケージ読み込まないとやっぱりだめか。。

対象の関数(group_byなど)を使えるようにするためのパッケージ(dplyrなど)を読み込めばヘルプを表示できる

dplyrを読み込めばヘルプ表示できた!

今度から「?」使ってみよー



2017年7月19日水曜日

R "rbindlist(l, use.names, fill, idcol) でエラー: "の解決法

もし、rbindを実行し下記のエラーとなったら(rbindとは)、

>  dt.log <- rbind(dt.log,dt.log_2)
 
 Show Traceback

 Rerun with Debug
 rbindlist(l, use.names, fill, idcol) でエラー:
  Class attributes at column 10 of input list at position 2 does not match with column 10 of input list at position 1. Coercion of objects of class 'factor' alone is handled internally by rbind/rbindlist at the moment.


↓連結したいデータをdata.frameで読み込むと解決

>  dt.log <- rbind(data.frame(dt.log),data.frame(dt.log_2))
>
 


今回のエラーは、連結したいデータがdata.tableでデータ量が多い(100万レコード以上くらい)ときに起きがち


2017年7月5日水曜日

【ドコモ本気出した】dデリバリー大感謝祭

全員に3900ポイントもすごいけど、39万円でポインコ確定も異次元すぎる


ほかのキャンペーンも併用すると何ポイントになるんだろう

ドコモ本気出したな


2017年7月3日月曜日

R write関数で何ができたっけ?

Rでファイルを出力する際、「あれ、行番号を削除する命令なんだっけ?」とか、「引用符(”:ダブルクオーテーションマーク)を外すのはどうするんだっけ?」とかついど忘れしがち。

そんなときは、Rのマニュアルを見てみよう!
なるほど、行番号はrow.names、引用符はquoteだな。ふむふむ。。

write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
            eol = "\n", na = "NA", dec = ".", row.names = TRUE,
            col.names = TRUE, qmethod = c("escape", "double"),
            fileEncoding = "")

write.csv(...)
write.csv2(...)

詳細は参考サイトにて

参考サイト


2017年6月24日土曜日

【R】 ‘Rcpp’ という名前のパッケージはありません

新しいPCを購入し、早速、RとRStudioをインストール。

dplyrをインストールして、いろいろ分析しようと思ったら、

  • ‘Rcpp’ という名前のパッケージはありません

というエラー!あれっ?

結局、McAfeeを停止したら解決。

マカフィー。。。

ちなみに、マカフィーの停止方法は、
富士通のQAがわかりやすい。




2017年6月10日土曜日

【R】日付から曜日を簡単に取得する方法

議員会館内(本文に関係なし)

◇あらすじ

久しぶりの投稿。転職後、仕事が忙しすぎて趣味で分析する気が全くわかず、完全にブログを放置。しかし、最近、仕事で売り上げの予測モデルを構築することがあり、これが(不確定要素や未知の変数が多そうな割に)結構良い感じの精度だった。それが契機となり、(学生の頃、半年後の為替を予測するコンテストで全国2位になった経験を活かしつつ?)株価の予測モデルを考えてみたくなってきた。ただ、モデル構築にはデータが必要。説明変数もなるべく多くあった方が良い。幸い日時の株価のデータはググれば簡単に手に入る。しかし、当然ながら欲しいデータがない場合もある。例えば、曜日とか(株価予測にどれくらい影響あるかはまだ調べてないけど)。。ただ、曜日についは日付データがあればRで簡単に取得できることが分かったので、その方法をご紹介。

◇ここから本題

目的:日付から曜日を取得
方法:weekdays(dt.data$time)
補足:株価データの取得先(http://k-db.com/stocks/

・方法

> #データを読み込む
> dt.data <- read.csv(file("stocks_8411-T_1d_2017.csv",encoding = 'cp932'))
>
> #一部データの表示(こんなデータ)
> head(dt.data)
        日付  始値  高値  安値  終値    出来高    売買代金
1 2017-06-09 198.9 200.4 198.1 199.7 156941400 31296039870
2 2017-06-08 198.3 200.5 197.2 197.4 173075000 34342113170
3 2017-06-07 196.0 197.7 195.2 197.0 105695500 20771395690
4 2017-06-06 197.0 198.6 196.3 196.7  99978900 19742685840
5 2017-06-05 197.6 197.9 196.4 197.0 106257500 20945506730
6 2017-06-02 195.1 200.9 195.0 200.1 175604300 34933279840
>
> #日付をオブジェクト化しないとエラーが出る
> weekdays(dt.data$日付)
 UseMethod("weekdays") でエラー:
   'weekdays' をクラス "factor" のオブジェクトに適用できるようなメソッドがありません
>
> #日付をas.POSIXltでオブジェクト化(as.DATEでも良い)
> dt.data$time <- as.POSIXlt(dt.data$日付, format="%Y-%m-%d")
>
> #曜日を取得
> dt.data$weekdays <- weekdays(dt.data$time)
>
> #結果
> head(dt.data)
        日付  始値  高値  安値  終値    出来高    売買代金       time weekdays
1 2017-06-09 198.9 200.4 198.1 199.7 156941400 31296039870 2017-06-09   金曜日
2 2017-06-08 198.3 200.5 197.2 197.4 173075000 34342113170 2017-06-08   木曜日
3 2017-06-07 196.0 197.7 195.2 197.0 105695500 20771395690 2017-06-07   水曜日
4 2017-06-06 197.0 198.6 196.3 196.7  99978900 19742685840 2017-06-06   火曜日
5 2017-06-05 197.6 197.9 196.4 197.0 106257500 20945506730 2017-06-05   月曜日
6 2017-06-02 195.1 200.9 195.0 200.1 175604300 34933279840 2017-06-02   金曜日
>

◇その他:日付関連の投稿



つぶやき
メモリ32GB以上のノートPCほしいなー。重さ800g以下で。。


2017年3月25日土曜日

DMPを構築する上で重要なこと ~ユーザID編~

ユーザベースの分析から可視化されたインターネット上の行動ネットワーク

DMPを構築する上で重要なことは、ユーザを一意に識別するIDの付与基盤。これが無いとユーザベースの分析は不可能だ。もし、会員情報がとれている場合はその会員IDを用いればいい。しかし、そうした会員IDがない場合やログインしてない場合のユーザ行動を把握するには、どのようにすればよいだろうか?

現在、ユーザーIDを付与する基盤として、インティメートマージャー社のIMIDなどがある。同社には、電通なども資本を投下しており、今後成長が期待される。しかし、IMIDでサファリユーザを分析するとPV数イコールUU数となる。つまり、日本で高いシェアを持つiPhoneユーザの多くを補足できないという問題がある。理由は、アップル社がサードパーティーのクッキー利用を制限しているため、ファーストとサードパーティーのクッキーシンクがうまくできないからだ(と考えられる)。そして、その制限は、今後はさらに厳しくなることが予想される。

ではどうすべきか?発想を変えてみよう。ユーザのクッキーを取得して内部で照合するのではなく、ユーザのファーストのクッキーにIDを付与する。こうすれば、ファーストのクッキーに記録されているIDがそのままユーザを識別するIDになるため、クッキーシンクの問題は解消される。また、ファーストのクッキーにIDを付与するため、クッキーが削除されない限り、すべての閲覧行動をユーザベースで把握することができる(もちろん、アクセスログをとっていればだが)。

前職でユーザIDのインフラ化に向けた事業を一度提案したが、企業の成長ステージや規模の問題、そして、すぐに収益が上がらない点等を考慮して自ら取り下げた。しかし、個人的には将来のデータ活用の根幹を形成する極めて魅力的な事業だと思っているので、再度チャレンジしたい。


◇参考サイト

2017年3月15日水曜日

【R:自分用】クロス集計、ロジスティック、決定木、コレスポンデンス

#ライブラリを読み込む
library(dplyr)
library(data.table)
library(tidyr)
#
library(rpart) #決定木用
library(rpart.plot) #決定木用
library(partykit) #決定木作図用
#
library(MASS) #コレスポンデンス分析用
library(factoextra) #作図用

#cross集計
dt.cross <- dt.log %>%
  group_by(user_id,name) %>%
  summarise(n=max(value)) %>%
  spread(name,n)
dt.cross[is.na(dt.cross)] <- 0 #NAを0にする

#上記クロス集計に目的変数をjoin
dt.buy_next <- dt.log_next %>%
  group_by(user_id) %>%
  summarise(count = length(user_id))
dt.for_model <- left_join(dt.cross, dt.buy_next, by = "user_id")
dt.for_model$user_id <- NULL
dt.for_model[is.na(dt.for_logit)] <- 0 #NAを0にする

#ロジスティック分析
result <- glm(count ~ .,data = dt.for_model)
summary(result)

#出力
write.csv(summary(result)$coefficients[,"Estimate"],
          "C:/logit_Estimate.csv")
write.csv(summary(result)$coefficients[,"Pr(>|t|)"],
          "C:/logit_Pvalue.csv")

#---
#決定木
#method = "class" yが質的変数 cpは破線と交わる値が理想だが目的に合わせて適時設定
result.tree <- rpart(count ~., data = dt.cross_model, method = "class",cp = 0.002)
print(result.tree)
#検証
printcp(result.tree)
plotcp(result.tree)
#
#作図
plot(as.party(result.tree))


#---
#コレスポンデンス分析
#nfは軸を意味する
result.1 <- corresp(tmp, nf=3)
#
#write results:任意の場所に書き出す
write.csv(result.1$rs,
          "C:/result_1_rs.csv")
write.csv(result.1$cs,
          "C:/result_1_cs.csv")
#
#作図
#一般的な図
#biplot(result.1, xlim = c(-0.8, 0.8), ylim = c(-0.6, 0.6))
#少し見栄えの良い図
fviz_ca_biplot(result.1) + theme_minimal(base_size = 12)
#
#寄与率
result.1.koyuti <- result.1$cor^2
sum(result.1.koyuti)
kiyoritu <- 100*result.1.koyuti / sum(result.1.koyuti)
kiyoritu