2020年12月5日土曜日

Apple Silicon MacBook Air

MacBook Air2013からApple Silicon MacBook Airのときにやったこと

移行アシスタントでやるとすぐに同じ状態で使えるのはいいんだが、要らなそうなファイルも持ってきてしまう。きれいさっぱりな状態にしたかったのでひとまず
  1. まっさらな状態で環境設定
  2. ファイル共有で必要なファイルだけコピペ
  3. 隠しファイルの表示はcommand+shift+.(dot)

ミュージック

  1. ミュージック(iTunes)は、iTunesのメニューで「ファイル」->「ライブラリ」->「ライブラリを整理」を選択して、「ファイルを統合」を実施
  2. 「ミュージック」内「iTunes」ディレクトリ配下に必要なファイルが作成される
  3. この「iTunes」ディレクトリを丸ごと、新Macの「ミュージック」へコピー
  4. 新MacでiTunesを「option」を押しながら起動すると、ライブラリを選択できるようになる
  5. 「ライブラリを選択」から「iTunes」内の「iTunes Library.itl」を選択すれば、移行完了

    写真

      1. 写真は、「ピクチャ」内に「写真 Library」があり、これを旧Macから新Macの同じ場所にコピぺ
      2. 新Macで「option」を押しながら「写真」を起動して、今コピーしてきたライブラリを選択して読み込む


      Podcast

        1. podcastで、かつでCDから取り込んだものがあって、これがpodcastでは見た目では存在するがファイルが見つからないと言われる
        2. podcastのファイルは、ユーザ/名前/ ライブラリ / Group Containers / 243LU875E5.groups.com.apple.podcastsのキャッシュフォルダーに保存されている
        3. これを同じ箇所にコピペすればいいかと思ったが状況変わらず
        4. そこで「ブック」の「ライブラリに追加」でオーディオブックとして使っていくことにする


        Python

          1. pip3 install numpyができない
          2. pipのアップデートはこの段階でもできた
          3. x86_64とarm64の違いがあるらしい、後者でやれなくはないがまだいろいろ大変そうなので、x86_64のほうでやるようにする
          4. Finderからターミナルの「情報を見る」を開き「Rosettaを使用して開く」にチェックを付けたうえで、ターミナル起動
          5. python3 -m pip install numpy


          Python続き

          1. ぽいぽいパッケージ入れてさてjupyter使おうとしたらエラーが出る
          2. % jupyter notebook
          3. zsh: command not found: jupyter
          4. どうやら.zshrc作ってパスを通さないといけないらしい
          5. % echo $PATH 今のパスを確認してみる
          6. /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 
          7. % touch .zshrc
          8. % open ~/.zshrc
          9. export PATH="$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
          10. % source ~/.zshrc
          11. だが command not found: jupyter
          12. その後python本体のpathが通ってないことに気づく
          13. そういえばパッケージ入れてるときになんか表示されてた
          14. WARNING: The scripts f2py, f2py3 and f2py3.8 are installed in '/Users/[user_name]/Library/Python/3.8/bin' which is not on PATH.  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
          15. 改めて % open ~/.zshrc
          16. export PATH="$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/[user_name]/Library/Python/3.8/bin"
          17. % source ~/.zshrc
          18. 無事にjupyter使えるようになった

          Pythonおまけ

          1. 上のjupyter問題のときにパッケージをいったん全部削除したかった
          2. pip3 freeze --user | xargs pip3 uninstall -y
          https://qastack.jp/programming/33412974/how-to-uninstall-a-package-installed-with-pip-install-user

          1. prophet使うときに毎度エラーメッセージが出ていた
          2. Importing plotly failed. Interactive plots will not work.
          3. pip3 install --upgrade plotly.
          https://github.com/facebook/prophet/issues/832


          1. prophetのcross_validationでdask使用時にエラーが出る
          2. pip3 install "dask[distributed]" --upgrade
          3. (これやってもdask使用時にエラーが出ることはある)




          pipで一括インストールする為のrequirements.txtの書き方
          https://www.sukerou.com/2019/03/pip-python-tips.html

          読めばわかるMACでのPATH設定を完全理解
          https://reffect.co.jp/windows/full_understanding_mac

          M1 Mac
          https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html

          M1 Macの開発環境
          https://qiita.com/shibukawa/items/797b7cbb7e530842e6f7




          Homebrew

          1. homebrewをインストール
          2. brew install imagemagick
          3. そしたらpython3.9もインストールされちゃう
          4. そしたらpandasが使えない
          5. brew uninstall --force --ignore-dependencies python3
           


          あと、まっさらなosのまっさらなmacを手に入れたら、まずはosアップデートしておくことが大事だと学ぶ。



          参考文献


          旧Macから新Macへ「移行アシスタント」なしで移行
          https://rikei-fufu.com/2019/10/27/post-2187-mac-migration/


          macOS Catalinaでは、iTunesの分割によりメディアファイルの扱いに変更が
          https://minatokobe.com/wp/os-x/macos-catalina/post-57359.html


          Apple SiliconにおけるHomebrewのベストプラクティス
          https://qiita.com/yujiod/items/56002a7cef5b5a3be3fb


          macOS 11 Big Sur compatibility on Apple Silicon #7857
          https://github.com/Homebrew/brew/issues/7857


          Homebrew
          https://brew.sh/index_ja

          HomebrewでいれたPythonの削除
          https://qiita.com/baozam/items/268906b5984a37239b7d



          Apple M1 チップ搭載の Mac で macOS を再インストール中にパーソナライズエラーが表示される場合
          https://support.apple.com/ja-jp/HT211983

          Appleシリコンを搭載したMacでmacOS復旧を使用する
          https://support.apple.com/ja-jp/guide/mac-help/mchl82829c17/mac




          Homebrew&Python 立て直し

          現状課題

          • macにもともと入ってるpythonにpipでやってた、これを仮想環境でやりたい
          • x86_64(rosetta)の方でやってた、これをarm64でやりたい


          python環境を作り直す

          1. 今のスで入れてるライブラリをとりあえず削除
          2. pip freeze | grep -v '@' | awk -F'==' '{print $1}' | sudo xargs pip uninstall -y
          3. brewのインストール https://brew.sh/ja/ に行って、コマンドをコピーして、と思ったが
          4. macOSをお使いの場合は新しい.pkgインストーラーをお試し下さい
          5. とのことなので https://github.com/Homebrew/brew/releases/tag/4.4.20 で.pkgを落としてきて実行
          6. ちゃんとbrewがインストールできたかの確認 brew help
          7. unknown or unsupported macOS version: :dunno (MacOSVersionError) と言われる
          8. brew update-reset とするといいらしい、やってみた
          9. brew help やったらいい感じになったらしい
          10. 現在の PATH を確認 $ echo $PATH
          11. PATH のどこかに /opt/homebrew/bin が含まれていればOK
          12. $ which brew 出力が /opt/homebrew/bin/brew になっていれば、正しく PATH が設定されている
          13. xzのインストール $ brew install xz
          14. pyenvとは?Pythonのバージョンを管理してくれるツール
          15. Homebrewコマンドでpyenvをインストールする $ brew install pyenv
          16. pyenvからPythonをインストールする。ここからはpyenvコマンドを使います。まずは、以下のコマンドを入力します。$ pyenv install --list pyenvでインストールできるバージョンが出力されます
          17. $ pyenv install 3.11.0
          18. pyenvのpathを通す(以下を追記した)
          export PYENV_ROOT="$HOME/.pyenv"
            export PATH="$PYENV_ROOT/bin:$PATH"
              eval "$(pyenv init -)"

              などとやってたんだが、pymc5を使いたくて、そしてpymc5はminiforgeがいいよというので、pyenv環境は全部削除して、brewでminiforgeを入れ直すことにした




              1. miniforgeインストール  $ brew install miniforge
              2. condaのバージョン確認 $ conda --version
              3. conda 24.11.3 versionを返してくれればcondaの準備はOKです
              4. $ which conda
              5. /opt/homebrew/bin/conda path追加した方がいいのかな?でも以下は実行できてるしな conda env list
              6. 仮想環境作成しつつ、python本体をインストール(causal impactが3.11じゃないと動かないかもなので)
              7. $ conda create --name pm5_env python=3.11

              /opt/homebrew/Caskroom/miniforge/base
              /opt/homebrew/Caskroom/miniforge/base/envs/pm5_env


              1. $ conda activate pm5_env  としても
              2. CondaError: Run ‘conda init’ before ‘conda activate’ と言われる
              3. https://manabi-corpeng.com/conda-activate-init-error/ をみて、
              4. 元はここ https://manabi-corpeng.com/miniconda-install/#index_id5
              5. $ conda init zsh
              6. として、ターミナル再度立ち上げ直すと
              7. $ conda activate pm5_env できて、
              8. $ python --version
              9. でpython 3.11.11と返ってきた。無事に仮想環境にpython本体のインストール完了

              1. pymc5をインストール https://www.pymc.io/projects/docs/en/latest/installation.html
              2. $ conda install -c conda-forge "pymc>=5"
              3. (arviz, graphviz, lumpy, pandas, scipyなども)
              4. $ conda install -c conda-forge seaborn prophet matplotlib ipykernel ipywidgets
              5. $ conda install -c conda-forge seaborn matplotlib ipykernel ipywidgets
              6. (prophetがないと言われた、statsmodelsも)
              7. できんな $ conda install -c conda-forge prophet
              8. prophet causal impactも入れてな https://facebook.github.io/prophet/docs/installation.html#python

              uname -m
              arm64


              imagemagickインストール

              1. $ brew install imagemagick
              2. python 3.13がインストールされちゃったのを削除する
              3. $ brew uninstall --ignore-dependencies python

              brewの要らなくなったのを削除


              brew cleanup → 古いキャッシュや不要ファイルを削除(推奨)
              brew cleanup --prune=0 → すべて のキャッシュと不要ファイルを削除
              brew autoremove → 依存関係がなくなったパッケージを削除
              rm -rf $(brew --cache) → キャッシュ全削除


              conda clean --all すべてのキャッシュ・不要ファイルを削除(推奨)



              仮想環境のをbaseに適用したい


              仮想環境をアクティベート
              $ conda activate myenv

              インストール済みパッケージをエクスポート
              $ conda list --export > myenv_packages.txt

              base 環境に適用
              $ conda activate base
              $ conda install --file myenv_packages.txt


              conda activate pm5_env 
              conda deactivate

              conda activate base



              conda create --name base_backup --clone base
              このコマンドで、base 環境のコピーを base_backup という名前の新しい仮想環境として作成できます。

              不要になった古い環境を削除
              conda remove --name pm5_env --all

              2020年9月30日水曜日

              Prophet by Python on Mac

              # pip3 install pystan
              # pip3 install fbprophet
              
              python3 -m pip install prophet
              python3 -m pip install --upgrade plotly
              
              Prophetによる時系列データの予測
              https://anaconda.org/logman/forecast1_0/notebook
              Diagnostics
              https://facebook.github.io/prophet/docs/diagnostics.html
              
              
              https://github.com/sasasakaz/trial/blob/main/prophet.ipynb

              2020年9月26日土曜日

              マイケル・サンデルの白熱教室2018

              哲学は机上の学問ではない、空想世界のものではない
              市民が暮らす現実社会にこそ必要
              差別はどんなときも正義に反することなのか
              収入や富の格差とどのように向き合えばよいのか
              国境をめぐる問題をどう考えるべきか
              民主主義の力が試されている

              1.移民

              難民の受け入れ、断る権利はあるのか?
              では移民の受け入れ、断る権利はあるのか?
              文化面での影響、経済面
              親の遺産を受け取る権利はあるのか?
              国境の概念は?
              出国を制限する権利はあるのか?
              帰属意識は?以前の国か?今の国か?
              愛国心


              2.AIは最適な恋人を探せるか

              AIは完璧なマッチングができるのかもしれないが我々人間はそれを望んでいるのか
              人間の医師とAI医師のどちらに手術してほしいか
              感情で動くからこそ人間に手術、延命措置してほしいのでは
              自動運転にどうプログラミングするか
              AIはコメディアンになれるか
              死んだ人のデジタルアバターを作ることは?
              冷や汗、心地悪さ、不完全さが人間には必要なのでは?


              3.人を見た目で選んでもいいのか

              どんな場合でも差別は正義に反するのか
              人種差別と見た目による差別は同じか違うか
              特定の人種を優遇的に採用することは許されるか
               あとに続く人への道を開くことにもなるのではないか
              特定の人種にだけ職務質問するのは許されるか
              空港のセキュリティーチェックでの差別は許されるか

              差別を受けると社会に対する信頼が薄れる
              より多くの機会を与え、より多様な社会を作り出す優遇的差別なら許されるのではないか
              アリストテレスのいう正義の定義「人間を平等に同じように扱うこと」
               真の議論は、平等とは何か、同じようなとはどのような点においてなのか、それを決めようとするときに生じる
               その答えは経済的原理によって決められるべきか

              差別に関する議論は簡単だと言われることがある
              なぜならほとんどの人は差別には反対だし、人間は平等に扱われるべきだと考えているからだ
              ところが実際に難しい選択、困難な決断に直面したとき、私たちはそれぞれに問い直すことを迫られる
              そもそも目的とは何か、その目的を達成するために私たちのどんな人間性が問われているのか
              どんなチャンスが広がり、なにが障害や犠牲になるのか
              どんな差別が不当でなにが妥当な差別なのか


              4.ロナウドの年収は高すぎる?

              ロナウドが教師の2000倍稼ぐのは公正なのか
               才能への評価なのか努力への評価なのか
               希望が、問題は社会の不平等にあることを見えなくしている
               社会が評価するのは努力だけではない、才能や素質もではないか
              生まれつきの才能、つまり運がその人の収入を左右するのは正義や公正に反することなのか

              レースの勝者は道徳的にも勝利に値するのか
              実力主義社会は貴族社会よりも公正といえるのか
               偶然、才能を持っていること、偶然、その才能が称賛される社会であること、両方揃ってたからロナウドがいられる


              もしあなたが金持ちだったら実力社会と偶然社会どちらを選ぶか
              金持ちのときは実力社会がいいという、達成感や満足感、誇りを自分に感じたいから
              一方、収入の低い恵まれない立場だったら、実力社会には住みにくさを感じるだろう
              今、社会から取り残されると感じる人々は、社会の不公平さだけに不満があるわけではない
              自分が尊重されていないと感じる
              収入が低く質素な生活を送っているのは努力が足りないからだ、他の人ほど価値がないからだと言われてるように感じる
              社会が実際に不平等であるという状況に加えて、それぞれの人に与えられた地位は本人の努力で決まるという考え方は地位が高くない人々にとってはとても腹ただしく感じる、屈辱的でさえある
              このように実力社会は所得や富の分配からだけでなく、人間の尊厳からも問題となる
              社会はすべての人にそのはたらきに見合った敬意を払えているのか

              古代ギリシャの政治哲学者は、分配的公正(配分の正義)について話し合った
              議論の中心は所得や富についてではなかった、社会的な役割や義務、名誉などについてであった
              その議論は今も続いている
              配分の正義は単に市場が求める価値や公平さだけの問題ではない
              人の名誉や尊厳に関わることでもある
              公正な分配をどうおこなうべきか、現在の民主主義社会の根底にある課題の一つである


              5.プライバシー

              警察は病院のDNAデータベースを利用していいか
              全国民のDNA情報の登録を義務づける制度に賛成するか
              保険会社に自分の情報を提供して値引きを受けるか
              Uberが乗客の情報を公開するのはプライバシーの侵害か
              プライバシーには固有の価値はあるのか、同意があればいいのか
              正しい同意さえあればプライバシーの侵害とは存在しなくなるのか

              エリック・シュミットがプライバシーの問題について質問されたときの答え
              あなたが誰にも知られたくないと思っていることは、そもそもそれをやること自体が間違いだったのではないですか?

              ネットの個人向け広告はプライバシーの侵害か
              自分のプライバシーで最も重要な問題は、見た動画?読んだ本?行った場所?

              古代ギリシャ、ソクラテスの時代、プライバシーが問題になることはなかった
              公の領域と個人の領域が区別されていたから
              公の領域、すなわち民主主義により価値を置き、実践を進めた
              個人の領域だけで生きる人々をイディオティスと呼んだ、これが愚か者イディオットの語源となった
              イディオティスは市民社会への参加を果たしていないと考えられていた
              だから古代の人々にとってプライバシーとは軽蔑の対象だった
              ところが現代では重要な価値を持つ難しい課題となっている

              プライバシーとは何か、なぜ重要なのかを説明するのが難しいのは、それが二次的な役割を担っているから
              公平な社会、自由な社会、民主主義的な社会を求めている、でも誰もプライベートな社会を求めてるとはいわない
              プライバシーはなにかしらの脅威に対抗するための価値をもつものだから
              高圧的で独裁的な国家からの脅威、市民を監視し反乱の芽を摘み取ろうとする国家からの脅威、
              なにかを売りつけようと私たちの動向を常に見続ける企業や調査会社、ソーシャルメディアからの脅威かもしれない
              現代はDNAとビッグデータの時代でもある
              民主的な社会に生きる市民にとって、プライバシーの意味を広く議論し、
              私たちをなにから守るものなのかを考え続けるのが重要

              公正な社会とは何か、平等とは、市民の義務や人間性の価値とは何か
              たとえ全員が同意する結論にたどり着かなくても大切なことを教えてくれる
              それこそ公共性の精神、お互いへの敬意の重要さである

              ときに激しい意見の対立が起きたとしても、公の場で議論を交わすことで民主的な社会に生きる市民としての資質が養われていく



              SARIMA

              東アジア積米国揚コンテナ荷動き予測におけるSARIMAモデルの適用性

              http://www.ide.titech.ac.jp/~hanaoka/finalversion-of-conference.pdf

              3.データの定常性
              ADF検定
              原系列に加えて差分系列を用いた理由は、原系列が非定常である場合、差分系列をとることによりデータが定常になることが多い(9)ため

              原系列 単位根は存在しなかった。差分系列の場合は、t値が-9.368と99%有意水準でも帰無仮説が棄却されない。これにより、差分系列の定常性が確認された。以上の結果を踏まえ、差分系列を用いてSARIMAモデルを開発し、その適用性を検証する

              4.モデル
              4-1モデル概要

              自己回帰項の次数(p)は、自身(荷動き量)の過去の値について、どこまで遡って説明変数として用いるかを示している。例えば、pが2であれば1期及び2期前の荷動き量をモデルの説明変数として考慮することになる

              階差の次数(d)については、分析に利用する時系列データが定常性を有するまでに必要となった階差数を示す。本研究では、3.で述べたように、一階の差分系列が定常性を有しているため、dは1となる。

              なお、原系列が定常性を有している場合は、dは0となる。

              移動平均項の次数(q)については、自身の過去の値の誤差について、どこまで遡って説明変数として用いるかを示している

              なお、本研究では月次データを用いているため、季節変動の期間(s)は12である可能性が高い(10)。このとき、季節自己回帰項の次数、季節階差の次数、季節移動平均項の次数はそれぞれP、D、Q、に入る数値の12倍前の値が説明変数として用いられる。例えばPが2であれば、12期及び24期前の荷動き量を説明変数として考慮する。

              4-2モデルのパラメータ特定
              コレログラム

              図3に差分系列の自己相関係数、図4に同偏自己相関係数

              破線内の領域は、標本の自己相関がゼロであるという検定の95%棄却域である。領域の外側に(偏)自己相関係数がある場合は、(偏)自己相関が少なくとも有意水準95%で存在する。図3を参照すると、12次、24次、36次において特に強い自己相関を有していることが分かる。これは1年周期の季節性が存在していることを示唆しているため、季節階差sは12とするのが適切と考えられる。そこで、本研究では、季節階差sは12とする。また、前節の単位根検定によって、1階の差分系列が定常性を有していることが分かった。そのため、d及びDは1とする。

              次に、p、q、P、Qの特定について検討する。図3及び図4を参照すると、自己相関と偏自己相関ともに3期ラグの相関が比較的高く、4期ラグで初めて自己相関係数、偏自己相関係数ともに95%水準で棄却される。

              SARIMAモデルでは、「おそらく原系列の」
              (偏)自己相関係数のコレログラムを参照するだけではラグ数を決定できない

              しかし、図3、4の「階差系列の」コレログラムを参照することにより、0≦p, q, P, Q≦3としてパラメータの目安を立てることができる(9)。p, q, P, Qについて、0~3を各変数に当てはめ

              最尤法で推定し、AICが最小となるモデルを同定

              5.モデルの診断
              5-1残差の定常性

              同定された「SARIMA」モデルが適切であれば、残差は定常性を持ち、(偏)自己相関を持たないことが分かっている

              同定されたモデルの残差の自己相関係数及び偏自己相関係数のコレログラムを示す。破線の内側の領域は自己相関の値がゼロであるという検定の95%棄却域を示している。つまり、(偏)自己相関係数が破線の内側に留まっていれば、モデルは適切であると判断される。両図より、(偏)自己相関係数は破線の内側にあり、同定されたモデルによる残差が(偏)自己相関を有さないことが確認できる 以上より、残差の定常性という点からモデルの妥当性を確認できた

              5-2実績値と再現値の比較

              (9)沖本竜義:経済・ファイナンスデータの計量時系列分析、朝倉書店、2010
              (10)山澤成康:実践計量経済学入門、日本評論社、2004






              時系列解析入門
              https://www.ai.u-hyogo.ac.jp/~arima/arima.pdf

              定常時系列の解析に使われるARMAモデル・SARIMAモデルとは?
              https://ai-trend.jp/basic-study/time-series-analysis/sarima_model/

              SARIMAモデルでは合計7個の次数があります。 時系列方向のARIMA( p,d,q )に加え季節差分方向のARIMA( P,D,Q )、さらには周期 s があるためです。 これをSARIMA( p,d,q )( P,D,Q )[ s ]と表記することがあります。 それぞれの次数に対し0か1を考えるとしても、 27=128 通りのモデルを考えなければなりません。 このような組み合わせ爆発の問題を回避するため、周期 s は作図や自己相関関数をもとに決め打ちし、季節差分の P,D,Qは低く抑えることがよく行われます。

              残差に関する4つのプロットを見ることができます。 左上から順に、標準化した残差の時系列プロット、残差のヒストグラムと正規分布(とKDE分布)の密度関数、残差の正規QQプロット、残差の自己相関関数です。 残差の自己相関は低くまとまっており、ほぼ問題ないと言えるでしょう。



              心理統計法at放送大学

              豊田秀樹 2017

              第3回

              MCMC法
              事後分布に従うパラメータを乱数として発生させ、パラメータを確率分布として表す

              HMC法 ハミルトニアンモンテカルロ法
              物理学分野の力学的エネルギーの原理を応用したMCMC法の一つの方法

              生成
              HMC法は、同時事後分布に従う乱数を、蛇口から水が流れるように継続的に生成する

              捨てる区間 burn in
              乱数の数 chain

              点推定量
               事後期待値 EAP
               事後中央値 MED
               事後確率最大値 MAP
                事後分布が正規分布だったら平均値と同じだし、EAP=MED=MAP
                一様分布だったら最尤値と同じ=標本平均と同じ

               点推定値の精度
                事後分布の散布度(分散や標準偏差)の小ささ=点推定値の精度


              第?回

              検定力分析
               適切な検定ができるようにサンプルサイズを決める
                大きすぎず小さすぎずに
                でもそれって順番逆じゃね?
                サンプルサイズは実験者が主体的に決めることだべ


              第10回

              有意性検定は結果がシンプルでいい
              ブラックボックスでもいい
              統計熟知してない人には特にそう思われやすい
              有意水準を絶対的なものとして捉えちゃうので

              でも本当は同じ5%でも、
              サンプル数が多くてp<0.05になった場合(第一種の過誤が起きてる)もあれば、
              サンプル数が小さくてp>0.05になった場合(第二種の過誤が起きてる)場合もあるのに、絶対唯一視されてしまうという危険性がある

              サンプル数が多くて無意味な場合
              サンプル数が少なくて意味のある差を検出できない場合


              差がある確率は80%といわれると解釈は人によって分かれる
               書いた人が差があると思っても査読者はそう思わないかもしれない

               だが判断を各自が自在にできるのがベイズ推定のよきところともいえる
               サンプルサイズで結果の意味が変わることはない


              ABテストの結果、AがBを上回る確率は60%でした、と報告する
              BをAに切り替えるのにほぼコストがかからないのであれば、Aに切り替えようという判断がしやすい

              一方、AB間に差があるとはいえない、と報告する
              BをAに切り替えるのにほぼコストがかからないとはいえ、どっちつかずの報告ではAに切り替える判断はしにくい
              その結果、Aに切り替えていれば60%の確率で売上が増えたかもしれない未来を捨てている、機会損失が起きている
              でもそのこと自体に気づかないままに時は過ぎていく、これが怖い


              第11回

              オッズ比 odds = p / (1-p)

              チームAがBに勝つ確率が0.2と予想されている場合は
              0.2 / (1-0.2) = 1/4となる
              Aが勝つと予想している人が、Bが勝つと予想している人の1/4である

              オッズ比=賭けに勝った人の払い戻し倍率の逆数ともいえる
              Aに1,000円賭けてAが勝った時は、外れた人の掛け金をみんなもらい
              元金+4000円をもらえる


              2項分布の掛け合わせ(2x2のクロス数表、男女別のブランド認知率)
               男女間にブランド認知に差はあるか?などを調べる場合は
               リスク差、リスク比、オッズ比をみる
                有意性検定のカイ二乗検定と同じ


              第13回

              単回帰分析における回帰直線は、目的変数と説明変数のおおまかな関係を示してくれて便利
              だが説明変数では説明しきれない目的変数の特徴を考察することも大事、そのためには残差プロット

              ある2つの観測データにおいて、説明変数の値は同程度なのに、残差に大きな違いがあったりする、その違いが何かはわからない
              でもその違いはなぜかを考えることにより新たな別の説明変数を着想するきっかけになる

              残差プロットは新しい研究視点を与えてくれることもあり、観測対象に対する有用な知見を示してくれる

              2020年6月14日日曜日

              渡辺澄夫

              渡辺澄夫
              http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/index-j.html

              データ解析
              http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/da2019.html

              特異モデルにおけるベイズ検定と変化点発見への応用
              http://watanabe-www.math.dis.titech.ac.jp/users/fujiwara/doc/fujiwara_ibis2006.ppt.pdf

              Pythonや機械学習を学ぶ

              機械学習の前に重要なデータ抽出・加工に便利なPythonライブラリ「pandas」の基本的な使い方のチュートリアル
              https://www.atmarkit.co.jp/ait/articles/1802/13/news012.html


              [Python入門]リストの操作 (1/4)
              https://www.atmarkit.co.jp/ait/articles/1906/04/news009.html

              時系列データへの回帰分析
              https://logics-of-blue.com/time-series-regression/


              【Python】pandasのDataframe操作
              http://canisterism.hatenablog.com/entry/2018/01/07/150105


              #特定のセルの値を取り出してseriesに
              pythonでexcelファイル処理まとめ
              https://qiita.com/hasepy/items/06d5d2e2b6495752442c


              [Python] Excelで文字化けしないCSVファイルを書き出す
              https://qiita.com/y4m3/items/674423b596284bbc7cf7

              Pythonの日本語処理
              http://www.wakayama-u.ac.jp/~kazama/lab/python/i18n.html
              標準出力の文字コードと自動変換
              https://www.javadrive.jp/python/japan/index2.html
              文字コードの指定
              https://www.javadrive.jp/python/japan/index1.html
              Unicode文字列(ユニコード文字列)
              https://www.javadrive.jp/python/string/index5.html

              日本語文字列コード問題まとめ
              http://python.matrix.jp/pages/tips/string/encoding.html

              python3で日本語を含むURL(日本語URL)にurllibでアクセスする際、htmlで勝手にencodeされてエラーするので回避策をメモ
              https://qiita.com/mix/items/87d094414e46f857de45

              日本語を含むURLでつまづく
              http://mankuro.xyz/blog/2017/04/25/japanese-url/
              単一ドメインを走査する(URLに日本語を含む場合)
              http://nnpo.hatenablog.com/entry/2016/12/13/002540
              PythonでURLエンコード/デコード
              http://shuzo-kino.hateblo.jp/entry/2016/10/22/224034

              pythonでutf-8日本語文字列を、URIエンコード・URLデコードする
              http://linux.oboe-gaki.com/archives/000333.html
              Pythonでマルチバイト文字を扱う際に気をつける点。
              https://gist.github.com/devlights/4561968
              Python と文字コード
              http://www.kabipan.com/computer/python/unicode.html


              [Python] urllib.parseによるURLエンコード/デコードの方法
              https://hibiki-press.tech/learn_prog/python/url-encoding/2804



              機械学習

              第1回 難しくない! PyTorchでニューラルネットワークの基本
              https://www.atmarkit.co.jp/ait/articles/2002/06/news025.html

              AI・機械学習のための数学超入門 ― 前提知識は四則演算だけ! (1/4)
              https://www.atmarkit.co.jp/ait/articles/2003/02/news023.html

              機械学習やディープラーニングってどんなもの? (1/2)
              https://www.atmarkit.co.jp/ait/articles/2003/24/news016.html

              「機械学習の最先端」を効率的に情報収集! おすすめのメルマガ3選
              https://www.atmarkit.co.jp/ait/articles/2006/11/news016.html

              機械学習の手法13選 ー 初級者、中級者別に解説!
              https://ainow.ai/2020/06/04/222969/

              スターバックスはコーヒー事業者ではない ― データテック企業なのだ
              https://ainow.ai/2020/05/28/222388/


              平均二乗誤差

              pytorchにはMSELossがある

              criterion = torch.nn.MSELoss()

              y = f(x)
              loss = criterion(y, t)
              print(loss.data)

              自作するとこう
              def mycriterion(x, y):
                  result = (x - y) ** 2
                  return result.sum() / len(result)


              myloss = mycriterion(y, t)
              print(myloss)





              2020年5月30日土曜日

              SSブログとGoogleフォトのアルバム

              So-netブログ改めSSブログは、Googleフォトの画像を埋め込むことができる。
              ブログ側にてアップした画像は、以前は同じアルバムに入ってた。
              2019年3月ごろからはアップしたタイミングごとに別のアルバムになった。

              2020年3月ごろから、ブログ閲覧者はGoogleアカウントにサインインしないと画像が見れなくなっていた、ことに3ヶ月くらいしてから気づいた。

              見れるようにするには、Googleフォトにて、アルバムを共有設定にする必要がどうやらあるらしい。。。



              SSブログやBloggerからアップした画像を削除したい場合


              Googleアルバムアーカイブというところにアクセスする必要があるらしい



              2020年5月24日日曜日

              Pythonで体験するベイズ推論

              Pythonで体験するベイズ推論 PyMCによるMCMC入門
              キャメロン デビッドソン=ピロン(著) 玉木徹(翻訳)

              PyMC3のインストール方法

              岩波データサイエンス Vol.1
              [特集] ベイズ推論とMCMCのフリーソフト のサポートページ
              https://sites.google.com/site/iwanamidatascience/vol1/support_tokushu#TOC-PyMC3-

              Python ヒッチハイク・ガイド

              https://python-guideja.readthedocs.io/ja/latest/

              PcMC3のコード

              https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers

              Chapter1の一部をやってみた

              https://github.com/sasasakaz/bayesian/blob/main/bayesian_estimation_for_change_point_detection.ipynb

              Bloggerにgoogle code prettify


              https://github.com/googlearchive/code-prettify

              <head> ... </head> の間に以下を追記する
              <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>

              HTML編集モードにして
              <pre class="prettyprint">
              ...
              ...
              </pre>
              で挟んでコード記述する

              上のままではコード欄の行番号が表示されない
              <pre class="prettyprint linenums"> と書けば表示される

              言語はだいたい識別してくれるらしい、明示するならこう
              <pre class="prettyprint lang-html">
                The lang-* class specifies the language file extensions.
                File extensions supported by default include:
                  "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", "java",
                  "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", "xhtml", "xml",
                  "xsl".
              </pre>



              公式のスキンはあるがイマイチだったので
              https://jmblog.github.io/color-themes-for-google-code-prettify/ を見て
              Atelier lakeside Lightにする

              左カラムのテーマタブを選択して、カスタマイズをクリック、
              左上カラムで上級者向けタブを選択、CSS追加を選択、
              コピペしてきたカスタムCSSを追加、ブログに適用を押す

              気に入らなくて他のに変えたい場合は、上で設定したCSSをいったん削除する。
              左カラムのテーマタブを選択して、HTMLの編集をクリック、
              <b:skin> ... </b:skin> の中に追加したCSSがあるのでこれ削ってテーマを保存して、改めて追加しなおす



              Google Code Prettifyその後

              以下に差し替えた
              <script src='https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst'/>
              
              Google Code Prettifyでソースコードを読みやすくする




              デフォルトでは、1行ごとに行番号が表示されないので、1行ごとに番号を表示されたい場合はCSSで下記のように指定します

              .prettyprint ol.linenums > li {
                list-style-type: decimal; 
              }
              


              文章中にhtmlタグなどを記述する


              1. 文章中に1行だけコードを挟む場合
              HTMLの編集モードで、以下のように <code> タグを使うと、コードっぽく表示されます

              「Pythonで現在の日時を取得するには、<code>datetime.now()</code> を使います」

              2. 複数行のコードを書く場合
              複数行のコードを書く場合、<pre> タグと <code> タグを組み合わせると、適切にフォーマットされます。

              <pre><code>
              import datetime
              now = datetime.datetime.now()
              print(now)
              </code></pre>


              特殊文字を書き換える必要がある
              https://www.peko-step.com/tool/escphtml.html


              2020年4月12日日曜日

              JavaScript

              直接リンクを防ぎたい 
              http://www.imymode.com/exp/js06.html

              JavaScriptでデータベースを作りたい 
              http://www.imymode.com/exp/js04.html

              JavaScriptでパスワード認証を設定! 簡単な閲覧制限
              https://allabout.co.jp/gm/gc/23839/

              PDFファイルなどをブラウザで表示させずに強制的にダウンロード保存させる方法
              https://www.tsukimi.net/pdf_mp3_mp4_force-download.html

              JavaScriptまとめ
              http://cya.sakura.ne.jp/js/index.htm

              JavaScriptを書いてみる
              https://team-lab.github.io/skillup/2/1.html

              PHPはサーバ上で実行されるため、サーバ上のデータ(データベースなど)の操作などを行うのに適しています。
              一方JavaScriptはブラウザ上で実行されるため、リアルタイムにダイナミックな動きを実現できます。

              JavaScriptもブラウザによってかなり動作の違いがあります。そこでブラウザ間の違いを吸収してくれるライブラリを利用することにします。jQueryというライブラリが最も有名




              Macのショートカットキー - 不可視ファイルの表示/非表示を切り替える
              command + shift + .

              [Mac] ターミナルの$前の出力内容をカスタマイズする
              https://www.yoheim.net/blog.php?q=20140309

              iTerm2・ターミナルの見た目をカスタマイズした
              https://shugohirao.com/blog/204
              ./bashrcはターミナル起動時に呼び出されるわけではないので、毎回この設定を反映させるためにも、~/.bash_profile に~./bashrcを呼び出す処理を書いておく

              ターミナル起動→ bash_profileが実行されて、最後の行でbashrcが呼ばれて→ターミナルにPS1の設定が反映される。




              日本語のローマ字表記の推奨形式

              日本語のローマ字表記の推奨形式
              http://park.itc.u-tokyo.ac.jp/eigo/UT-Komaba-Nihongo-no-romaji-hyoki-v1.pdf

              ā ī ū ē ō



              M-Lab
              https://speed.measurementlab.net/#/

              Internet Speed Test
              https://sourceforge.net/speedtest/



              見せろ! ラズパイ ~実家の親を数値で「見える化」せよ (1/6)
              https://eetimes.jp/ee/articles/2001/30/news036.html

              江端さんのDIY奮闘記 EtherCATでホームセキュリティシステムを作る
              https://eetimes.jp/ee/series/1861/

              プレゼンテーション資料はラブレターである (1/5)
              https://eetimes.jp/ee/articles/1211/12/news010.html

              本当に怖い「飛び込み」の世界、知っておきたい4つの知識 (6/9)
              https://eetimes.jp/ee/articles/1701/18/news034_6.html

              部分痩せは可能なのか? (後編) (2/9)
              https://eetimes.jp/ee/articles/1509/29/news012_2.html

              世界を「数字」で回してみよう
              https://eetimes.jp/ee/series/1534/

              開き直る人工知能 ~ 「完璧さ」を捨てた故に進歩した稀有な技術 (1/9)
              https://eetimes.jp/ee/articles/1708/29/news024.html



              2020年4月11日土曜日

              書評「ベイズモデリングによるマーケティング分析」「広告マネジメント」

              「ベイズモデリングによるマーケティング分析」照井伸彦

              https://www.amazon.co.jp/dp/4501623500

              タイトル通り、ベイズ統計モデリングの手法をマーケティング場面に活用することを目指した本


              難解な点は
              • ベイズやモデリングに明るい人には、マーケティングの説明が薄い
              • マーケティングに明るい人には、ベイズやモデリングの説明が薄い
              両方明るい人にはちょうどいいが、そんな人はそうそういない

              違う表現をすると、
              • 数式がバンバン出てくるので苦手意識がある人には向いてない
              • プログラミングのコードは出てこないので写経したい人には向いてない

              消費者行動場面を、ベイズ的観点からモデリングしてみる際の手順をちょっと知ってみたい人にはおすすめ
              書かれてることを自分の中で咀嚼して応用が効かせられる人にもおすすめ





              「広告マネジメント」木戸 茂

              https://www.amazon.co.jp/dp/4254295073

              マーケティングをデータに基づいて科学的に意思決定する際の手法や応用手順を体系的に紹介するシリーズ書籍

              テレビや紙の媒体でかつて実際におこなわれてきた、以下のような統計的、計量的手法によるモデル構築と検証結果を説明
              • 広告予算配分の最適化
              • 各媒体のリーチ推定モデル
              • 広告認知率の推定モデル
              • 広告効果の因果モデル
              • ブランド連想と広告評価の因果モデル

              広告の短期的効果と長期的成果を区別したり、企業ブランドと製品ブランドを区別するなど、シンプルなモデルを目指してるのは好感持てる。広告の継続出稿有意義性を後押しする材料にも使いやすそう

              GRPのような広告につきものの説明変数だけでなく、同一市場内での競合との広告シェア、自社の値引率、自社の相対的なシェア、平均購入個数、継続購入率、市場自体の成長率、市場が寡占的か激戦区かなども変数として採用しており、広告出稿に閉じた話に終わらず、ソリューション全体の提案として使いやすい

              プリファレンスという1つの説明変数で購買予測するUSJ森岡モデルに比べて、本書はプリファレンスに集約してしまう前の段階、すなわちブランド・エクイティの説明変数が具体的でわかりやすい

              またマーケティング全般というよりは広告業界視点で語られている点は、広告業界関係者にはとっつきやすく感じられるだろう

              数学的方面からのアプローチや、サイエンス方面からの理解を深めたい人にはおすすめ