プログラミング

MacユーザーがAtomでLaTeX環境を整えるためにやったこととエラー

こんにちは、毛糸です。

本記事では、汎用テキストエディタAtomでLaTeXを使うためにやったことと、生じたエラー、その対応策についてまとめます。

AtomでLaTeXを書くための環境設定on Mac

>>TeXをAtomで書くための環境構築をMacでやってみる

の手順に従えばOKです。以下ではこの記事の内容をさらっと追っていきます。

Atomでパッケージをインストール

この記事を読んでいるあなたはすでにAtomはインストール済みであると思う(まだの方はこちらの記事を参照)ので、LaTeX環境の構築に必要な以下のパッケージをインストールします。

  • latex
  • language-latex
  • pdf-view

Homebrewをインストール

Macのファイル管理システムHomebrewをインストールします。
ターミナルを起動して、

以下をコピペしEnter。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
パスワードを聞かれるので入力します。●●●のように表示されたりしないので不安になりますが、きちんと入力されているので、間違いのないように入力しEnter。
完了したら、Homebrewの拡張機能caskをインストールします。
以下をコピペしEnter。
brew tap caskroom/cask
これで準備完了です。

Homebrewを使ってmactexをインストール

>>TeXをAtomで書くための環境構築をMacでやってみる

ではHomebrewを使いMac用のTeXパッケージ「mactex」をインストールするよう説明されています。
ターミナルで
brew cask install mactex
と入力し、上手く行けば、そのまま進めて構いません。
私は以下のエラーが出たので、別の方法をとりました。

curl: (56) Recv failure: Connection reset by peer

Error: Download failed:

このエラーは、ターミナルコマンドからインターネットにリクエストを送ったが、データの受領が失敗したときに出るらしいです。
ターミナルをアクティブなままにしておくと上記エラーは回避できるようですが、インストールまで進みませんでした。
したがって、Homebrewでmactexをダウンロードするのではなく、.pkgファイルをブラウザ経由でダウンロードすると解決できます。

mactexのミラーサイトにアクセスし、HTTPの中からどれでもよいので選び、mactec-yyyymmdd.pkgをダウンロードします。
以下はhttp://ftp.jaist.ac.jp/pub/CTAN/systems/mac/mactex/にアクセスした際の画像です。
.pkgをダウンロードしたら、ファイルを開き指示通りに進むと、mactexのインストールが完了します。

AtomでのLaTeX環境設定

mactexがインストール出来たら準備OK、LaTeX環境の設定を行います。
Atom > Preferences > Packages > latexを検索し、以下の通り設定。

この状態で.texファイルをAtom上で保存(command+S)すると、同じフォルダにpdfファイルが作成されます。
ペインを分割することで、左にLaTeX文書、右にPDFを表示し、LaTeX文書を保存するたびにPDFに反映されるように出来ます。
ペインの分割は、メニューバーの表示からペイン>ペイン→と進み、タブをドラッグアンドドロップします。

その他のエラー

Texification failed!Builder executable ‘latexmk’ not found.

Homebrewでmactexをインストールし、Atomで必要な設定を終えたあと、上記エラーがでました。
これはmactexのインストールに失敗しているときに起こります。
katexmkはmactexに含まれているので、mactexが正しくインストールされていれば回避できます。

Homebrewを使わず、mactexのミラーサイトにアクセスし、HTTPの中からどれでもよいので選び、mactec-yyyymmdd.pkgをダウンロードすると、解決できます。

こちらのサイト(>>Atomでのlatexコンパイルのエラー)でもmactexをインストールしたら解決したとの報告があります。
インストールが出来ていても表示される場合は、latexmkの設定ファイルが必要と考えられます。
私が行ったのは以下の手順です。
まずPDF閲覧ファイルskimをHomebrewでインストールする。
brew cask install skim
ターミナルで以下を入力し、ホームディレクトリに移る。
cd ~
latexmkの設定ファイルを作成する。
touch .latexmkrc
このままだとファイルはFinderで見られないので、これを可視化する。
defaults write com.apple.finder AppleShowAllFiles true
killall Finder
Finderで. latexmkrcが見られるようになったので、それを開いて以下をコピペし保存。
#!/usr/bin/env perl
$latex            = ‘platex -synctex=1 -halt-on-error’;
$latex_silent     = ‘platex -synctex=1 -halt-on-error -interaction=batchmode’;
$bibtex           = ‘pbibtex’;
$biber            = ‘biber –bblencoding=utf8 -u -U –output_safechars’;
$dvipdf           = ‘dvipdfmx %O -o %D %S’;
$makeindex        = ‘mendex %O -o %D %S’;
$max_repeat       = 5;
$pdf_mode         = 3;
$pvc_view_file_via_temporary = 0;
$pdf_previewer    = “open -ga /Applications/Skim.app”;
再び余計なファイルを見えなくするために、以下をターミナルで実効。
defaults write com.apple.finder AppleShowAllFiles false
killall Finder
ターミナルで新しいファイルを作る方法はこちら>>ターミナル学習まとめ

quantmodの使い方とCAPMの計算|Rでプログラミング

こんにちは、毛糸です。

株式の期待リターンを推定するために広く用いられているのが、CAPM(Capital Asset Pricing Model)です。

CAPMは株式のリターンを市場ポートフォリオの1次関数として表す、とてもわかり易いモデルです。

本記事ではCAPMの計算(具体的には、ベータの推定)を、統計プログラミング言語Rで行う方法についてまとめます。

CAPMにおけるベータの推定には、個別株式と市場ポートフォリオのリターンのデータが必要になりますが、quantmodというパッケージを使えば、簡単に取得できるため、その方法も説明します。

また、推定に必要な無リスク金利(安全資産利子率)には、財務省が公表している国債利回りを用いることとします。

CAPM(Capital Asset Pricing Model、資本資産価格モデル)の概略

CAPMは、資産収益が正規分布するなどのいくつかの仮定のもとで成り立つ、危険資産(株式など)の期待リターンに関するモデルです。
CAPMでは、ある証券\( i\)の期待リターン\( E[r_i]\)は、無リスク金利\( r_f\)と市場ポートフォリオの期待リターン\( E[r_M]\)を用いて、以下のように表されます。
\begin{equation} \begin{split}
E[r_i]=r_f+\beta\left( E[r_M]-r_f\right)
\end{split} \end{equation}
係数の\( \beta\)(ベータ)は、証券\( i\)と市場ポートフォリオ\( M\)の連動性を示しています。
CAPMにおける\( \beta\)は、ある証券\( i\)の超過期待リターン\( E[r_i]-r_f\)を被説明変数、市場ポートフォリオの超過期待リターン\( E[r_M]-r_f\)を説明変数とした回帰分析によって求められます。
本記事では、統計プログラミング言語Rを用いて、
  • 証券と市場ポートフォリオのデータを取得しリターンを計算する方法
  • 無理リスク金利を取得する方法
  • 回帰分析を行う方法
を解説しています。

quantmodによる株価ヒストリカルデータの取得方法

Rライブラリ「quantmod」を用いると、個別株式の価格情報を入手することができます。
quantmodは、Rコンソールで以下を実行すればインストールできます。同時に「XML」というライブラリも必要になる(ないとエラーを吐く)ので、合わせてインストールしましょう。
install.packages(“quantmod”)
install.packages(“XML”)
quantmodライブラリを読み込みます。
library(quantmod)
getSymbols()関数を使うと、指定した証券コードの価格データをwebページから取得することができます。日本の株式では、Yahoo!ファイナンスを情報ソースにすればよいです。
本記事では、証券コード9984.Tソフトバンクグループの株価を、Yahoo!ファイナンスから、開始日”2013-06-01″、終了日”2019-05-31″で取得します。
証券コードは、Yahoo!ファイナンスの各証券のページの?code=以下に記載されているものです。
https://stocks.finance.yahoo.co.jp/stocks/detail/?code=9984.T
証券コードの.Tは市場(T=東京証券取引所)を示すものですが、なくても大丈夫かもしれません。
関数の最後の引数auto.assignは取得したデータを自動でオブジェクトに代入するかどうかを決めるもので、=TRUEとした場合は自動的に「YJ9984.T」というオブジェクトに情報が格納されます。
getSymbols(“9984.t”,src=”yahooj”,from=”2013-06-01″,to=”2019-05-31″,auto.assign=TRUE)
auto.assign=FALSEとした場合には自動でオブジェクトに代入されないので、自分でオブジェクトに代入します。
data9984<-getSymbols(“9984.t”,src=”yahooj”,from=”2013-06-01″,to=”2019-05-31″,auto.assign=FALSE)
取得したデータは、日次ベースの時系列データになっており、始値・高値・安値・終値・取引高・調整後株価が格納されています。
以下の作業では終値の情報を使いますので、以下のように終値のみのデータを作ります。
Price_i<-YJ9984.T$YJ9984.T.Close
plotすることで株価の推移を見ることができます。
plot(Price_i)
\( t\)日目の日次リターン\( r_{i,t}\)は
\begin{equation} \begin{split}
r_{i,t}=\frac{P_{i,t} -P_{i,t-1}}{ P_{i,t-1}}\approx \log(P_{i,t})-\log(P_{i,t-1})
\end{split} \end{equation}

クロネコヤマトとP≠NP予想

こんにちは、毛糸です。

先日、こんなつぶやきが話題になりました。

このツイートのなかで「NP困難」という言葉が使われています。

調べてみると、この話題は「P≠NP予想」という数学の未解決問題に関係する話であることが分かりました。
本記事ではクロネコヤマトのプログラミングコンテストに関連する「計算理論」という数学の概念を概観し、このプログラミングコンテストがどんな問題に挑戦するものなのか、P≠NP予想という未解決問題とどんな関係があるのかについてまとめます。

なお、直感やイメージを大事にするために、数学的な厳密さを欠く部分がありますので、詳しく勉強したい方はテキスト等を参照してください。

計算理論とはなにか

NP困難という用語は、計算理論という数学の一分野における用語です。
計算理論とは「計算」を数学的に定式化し、コンピュータのような計算機と、計算機による計算手順(アルゴリズム)について考えることで、ある問題が「計算」可能かどうか、可能であるならそれはどの程度複雑なのか、といった問題を扱う分野です。
ある計算がどの程度複雑なのかという問題は、計算複雑性理論と呼ばれています。
計算複雑性理論では、データが\(n \)個与えられたときに、計算量が\( n\)と比べてどれくらいの大小関係なのか、ということを考えます。
たとえば、ばらばらに並べられた\(n\)個の自然数を昇順に並べる場合に、
隣どうしの数字の大小を比較して、昇順に並び替える
という手順(アルゴリズム)を考えたとき、並び替えの回数は\(n(n-1)/2\)回を超えることはないということがわかります。
これは「おおよそ」\(n^2\)と同程度の複雑さと考えることができます(これくらいのアバウトさでも十分意味のある分析になります)。

このように、計算複雑性理論では、データ数に関連してその複雑性を定量な尺度で評価します。

多項式時間アルゴリズムとクラスP、クラスNP

あるアルゴリズムがデータ数との関連でどれだけ時間がかかるか、という問題を考えたとき、ある多項式で表せる時間以内で解けるようなアルゴリズムを、多項式時間アルゴリズムといいます。

>>多項式時間-Wikipedia

多項式時間で解けるといったときには、解くための時間が天文学的な数字にはならない(現実的な計算時間に収まる)と考えてよいでしょう。
多項式時間アルゴリズムで解ける問題は、クラスPと呼びます。

また、ある問題の答えが「yes」だとわかったとき、それが本当に正しいのかを多項式時間で判定できる問題を、クラスNPと呼びます。

>>NP-Wikipedia

ある問題がNPである、といったときには、その問題の答えが与えられたときに、膨大な計算を要さずに答え合わせができる、と考えてよいでしょう。

NP困難な問題と巡回セールスマン問題

NPに属する問題(多項式時間で答え合わせができる問題)と同等、もしくはそれ以上に難しい問題を、NP困難な問題といいます。

NP困難な問題は、その検証に膨大な計算を要する場合があります。

NP困難な問題として有名なものに「巡回セールスマン問題」というのがあります。
巡回セールスマン問題とは、いくつかの目的地を巡回するセールスマンが、もっとも短い移動距離を達成するには移動したらよいか、を考える問題です。

巡回セールスマン問題はNP困難、つまり多項式時間では解けない複雑な問題であるということです。

ヤマト運輸プログラミングコンテスト

冒頭でとりあげたヤマト運輸は、AtCoderというプログラミングコンテストサイトで、巡回セールスマン問題と思われる問題を出題しています。

ヤマト運輸プログラミングコンテスト2019

その問題の概要は以下のとおりです。

本コンテストでは、私たちの取り組む課題の一つとして「宅配ドライバーの配達ルートの効率化」をテーマとして取り上げ、配達ルートの最適化問題を含む2問を出題いたします。

配達ルートの最適化という言葉から類推するに、ヤマト運輸の出題する問題はおそらく巡回セールスマン問題に何らかの実際的な制約を課した問題なのでしょう。
ヤマト運輸はこの問題の良い解決策が得られれば、彼らの物流ビジネスの効率化につながります。
しかし、巡回セールスマン問題は多項式時間では解けそうにない(計算量が膨大になる)問題ですので、ヤマト運輸の課題も、解くのは容易ではないと予想されます。

なお、このヤマト運輸はこのプログラミングコンテストについて、著作権を譲渡することを求めており、これがちょっとした批判の的になってるようです。

P≠NP予想

計算複雑性理論には、数学上の未解決問題が残されています。
それが「P≠NP予想」です。
P≠NP予想はクレイ数学研究所のミレニアム懸賞問題の一つとして100万ドルの懸賞金がかけられた未解決問題で、
クラスP(多項式時間で判定できる問題)とクラスNP(多項式時間で答え合わせができる問題)とは一致しない
という予想です。
>>P≠NP予想-Wikipedia
「PならばNP」(判定できるなら答え合わせができる)は真なので、PはNPに含まれる(P⊆NP)ことはわかります。
しかし、PだけれどもNPでないような問題があるかどうか(つまりPはNPの真部分集合になるか、多項式時間では判定できないけど答え合わせならできる問題があるか)はまだ誰も証明したことがなく、未解決の問題となっているのです。

まとめ

計算理論における、多項式時間やクラスP、NPといった用語をまとめながら、NP困難な問題である巡回セールスマン問題とヤマト運輸のプログラミングコンテストの内容について説明しました。
この分野においては「P≠NP予想」という数学上の未解決問題があります。
ヤマト運輸のプログラミングコンテストでP≠NP予想が解決できるわけではありませんが、計算理論の「実践」のすぐ近くに、数学の未解決問題があるというのは、ロマンを感じませんか。

参考文献

本記事の内容(計算理論やアルゴリズム、P≠NP予想)に興味を持たれた方は、下記書籍が大変参考になります。読み物としても数学書としても楽しめる名著です。

仮想通貨の価格ヒストリカルデータを取得する方法|Rライブラリcryptoの使い方

こんにちは、毛糸です。

仮想通貨に再び注目が集まっています。

2017年に価格が高騰し、2018年に暴落した仮想通貨は、現代のバブルとして一躍有名になりました。
参考記事:ビットコインはバブルである

仮想通貨に関しては、その価格変動の激しさから、投機の対象ともなっていますが、適切にリスク管理しないとあっという間に資産が溶けてしまいます。
本記事では再び注目が集まっている仮想通貨に関して、統計プログラミング言語Rによる価格データの簡単な取得方法について解説します。

仮想通貨パッケージcryptoをインストールする方法

Rはライブラリと呼ばれるプログラム・パッケージを利用することで、専門的な分析を簡単に行えるようになります。
仮想通貨の価格分析をするにあたっては、cryptoパッケージが役に立ちます。
cryptoパッケージに内蔵されている関数を用いることで、仮想通貨の価格情報を簡単に取得できます(公式マニュアルPDFはこちら)。
cryptoパッケージを利用するにはお使いのPCにRがインストールされている必要がありますので、下記を参考にして環境を整えてください。

仮想通貨価格の時系列データ(ヒストリカルデータ)の入手方法

まずはじめに、cryptoパッケージ(と付随して必要な他のパッケージ)をインストールします。
Rのコンソール画面に以下のコードを入力し実行します。
install.packages("crypto", dependencies = TRUE)
しばらくの間、各種パッケージのインストールが進みます。
インストールが進んだら、cryptoパッケージを読み込みます。
library(crypto)
これでcryptoパッケージに内蔵される各種関数が使用可能になりました。
たとえば、仮想通貨のリストを入手するには、以下のコードを実行します。
#仮想通貨のリストを表示
crypto_list()
出力結果は以下のようになります。
> #仮想通貨のリストを表示
> crypto_list()
# A tibble: 2,212 x 6
   symbol name     slug      rank exchange_url                history_url                           
   <chr>  <chr>    <chr>    <dbl> <chr>                       <chr>                                 
 1 BTC    Bitcoin  bitcoin      1 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 2 ETH    Ethereum ethereum     2 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 3 XRP    XRP      ripple       3 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 4 BCH    Bitcoin… bitcoin…     4 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 5 EOS    EOS      eos          5 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 6 LTC    Litecoin litecoin     6 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 7 BNB    Binance… binance…     7 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 8 BSV    Bitcoin… bitcoin…     8 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
 9 USDT   Tether   tether       9 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
10 XLM    Stellar  stellar     10 https://coinmarketcap.com/… https://coinmarketcap.com/currencies/…
# … with 2,202 more rows

ビットコイン(BTC)の価格データからリターンとリスクを計算する

実際にデータを分析してみましょう。

ヒストリカルデータの取得

crypto_history()関数で、指定した仮想通貨の時系列価格情報を取得できます。
#crypto_history(coin = NULL, limit = NULL, start_date = NULL
#end_date = NULL, coin_list = NULL, sleep = NULL)
#仮想通貨の価格等情報を取得
#dateはyyyymmdd形式で。NULLとすると最長期間
BTC<-crypto_history(coin = "BTC",
                    start_date = NULL,end_date = NULL)
日付を指定することで、特定期間のデータを取得することも出来ます。
BTC_saikin<-crypto_history(coin = "BTC",
              start_date = "20190501",end_date = "20190530")
head()関数、tail()関数で、データの先頭と最後尾を確認できます。
#データの先頭
head(BTC,1)
#データの最後尾
tail(BTC,1)
crypto_history()で取得される情報は、時点の情報や始値、終値など、いくつかの列から構成されています。
それぞれの情報にアクセスしたければ、たとえばBTC$closeのように$マークのあとに取り出したい列のラベルを指定します。

終値を時系列データとして抽出

今回使うのはBTCの終値closeです。関数ts()にデータを入れることで、時系列(time series)データとして扱うことが出来ます。
#BTCの終値情報を時系列として取り出す。
#時系列情報の開始日をBTC$date[1]と指定
BTC_price<-ts(BTC$close,start=BTC$date[1])

価格チャート

BTC価格のチャートを描いてみます。データの図示にはplot()関数を使います。
#type="l"は線グラフ
plot(BTC_price,type="l")

BTCの日次収益率(リターン)

日次収益率を計算します。
t日目のBTC価格を\( P_t\)、収益率を\( r_t\)と表すと、
\[ \begin{split}r_t=\frac{ P_{t}-P_{t-1}}{ P_{t-1}} \end{split} \]と計算できます。
分子は1時点前との差額を計算するdiff(_,lag=1)関数、分母は1時点前の価格を返すlag(_,k=-1)関数を用いて計算できますので、BTCの日次収益率は以下のようにして求めます。
#日次収益率
BTC_return_daily<-diff(BTC_price,lag=1)/lag(BTC_price,k=-1)
plot(BTC_return_daily,type="l")

BTCリターンの平均と標準偏差(リスク)

日次収益率の平均はmean()関数を用いて計算できます。
mean(BTC_return_daily)*100
#[1] 0.2808807
#表示は%
#年率換算では
mean(BTC_return_daily)*100*365
#[1] 102.5215
BTCの日次平均リターンは0.28%(年率換算102%)でした。この値はデータ期間によって変わります。

標準偏差はsd()関数で計算できます。

sd(BTC_return_daily)*100
#[1] 4.333606
#表示は%
sd(BTC_return_daily)*100*365^0.5
#[1] 82.79343
リスクを示す標準偏差は日次で4.33%、年率換算82.79%でした。極めてハイリスクです。

まとめ

Rパッケージcryptoを用いて仮想通貨の価格を用意に取得できることを説明しました。
今後このデータを用いて、仮想通貨に関する統計分析をシリーズでお送りする予定です。
もし面白いと思っていただけたら、SNSでのシェアをよろしくお願いします。

「投資シミュレーションプログラム」サマリー(随時追加)

こんにちは、毛糸です。

本記事は「投資シミュレーションプログラム」に関する記事のまとめページです。

「投資シミュレーションプログラム」とそれを使った各種の分析について、このページから各記事に飛ぶことが出来ます。

投資シミュレーションプログラム

投資シミュレーションプログラムVer.1.0

投資シミュレーションプログラムVer.1.0のコード例と、投資シミュレーションプログラムが用いている「モンテカルロ・シミュレーション」に関する説明は下記ページです。
>>投資シミュレーションプログラムを作ってみた【Rでプログラミング】

投資シミュレーションプログラムVer.1.1

投資シミュレーションプログラムは何千何万という膨大な数のシナリオをコンピュータの圧倒的計算力で処理するプログラムですが、Ver.1.0ではサンプルの計算をfor文を用いて行っていました。

統計プログラミング言語Rはfor文による繰り返し計算よりベクトル演算の方が高速に処理することができ、これを実装したのがVer.1.1です。
>>投資シミュレーションプログラムを高速化してみた

活用例

年金の分析

投資シミュレーションプログラムを用いて、年金積立金のポートフォリオの将来予測を行っています。積立金の100年後の状況を予測したり、1年後に損失が生じる確率が35%あることなどが明らかになりました。
 
今後、運用期間中に資金が出入りするような、より現実的な仮定のもとで分析を行う予定です。
 

FX・外貨預金の分析

FXの期待リターンの理論値を計算したうえで、それをパラメタとして投資シミュレーションプログラムを使い、FXで億り人になれる確率や破産する確率を計算しました。

レバレッジが億り人になれるキーであることが明らかになりましたが、破産確率の上昇と隣合わせであることもわかりました。
>>FXの期待リターン、億り人になれる確率、破産する確率【モンテカルロ・シミュレーション】

インデックス投資の分析

資産運用の王道、インデックス投資について、投資シミュレーションプログラムを用いた将来予測を行う予定です。

投資シミュレーションプログラムを支える技術

投資シミュレーションプログラムは、3つの技術と知識によって支えられています。
  1. 確率論・統計学
  2. ファイナンス理論(金融工学)
  3. プログラミング言語
投資シミュレーションプログラムは、確率論における「大数の法則」によって正当性が保証される「モンテカルロ・シミュレーション(モンテカルロ法)」により、将来の予測値を計算しています。
 
分析の対象は投資であり、金融商品です。金融商品の性質や運用戦略の策定については、ファイナンス(金融工学)の分野において知見が蓄積されています。
 
投資シミュレーションプログラムにおける実際の計算はコンピュータが行いますので、必然的にプログラミングのスキルが必要になります。投資シミュレーションプログラムは統計プログラミングRを用いて作成されています。
 
ファイナンスにおけるモンテカルロ法の活用については、下記の書籍が大変役に立ちます。
 

 

 
統計プログラミング言語Rによるファイナンス分析に関しては、下記書籍を読めば、Rの基本的な使いかたから、本格的な分析までを学ぶことが出来ます。  

 

 

 

勉強会「意識高い……」「レベル高そう……」いやいや、誤解してませんか?

こんにちは、毛糸です。

このところ毎月のように勉強会を企画したりしているのですが、先日「意識が高い」「近寄りにくい雰囲気」という声を耳にしました。

私はそういう声にはあまり気持ちを乱されないタイプですが、しかしそういうイメージを持たれるのは本意でなく、誤解であると感じているため、今回はそういった声に対するメッセージをお届けします。

私はなぜ勉強会を開いたか

私は昨年のプログラミングブームの中で、自分と同じようにテクノロジーを学ぶ人達と交流したいという思いで、勉強会を企画しました。

当時の私はプログラミング言語Pythonに興味を持っていました。

日頃、会計士として仕事をしていますので、Pythonを会計の仕事に役立てられないかと考え、会計×テクノロジーの勉強会 PyCPAを立ち上げました。

PyCPAという勉強会は昨年の発足以来、10回以上の開催実績があり、参加者も述べ250人を超える規模となりましたが、最初はプログラミングに興味のある会計士ツイッタラーを集めた小規模な集団でした。

会計とテクノロジー(プログラミング)という、ある種「オタク」な趣味を共有するために、SNSで仲間を募り集まってみた、とうただそれだけの勉強会です。

PyCPAという勉強会は、これまで色々な形式で開催されてきました。

  • ただ集まって各自黙々と作業を行うもくもく会
  • 講師を招き実務の最先端を学ぶセミナー
  • 実際にプログラミングをしながら学ぶハンズオン
  • 専門書をみんなで読み進めていく輪読会
などなど、多彩なバリエーションで開催しています。
勉強会は完全無償で運営されており、会場の提供や講師の登壇まで、すべで勉強会のビジョンに共感して下さる方々の善意で成り立っております。

勉強会に対する誤解

そんな勉強会PyCPAですが、最近「意識が高い」「レベルが高くて近づきがたい」という声をちらほら耳にするようになりました。
前述の通りPyCPAは、Twitterに生息する一部の「オタクな」会計士による趣味の集まりとして発足しました。
今でこそ多くの支援者に恵まれ、コミュニティとしての輪郭を備えつつありますが、「楽しさを探求する」というあり方は、当初から全く変わっていません。
意識の高さを志向しているようなことはまったくなく(おそらくコミュニティメンバーもそれを望んでおらず)、ただ楽しいから・知りたいからと言う理由で、探求し発信しています。なので、
なに意味わからんこと追い求めてるんだあいつら……
という方向で近寄りがたいのならよくわかりますが、
なんかレベル高いことやってるよ意識たかっ……
と思ってるなら、それは大きな誤解です。
もちろん、会計やテクノロジーに興味を持ち探求することを楽しむ人種が世の中の多数派だとは思っておりませんので、そういう意味では「尖った」集団であることには間違いないのですが、もし「意識高い」奴らと映っているのであれば、それはこのコミュニティの本質を十分理解いただいていないということでしょう。

やりたいからやる、楽しいから学ぶ

私の周りには、私の興味ある話題について話を深められる人があまりいません(私の交友関係の狭さゆえです)。
私が気になる、AIの新技術とか、正規分布の和とか、簿記の代数的構造とか、そういう話題を一緒に楽しめる人が近くにいないのです。
しかしSNSは違いました。
SNSではどんなにニッチな趣向でも、広く発信すれば必ずと言っていいほど共感してくれる人が現れます。
SNSの広がりによって、リアルな人脈を超えた人間関係が構築できるようになりました。
こうしたネットでのつながりをリアルに感じたい、同じ志を持ち共通の話題を楽しめる人たちともっと交流したい、そういう気持ちが勉強会を企画する原動力になりました。
やりたいからやる、楽しいから学ぶ。
そうした娯楽を一緒に楽しめる仲間が、勉強会に集まっています。
そこにあるのは決して意識の高いインテリジェンスな集団ではなく、ちょっと変わったことに興味を持つ人たちが集まる探求の場なのです。

まとめ

「意識高い」「近寄りにくい」という声が、私たちの勉強会を形容する言葉としてはちょっとずれていると思い、考えていることを述べました。
私たちの勉強会は、ただ楽しいから集まり、知識を共有しているだけです。
もし「レベルが高くて……」と遠ざけてしまっている方がいたら、それは大きな誤解です。

PyCPAで登壇する人たちだって、最初はみんな手探りで学んでいたのです。

もし、今まで勉強会なんて行ったことも開いたこともないけれど、興味があるという方がいらっしゃったら、勉強会に足を運んでいただくか、こんな勉強会を開きたいとリクエストしてみてください。
参考記事:PyCPAで勉強会を開催する、もしくはリクエストする方法

どうせ楽しむなら、話のわかる人と一緒にやったほうが楽しいのです。

一緒に楽しく学びませんか。

PyCPAリアル・オプション輪読会まとめと参加者アンケート結果

こんにちは、毛糸です。

先日、会計×テクノロジーをテーマとした勉強会コミュニティPyCPAの『モンテカルロ法によるリアル・オプション分析』輪読会第1回が開催されました。

今回は20名近い参加者にお集まりいただきました。

本記事では今回の輪読会の振り返りをしてみたいと思います。

参加者には事前にアンケートにお答えいただいてますので、その結果もあわせて公開します。

PyCPAとは

PyCPAは、テクノロジーの進化を武器に次世代の担い手となる探求者たちのコミュニティです。

もともとは、プログラミング言語Pythonに関心のある公認会計士(CPA)の勉強会として発足しましたが、現在ではより広く、テクノロジー全般に興味を持ち、探求する意欲のある、会計士、経理財務人材、エンジニアなどがメンバーとなって活動しています。

PyCPAは毎月勉強会を開催しており、もくもく会やセミナー、参加型ワークショップを行っています。

現在のコミュニティメンバーはSlack登録者ベースで170名ほど、2019年5月現在の勉強会の累計参加者は250名を超えます

PyCPAコミュニティと勉強会への参加は無料となっており、運営事務、会場確保、講師の登壇等はすべて、コミュニティのビジョンに共感していただいている組織・個人のボランティアでなりたっています。

PyCPAにコミュニティメンバーとして参加したい方はPyCPAのSlackにご登録ください。

ツイッターでのPyCPAコミュニティメンバーのやり取りは、こちらからご覧いただけます。

リアル・オプション輪読会の概要

今回の勉強会は初の輪読会となりました。

輪読会とは、複数人で同じ本を読み進め、集まって内容を共有し、理解を深める方法です。

今回の輪読会で取り組んだのは『モンテカルロ法によるリアル・オプション分析』という専門書です。


この本は、ファイナンス(金融工学)とプログラミング(ExcelVBA)を用いて、経営意思決定の柔軟性が創出する価値=リアル・オプションを定量的に評価する手法が学べる本です。
参考記事:『モンテカルロ法によるリアル・オプション分析』内容の概説、こんな人におすすめ、いい点と注意点

本書はリアル・オプションを学ぶとても良い題材である一方で、なかなか難易度の高い本だったので、輪読会の題材にしました。

今回は初回ということで、輪読会の目的や進め方について説明しました。
参考記事:【開催前夜】リアル・オプション輪読会の目的、理由、進め方

輪読は第1章を扱いました。

第1章はプログラミング言語ExcelVBAの基礎で、テキストに書かれたコードを入力しながら参加者全員で読み進めました。

VBAの始め方や、変数や関数の定義、for文やDoWhile文などの基本構文、配列の使いかたなどについて学びました。

途中、ファシリテーターから「このコードはモンテカルロ法のこんなシーンで役に立ちます」「この構文は株価シミュレーションの計算で使います」というような解説をはさみながら進めました。

進度を合わせて読み進め、コードも入力しながらということでしたので、理解にばらつきが出るかな?と恐れていましたが、みなさん思いの外つまづくことも少なく、理解度、満足度ともに高かったように思います。

感想とフィードバック

予習について

全員でコードを入力しながら、さくさくと読み進めたので、ちょっと駆け足気味になりました。

この点に関して、参加者から「次回は予習して来ようと思った」という声が上がりました。

事前に準備をしてくれば、輪読会をより意義深いものにできそうです。

バグについて

事前に予習してきた方も、その場でコードを入力した人も、みなさんバグ=プログラムが動かない問題に悩まされていました。

しかし、参加者のひとり(エンジニア)の方から「バグは出るもの、人は完璧じゃない、能率的にバグがとれればOK」という前向きな意見が出て、参加者の気持ちも楽になったように思います。

プログラミングにはバグがつきものですので、輪読会のように他の人と助け合える環境で学習を進めるのがよいと思います。

練習と実践について

プログラミングは一度勉強しても、使わなければすぐ忘れてしまう、という感想が出ました。

たしかに、人は忘れる生き物ですから、どんなに勉強しても使わなければ忘れてしまいます。

もし勉強したことを忘れたくないのであれば、お仕事で使うなり、勉強会で披露するなりして、知識の維持に努める必要がありそうです。

参加者アンケート結果報告

PyCPA リアル・オプション輪読会第1回参加者には、事前に以下のアンケートにお答えいただいています。
  • 参加者の所属
  • 参加理由
  • 意見・感想・提案など
その回答状況を見ていきましょう。

参加者の所属

PyCPAは会計士の勉強会として発足したこともあり、会計士等の比率が一番多い結果となりました。

次いで一般事業会社(経理財務系)の方、金融機関勤務と続きます。

輪読会の内容がプログラミングであったため、エンジニアの方の存在感はとても大きかったです。

会の最後にMVPを決めたのですが、AI開発がご専門のプログラマの方が絶大な支持を得て見事MVPを獲得されました。

参加理由

リアル・オプション輪読会の参加理由は、金融工学、ファイナンスへの関心が首位、次いでリアル・オプション、企業価値評価への関心となっています。

みなさんお仕事で金融・ファイナンスに関わりがある方がほとんどで、その理解を深めたいという方が大多数でした。

リアル・オプションという経営意思決定のためのツールを学びたいという、このテキストの目的ど真ん中のかたもたくさんいらっしゃいました。

ファイナンスにせよ、VBAプログラミングにせよ、このテキストはとてもよい教材になりますので、是非チャレンジしてほしいと思います。

参考記事:『モンテカルロ法によるリアル・オプション分析』内容の概説、こんな人におすすめ、いい点と注意点

意見・感想・提案など

自由回答で寄せられた意見等についてまとめます。

まったく門外漢ですが、なにか楽しそうだと思いました

モンテカルロ法という言葉ぐらいしか知らないので、その内容を理解したい

私も最初はそうでした。

モンテカルロ法という何やら凄い技術があるらしい、なんか楽しそう。

そういう興味が人生を豊かにしてくれると信じています。

一緒に楽しみましょう。

将来的に転換社債のプライシンクモデルを作りたいです!

業績連動型のストックオプション

モンテカルロ法は金融商品評価の強力なツールで、その応用範囲は膨大です。

輪読会での学びをきっかけに、よりアドバンストな内容に挑戦してみるのもいいでしょう。

意思決定にどう活かすのかに興味があります。

リアル・オプションは経営意思決定のツールとして有用です。

単に本を読み、ふーん、そういう手法があるのね、で終わらせることなく、是非輪読会で他の方とディスカッションすることで、ビジネスへの応用について探っていきましょう。

私もとても楽しみです。

まとめ

PyCPA リアル・オプション輪読会の振り返りについて述べました。

徐々にその裾野を広げつつ、コミュニティとしての輪郭を備え始めたPyCPAですが、まだまだ始まったばかりです。

みなさんの学ぶ意欲と発信で、一緒に楽しみましょう。

【開催前夜】リアル・オプション輪読会の目的、理由、進め方

こんにちは、毛糸です。

この記事を書いている日の次の日(2019/5/11)に、『モンテカルロ法によるリアル・オプション分析』の輪読会を開催します。
『モンテカルロ法によるリアル・オプション分析』輪読会第1回 

第1回開催に際して、この輪読会の目的、なぜ輪読会を開くのか、どんな風に進めるのかについて整理しておきたいと思います。

そもそも輪読会とは何か

輪読会とは、複数人で同じ本を読み進め、集まって内容を共有し、理解を深める方法です。

大学のゼミやエンジニアの勉強会の一環として行われています。

事前に内容をまとめ、当日にプレゼンテーションを行う方式がとられることが多いです。

本を独りですべて熟読する必要がないので、効率的に内容を理解できます。

『モンテカルロ法によるリアル・オプション分析』輪読会の目的

この輪読会の目的は『モンテカルロ法によるリアル・オプション分析』を読破することです。

第一目標は「読むこと」であり、完全な理解は敢えて目指しません。

理解度の目安でいうと、他の人に「この本はこういうことが書いてあるんだよ」と雰囲気を語れるレベルでOKです。

なぜ「理解すること」を第一目標にしないかというと、本書がとてもハイレベルな内容であるからです。

本書の内容は本ブログの記事『『モンテカルロ法によるリアル・オプション分析』内容の概説、こんな人におすすめ、いい点と注意点』にまとめてありますので、その難しさの雰囲気がわかると思います。

とてもハイレベルなので、もはやみんなで足並み揃えて理解しよう、というのが不可能です。

十分に理解している人が参加者に講義するスタイルのセミナーであれば可能かもしれませんが、今回はそういった形式にはしないので、とりあえず「読む」ことができればOKということにします。

もちろん、「読む」ことから理解は始まりますし、輪読会への参加でかなりの理解が得られるので、決して「理解」を放棄しているわけではありません。

なぜ輪読会を開くのか、独りではいけないのか

本書を輪読会で読む理由は3つあります。

1.難しいから

本書はファイナンス(金融工学)とプログラミング(VBA)の理解がなければ読めません。

独りでこの本に取り組むとなると、かなり気合を入れて取り組む必要があります。

しかし、忙しいビジネスマンが、難解な数学やプログラミングにじっくり取り組むのはなかなか厳しいものがあります。

輪読会で読むことで、ファシリテーターや他の参加者の理解を共有でき、意見を聞きながら読むことが出来るので、理解が深まります。

2.甘えてしまうから

独りでは「わかったつもり」になったり、テキストに書いてあるプログラミング・コードを眺めるだけで入力しなかったりと、甘えが出ます。

本書はプログラミング・コードを実際に打ち込み、手を動かしながら読み進めることを前提としているので、甘えると何も身につきません。

同じ目標を持つ人で集まって、みんなで読み進めることで動機づけを図ります。

3.実務的だから

リアル・オプションは経営意思決定のためのツールであり、ビジネスに活かすことの出来る実務的な技術です。
 
したがって、リアル・オプション分析をどう活用するか、という視点がとても大切になります。
 
しかし、独りでは想像力に限界があり、学びをどう活かすかというところに目が向かない可能性があります。
 
輪読会でディスカッションすることにより、自分では思いつかないアイデアに触れられます。
 

輪読会の進め方

輪読会は通常、発表者を事前に決めておき、持ち回りで本の内容をプレゼンテーションします。
 
しかし、リアル・オプション輪読会はまず「読むこと」を目的としており、そのためには参加のハードルをなるべく下げたいと思っています。
 
したがって、参加者には特に事前準備を強制せず、輪読会の中で読み進め理解するようなやり方をとります。
 
リアル・オプション輪読会では、参加者が順繰りに、1人1パラグラフを音読します。
 
その内容について、意見がある人は発言してもらい、また、ファシリテーター(僭越ながら私が務めます)が解説を加えます。
 
テキストに記載されたVBAのコードは、事前に入力してきた人がいれば、そのプログラムを実際に動かしてみます。
 
動かなければ、その場でみんなで改善策を考えます。
 
なので、動くプログラムが作れたかどうかはさておき、事前にコードを書いてきた人の成長が加速するような進め方をとります。
 
会の終了後、動くコードを参加者で共有します。
 
また、会の終わりに、その日のMVPを決めて、みんなで讃えます。
 

まとめ

リアル・オプション輪読会の前日ということで、輪読会の目的や、理由、進め方についてまとめました。
 
ともに学ぶ人がいるというのは嬉しいことです。
 
是非こうした機会を活用し、スキルアップに役立ててください。
 

 

 

 

年金のリスクとリターンを統計プログラミング言語Rで計算してみた

こんにちは、毛糸です。

私は【投信定点観測】と題して、投資を行っています。
参考記事:【投信定点観測】インデックス投資信託8つ・ロボアドバイザー2つ・アクティブファンド3つにドルコスト平均法で積立投資してみる

しかし、私のように投資をしていない人でも、日本人はほぼ全員、金融リスクをとっている、ということをご存知でしょうか。

それは「年金」です。

私たちが加入している国民年金は、年金積立金管理運用独立行政法人(GPIF)という機関によって運用されており、株や債券といったリスク資産に投資が行われています。

リスク資産に投資が行われているということは、ある程度のリターンを期待して、リスクをとっているということです。

今回は、私たちの年金がどれくらいのリスクを負い、リターンを求めているのかを、プログラミング言語Rを用いて計算してみたいと思います。

統計プログラミング言語Rと、オンラインでの利用

統計プログラミング言語Rは、データサイエンスで頻繁に用いられるプログラミング言語です。

統計解析や計算を簡単に行うことができ、計算機としても使えます。

本記事ではプログラミング言語Rを用いて、年金ポートフォリオのリターンとリスクを計算します。

Rを使うには、本来RというソフトウェアをPCにインストールする必要がありますが、今回はちょっとした計算に使うのみなので、ブラウザ上で完結するR onlineを利用します。
参考記事:ブラウザ上でRプログラミング(R online、Rオンラインを使う方法)

R onlineのサイト(リンク)でコードを打ち込めば、すぐにRによる計算が実行できます。

試しにサイト上で
1+1
と入力し、[Run it]してみると、すぐに下の方に計算結果が表示されます。

以下、このR onlineを使って、年金ポートフォリオのリターンとリスクを計算します。

すでに打ち込んである内容は、すべて削除して構いません。

GPIFの基本ポートフォリオ

年金はリスク資産に投資を行って運用されています。

年金運用を行っている年金積立金管理運用独立行政法人(GPIF)は、リスク資産への投資に関して、「基本ポートフォリオの考え方」(外部リンク)という指針を示しています。

GPIFは「基本ポートフォリオの考え方」のなかで、年金ポートフォリオとして

  • 国内債券
  • 国内株式
  • 外国債券
  • 外国株式
の4つの資産クラスに投資を行うことを取り決めています。
従来は資金の大部分を国内債券で運用してきましたが、年金は将来の長きに渡り、国民の老後の資金を供給する必要があり、国内債券だけでは資金を賄えなくなったため、リスクをとって高いリターンを得られるように方針を変更しました。
現在、GPIFは4つの資産クラスを、以下のような割合で投資することとしており、これを「基本ポートフォリオ」と呼んでいます。

(出典:https://www.gpif.go.jp/gpif/portfolio.html)

早速、この基本ポートフォリオをRでコーディングしてみましょう、以下のように入力して、[Run it]してください。

#基本ポートフォリオ(各資産クラスのウエイト)
weight<-c(0.35,0.25,0.15,0.25,0)

ここではweightという変数に、各資産クラスのウエイトを代入しています。c()というのは、数字を並べてひとくくりにします、というときに使う決まり文句です。

5つの数字はそれぞれ、図の中の資産構成割合を示しています(最後の0は短期資産ですが、表にはありません)。

資産構成割合をすべて足すと1(100%)になることが確認できます。

#足すと1になることを確認
(sum(weight))

基本ポートフォリオのリターン

2014年10月31日に公表された「【参考資料】年金積立金管理運用独立行政法人の中期計画(基本ポートフォリオ)の変更」(PDFリンク)では、各資産クラスの期待リターンが記載されています。

(出典:https://www.gpif.go.jp/gpif/portfolio.html)
別に、名目賃金上昇率を差し引いた実質リターンというのも表記してありますが、本記事では実際の資産価格から推定されたであろう名目リターンに着目します。

これら期待リターンをもちいて、年金ポートフォリオのリターンを計算してみます。

まず、各資産の期待リターンをRでコーディングしてみましょう、以下のように入力して、[Run it]してください。

#各資産クラスの期待リターン(名目、経済中位)
mu<-c(2.6/100, 6.0/100, 3.7/100, 6.4/100, 1.1/100)

金融工学では期待リターンを\( \mu\)(ミュー、mu)と表すことが多いので、muとしています。

基本ポートフォリオのリターンは、各資産クラスのリターンに、前述の基本ポートフォリオのウエイトをかけることで求められます。

#ポートフォリオのリターンを計算
(mu_PF<-weight%*%mu)

テクニカルな話ですが、weightmuはどちらも「ベクトル」なので、その掛け算には%*%という記号を使います。

結果は0.04565(4.57%)となりました。これが年金の基本ポートフォリオの期待リターンです。

「【参考資料】年金積立金管理運用独立行政法人の中期計画(基本ポートフォリオ)の変更」(PDFリンク)の9ページ目に、これと全く同じ数字が記載されています。

基本ポートフォリオのリスク

「【参考資料】年金積立金管理運用独立行政法人の中期計画(基本ポートフォリオ)の変更」(PDFリンク)では、各資産クラスのリスクと相関係数が記載されています。
(出典:https://www.gpif.go.jp/gpif/portfolio.html)
リスクは各資産の期待リターンからのブレを標準偏差で表したものであり、相関係数は2つの資産クラスのリターンの連動性を表す尺度です。
これをRに入力しましょう、以下のように入力したら、[Run it]してください。

#各資産クラスの分散(標準偏差の2乗)
sigma<-c(0.047,0.251,0.126,0.273,0.005)
#相関行列
Rho<-rbind(
    c(1,-0.16,0.25,0.09,0.12),
    c(-0.16,1,0.04,0.64,-0.1),
    c(0.25,0.04,1,0.57,0.15),
    c(0.09,0.64,0.57,1,-0.14),
    c(0.12,-0.1,-0.15,-0.14,1))

rbind()というのは、c()でまとめた数値(ベクトル)を縦に並べる、という意味の関数です。

これら情報だけでは、基本ポートフォリオのリスクは計算できません。

基本ポートフォリオのリスクを計算する前に、各資産クラスの分散と相関行列から、分散共分散行列というものを作る必要があります。

以下のように入力したら、[Run it]してください。

#分散対角行列
sigma_diag<-diag(sigma)
#分散共分散行列
Sigma<-sigma_diag%*%Rho%*%sigma_diag

分散共分散行列にウエイトをかけることで、基本ポートフォリオの分散を計算することが出来ます。

なぜこういう計算になるのかという疑問がわきますが、「線形代数」という数学を勉強するとわかるようになります(記事の末尾に参考文献を挙げます)。

R onlineに以下のように入力したら、[Run it]してください。

#ポートフォリオの分散
Var_PF<-weight%*%Sigma%*%weight

分散の2乗根(ルートのこと、0.5乗も同じ)が標準偏差(リスク)になります。

#ポートフォリオのリスク(標準偏差)
(sigma_PF<-Var_PF^0.5)

結果は0.1276…(12.8%)となりました。これが年金の基本ポートフォリオのリスクです。

「【参考資料】年金積立金管理運用独立行政法人の中期計画(基本ポートフォリオ)の変更」(PDFリンク)の9ページ目に、これと全く同じ数字が記載されています。

まとめ

本記事では、年金運用の基本ポートフォリオのウエイトと期待リターン、分散等の情報から、年金ポートフォリオのリターンとリスクを計算しました。

私たちの年金の原資となっている資産は、リスク12.8%を追うことで、期待リターン4.57%の獲得を目指しています。

こうした分析は、統計や数学を少し勉強すれば簡単に行なえますので、是非ご自分でも興味を深めてみてください。

参考文献等

投資分析に必要な数学は、高校数学が基本となっていますので、復習してみることをおすすめします。


一歩進んだ投資分析には、行列や線形代数の知識が必要になりますが、金融データ分析を扱うテキストではそういった分野を解説してくれているものもあります。

PyCPAで勉強会を開催する、もしくはリクエストする方法

こんにちは、毛糸です。

私が運営事務を務める会計士×テクノロジー勉強会PyCPAで、自分も勉強会を開催したい、という声をいただきます。

PyCPAは自由で自発的な活動を大切にしております

今回はPyCPAで勉強会を開催する方法と、「こんな勉強会を開いて欲しい」とリクエストする方法についてまとめます。

PyCPAとはどんなコミュニティか

PyCPAは、プログラミング言語Pythonに興味のある会計士(CPA)の勉強会として活動を開始しましたが、発足から1年経った今、活動はより広いものになっています。

最近は特定のプログラミング言語の習得にとどまらず、新しいテクノロジー(AIやRPAなど)を取り扱うことも多くなり、また参加者も会計士以外に、エンジニアや企業の経理財務担当者などが増えています。

テクノロジーと会計、という2つの軸から大きくはずれない範囲で、PyCPAで扱うトピックには特に制限がありません。

PyCPAで勉強会を開催する方法

もしテクノロジー×会計という関心軸に沿う内容で勉強会を開きたいときは、誰でも自由に勉強会を開催していただけます。

その際に必要な手順は、以下の通りです。

1.運営事務局への連絡

PyCPAという名前で勉強会を開催する際には、勉強会の内容がPyCPAの方針に沿うものであり、営利を目的としないなどの指針に合致している必要があります。

PyCPAで勉強会を開催したくなったら、まず運営事務局にご連絡ください。

会場確保、コミュニティメンバーへの案内などをお手伝いします。

2.勉強会の準備

PyCPAの勉強会はもくもく会が中心でしたが、最近は講師を招いてのセミナーや、コミュニティメンバーによるハンズオンセミナーも開催されています。

勉強会を開催したくなったら、勉強会のスタイルを決め、講師役が必要なら依頼をします。

また、会場を確保します。PyCPAは無償の勉強会であることを条件に、スポンサーから会議室を無料提供して頂いています。

勉強会の内容によっては支援が頂ける可能性がありますので、運営事務局にお問い合わせください。

勉強会のタイムテーブルについても考えておきましょう。

勉強会のターゲットを明確にしておくのも重要です。

予備知識をどこまで要求するか、勉強会でどんな成長が得られるか、などを明記しておくと、参加者を集めやすく満足度も高まります。

3.案内・集客

勉強会の内容と日次、会場が決まったら、SNSで案内を出し、出欠管理サービスを用いて出席者を募ります。

このプロセスは通常、運営事務局が行いますが、情報の拡散は主催者の熱意が重要になりますので、積極的にSNSで発信するとたくさんの人に興味を持っていただけます。

4.当日までの準備

もくもく会であれば、主催者は特別な準備は必要ありません。

講義を招いてのセミナーであれば、講師の方に気持ちよく登壇頂けるようサポートを行います。

自身が登壇するセミナーであれば、発表資料の作成や、プログラミング用のコードを準備しておきます。

5.当日

勉強会当日には司会進行が必要です。

もくもく会であれば、参加者の目的と作業内容を発表してもらい、

講師を招いてのセミナーであれば、スムーズな発表のための機材準備を行います。講師紹介も行うのがいいでしょう。

自身が登壇する場合には、当日現場できちんと発表ができるか、機材等の確認をします。

6.発表を終えたら

参加者とコミュニケーションを取ることで、フィードバックが得られます。

質疑応答や意見交換を行うことで、発表者自身の成長につながります。

登壇者は参加者から強い尊敬の目が向けられます。

それをきっかけにビジネスのお話につながった例もあります。

以上が簡単な勉強会開催の流れです。

個別具体的な対応は、これまで勉強会を運営してきた事務局メンバーが丁寧にレクチャーし、伴走しますので、初めて勉強会を開催する方でも心配は要りません。

勉強会のリクエスト

PyCPAはコミュニティメンバーの自発的な探求心を大切にしています。

勉強会で扱ってほしいトピックがあれば、その実現のために運営事務局がサポートします。

勉強会のリクエストは、次のような方法でお寄せいただけます。

  • ツイッターでハッシュタグ #PyCPA をつけて呟く
  • 運営事務局にリプライを送る
  • Slackで発言する
  • 勉強会に来たときに話題にしてみる

事務局のリソース上、すべてのリクエストにお答えするのは難しいですが、コミュニティメンバーに楽しんでいただけそうな内容であれば、実現に向けて動きます。

場合によっては、勉強会の主催者側に回っていただくことをおすすめする場合もあります。

まとめ

PyCPAで勉強会を開催する方法と、リクエストの方法についてまとめました。

PyCPAはメンバー一人ひとりが自発的に関与し作り上げていくコミュニティであり、決して運営事務局=コミュニティオーナーではありません。

みなさんの探究心には価値があります。

探求を一緒にカタチにしませんか。