バナナでもわかる話

計量経済学・統計学が専門の大学院生です。統計学・経済学・投資理論・マーケティング等々に関する勉強・解説ブログ。ときどき趣味も。極力数式は使わずイメージで説明出来るよう心掛けていますが、時々暴走します。

プログラミング

python入門 pandasを使ったデータフレームの扱い

pythonには、Seriesというデータ構造とDataFrameというデータ構造があります。データ分析において、これらのデータ構造に関する扱いを理解しておくことは必須ですので、簡単に入門記事を書いておこうと思います。 目次 pandas Seriesの利用 Seriesを扱うメソ…

python入門 Numpyを使った行列の計算

今日はNumpyパッケージに入っているndarray型変数の扱いについてやっていきます。 目次 Numpy ndarray 色々なarrayの生成 whereによる特殊な行列の生成 計算例 スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); Numpy Rと違って、pytho…

python入門 リストの処理

pythonには、リストというデータ構造が存在します。今回は、リストの基本的な処理についてまとめていきます。 目次 リスト リストの参照と取り出し リストを扱うメソッド リストの要素の追加 リスト同士の結合 要素の削除 並び替える スポンサーリンク (adsb…

1週間で知識ゼロの初心者がSQL操作を身に着ける方法

インターン先で急にSQLが必要と言われ、急遽身に着ける必要が生じ、本当に何も知らない状態からのスタートだったのですが、結構簡単に身について、今はそこそこスムーズにデータを取り出すことが出来るようになりました。メモがてら何をやったか書いていこう…

消費者の情報探索行動の目的を反映した購買モデルをStanで実装する

今回も中々高度な話をやっていきます。消費者は何か物を買うときに「情報探索行動」を行います。 しかし、情報探索行動は特に物を買う気の無い消費者も行います。 例えば、特に買いたいものはないけど、流行をチェックするために服屋をぶらつくだとか、本屋…

Rで多変量正規分布の最尤推定量を求める

今回は多変量正規分布についてやっていこうと思います。目次 多変量正規分布とは 求めたいパラメータ 使用する関数 mvnorm関数 optim関数 Rで実装 スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 多変量正規分布とは n次元確率変数ベ…

R言語で勾配とヘシアンを出力する関数を作成する

Rには、微分して値を出力したり、ヘシアンを出力する既存関数としてderiv関数というものがあるみたいなのですが、 なんかネットで調べて試してみても、何か使い方がよくわかんなかったので、まどろっこしくなって作りました。関数形と微分したい変数名、変数…

Rで任意の個数の0と1の組み合わせパターンを出力する関数を作る

今回はタイトルのような関数を作ってみたいと思います。 0と1の組み合わせってなんやねんっていうと、例えば2個のもので考えるならこんな感じ。この組み合わせの総数はあるので、手作業で頑張るのは個数が大きくなってくるとしんどいです。 ※5個の時点で32パ…

Rで行える線形回帰分析法の一覧とその方法~最小二乗法・最尤法・ベイズ~

今回は、線形回帰分析に関するRでの分析法を1記事にまとめておこうと思います。目次 線形回帰分析とは シミュレーション用データ 最小二乗法 計算 Rによる最小二乗法 最小二乗法の特徴 最尤法 計算 Rによる最尤推定 最尤法の特徴 ベイズ 解説 Rstanによる実…

C++でベクトルの内積を行う関数を書いてみた

最近C++で数値計算が行えるよう練習中です。スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 今回は、配列からベクトルを作って、足し算、引き算、割り算、内積を計算するコードを書いてみました。 うーん。一応出力は正しい値が出て…

C言語のポインタとは何かを簡単にまとめておく

前お知らせした通り、C++練習中です。スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 他のプログラミング言語とC言語の大きな違いは「ポインタ」という概念があることらしく、私自身もそうですが、「ポインタ」で躓く人がとても多い…

Rで組み合わせ(choose関数)を使ってInfが出た時の対処法

Rで組み合わせを考える際のパッケージとして基本的なものにchoose関数があります。例えばのようなものを考える場合には次のように打ち込みます。 > choose(5,2) [1] 10 スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); しかし、大きな…

C++を使ってディープラーニングの基本を試す

最近、Rだけで統計解析したりすることに限界を感じているので、そうだ!C++を勉強しようと思い立ちました。そこでとりあえず下の本を参考に、ディープラーニングの実装しながらC++を勉強しようなんていう次第です。 コードをそのまま写経するのも勉強にはな…

Rでミニゲームが出来る"fun"パッケージの解説~五目並べ,マインスイーパー,ライトアウトなど~

なんかRでマインスイーパーが出来ると聞いて、入れてみました!funパッケージ!ジョークで作られたパッケージですね。実用性は恐らくほぼありませんが、出来ることを解説していきます。まず、パッケージのインストールから install.packages("fun") library(…

Rのapplyとforの計算時間比較~forだって遅いわけじゃない~

Rユーザーの間でよく言われる話として「forを使うのは初心者。こなれたRユーザーはapplyを活用する」なんて話があります。理由は「forを使うと計算が遅くなるから」「applyの方がコードが見やすいから」 ということで、基本的にはその通りなんですけど ここ…

RとPythonでハッシュ値を出力する方法

少し前にハッシュ値について記事を書きました。 bananarian.hatenablog.com 実はRとPythonを使ってハッシュ値を出力することも出来ます。今回も「banana」を入力してハッシュ値を出してみます。 Rの場合 opensslパッケージというパッケージで簡単に出力する…

【初心者向け】SVMのパラメタチューニング

前回ソフトマージンサポートベクターマシンの話をして、ラディアルカーネルにはパラメータが2つあるというところまでやりました。 bananarian.hatenablog.com 前回はパラメータをいじって、極端な値の場合は、マズそうだといったことを確認して終わったわけ…

【初心者向け】これからpython記事書いてきます。皆さんpython始めませんか。

少し前に、pythonについて書くようお達しを受けたので、とりあえずpython関連の記事も書いていこうと思います。このブログ、分析は基本的にRで行っているんですけど、記事自体はどうやらpythonの方が需要あるみたいです。やっぱり最近話題だからですかねー。…

ソフトバンクの株価の分析を簡単にやってみる

今回は今まで記事にした内容(+α)のみを使うだけでも、結構しっかりした株価分析が出来ちゃうぞーという話をします。まだ今までの記事は簡単な事しかやっていませんが、これだけの道具でも結構色々なことがわかるんですよ。 ちなみに前回までの記事は株式投資…

株取引には必須?Rのquantmodパッケージで簡単に株価データを取得する方法

今回はデータの取得方法に関する話です。 お恥ずかしい話なのですが、私はあまりウェブスクレイピングの類のやり方がわからなくてですね。株価に関して何か分析する際は、いつもヤフーファイナンスにて全選択~コピー~Excelにペースト~みたいな地道なこと…

【趣味記事】C#のプログラムの構成について

最近C#について勉強を始めたわけですが、やはり初めは大きな枠組みとしての名前空間、クラス、インスタンス、メソッドに関することを理解すべきだろうと思い、ざっくり整理してみました。 とりあえず準備 開発環境ですが、Microsoft Visual Studioを使うこと…

マルコフ連鎖の収束とRによる収束シミュレーション

前回の記事では、マルコフ連鎖の推移確率行列について、n個先の確率行列はチャップマンコルモゴロフ方程式を使って簡単に計算できるということを説明しました。 bananarian.hatenablog.comしかし、この記事を読んでも、「え、結局Pのn回積を取らなきゃいけな…

【趣味記事】C#はじめました

プログラミングは基本的にはRしかやったことない私ですが、 「そうだ、ゲームを作ろう」 と思い立ち、今日からC#を勉強してみることにしました!!とりあえず、Rはプログラミング言語的には最弱(?)らしいので、未経験同然ってことですが、何やら調べてみたと…

Rで試すマルコフ連鎖

前回はマルコフ連鎖を極力数式を使わず、イメージ出来るよう説明しました。bananarian.hatenablog.com 今回は、よりマルコフ連鎖についてイメージを持てるようRを使ってシミュレーションをしてみました。Rのコードも記載していきます。 数学的な理解 まず、…