論理の流刑地

地獄の底を、爆笑しながら闊歩する

R

StataのデータをRでつくる(sjlabelledパッケージ)

とてもマニアックな備忘録シリーズ。 Introduction Rにおけるデータフレームは他の統計ソフトのおけるデータ形式に比して、必要最小限の情報しか入っていない。 したがって、他の統計ソフト(SPSS , Stataなど)向けのデータを出力する時には、データ本体に加…

plm()の結果から、対数尤度を取得する。

Introduction 正規誤差モデルにおける最尤法 正規誤差の対数尤度関数 OLSの場合 plmの場合 Conclusion Introduction 天下のStata様とは違い、Rの各パッケージは各々の開発者の単騎行動によりつくられているため、痒い所に手が届かない場合も少なくない*1。パ…

【小ネタ】パネルデータ分析における"Between"モデルは何をしているのか

単に「これ何やってんだっけ?」を確認してくシリーズ Introduction plmパッケージの"between"モデル 推定結果の比較 plmの推定結果 自分でデータ変換してからOLS Conclusion Introduction たまにパネルデータの分析結果で"Betweenモデル"なる記述を見る。 p…

Hybrid ModelをRでやる(特にpanelrパッケージについて)

ひとつ、ひとつだ。 Introduction 問題の所在 ハイブリッドモデルに関する参考URL等 RでHybrid Modelを使うーpanelrパッケージ wbm()関数 for hybrid model 基本:hybrid modelの推定 plmとの比較(wbmで固定効果モデルの方法も) lmerとの比較(hybrid mode…

Rで縦断データを使うときの前処理でやること集

なんか追加すべき内容があったときに随時更新系のやつ。 Introduction 参考URL(主に分析関連) 過去の関連記事 縦断データを前処理 in R 変数名の命名規則 tidyr::pivot_longer()を用いたWide形式からLong形式への変換 時変変数に共通の処理はどうすべきか…

【R備忘】dplyr::mutate内でif_elseを使ってNAを指定する時は型指定しないとErrorを吐く

R

なんか忘れそうなので手短な備忘。 問題 dplyr::mutate()(あるいはtransmute())をつかって、ある条件ならNA、そうでないならば他の変数(を加工した値)をとる変数を作りたい時がある。たとえば、変数v1が1ならNA, そうでないときはv2(numeric型)をとる変数…

繰り返し比例調整法とその周辺について(その1)

Introduction 繰り返し比例調整法(iterative proprtional fitting, IPF)という方法がある。 古くは1940年の論文に遡る由緒正しき手法であるが、その汎用さゆえか割と近年の最新手法にも部分的に使われていたりしている。IPFは二変数(カテゴリ変数)A, Bが…

【R】wide方式からlong方式への変換の仕方 in 自力&tidyr::pivot_longer

これも同じことを100回調べるので備忘用シリーズ なんかStataとかよりwide↔longの相互変換のやりかたがわかりにくいのよな。 Introduction Wide to Long 関数作った 実行 tidyrの神機能"pivot" 先ほどと同じ処理を行う おまけ:Rにおける正規表現に関する参…

【小ネタ続報】dplyr系の関数を自作関数内で用いるときにはquasiquotationを利用する

R

セブンの麻婆飯うめぇ。 Introduction 使用例1 使用例2 【おまけ】気持ち悪いところ:quo()とquos()は並列関係にない quo() vs enquo() quos()が対応するのはquo()ではなくenquo()なのか? Introduction ちょいと前にこんな記事を書いた。 ronri-rukeichi.ha…

回帰分析の結果から共分散分解

暑すぎてモチベがアレなんで血迷って誰得関数を実装していくシリーズのやつ Intro. 共分散分解とは 定義 神林龍(2017)『正規の世界, 非正規の世界』*1を読んでいたら共分散分解なるものが出てきた(p.270)。 あんまりなじみのない分解手法だったのだが、…

【小ネタ】関数のなかで生成された文字列をsubstituteして関数内の関数に渡すには【NSE: 非標準評価】

R

なんか詰まったところを備忘。マニアックすぎるトピックなのだが。 (19/9/2 追記) ↓こっちで書いたquosureを利用した方法のほうがスマートだった。 ronri-rukeichi.hatenablog.com Introduction NSE(non-standard evaluation, 非標準評価)を利用して引数を…

【小ネタ】Reduce()はベクトル以外(配列、行列、ベクトルのリスト)にも使える

R

たぶん自分だけが知らなかったようなことだけど、はえーってなったので備忘。 Intoduction 前の記事にあるように、テンソルをrTensorパッケージを使いあれこれいじっていた。 期待度数を要素に持つようなテンソルをどうやって作るかなって考えたときに、まぁ…

ひょっこりTucker Decomposition in R

急襲に遭い、トイレに籠城していたお供として村上春樹『職業としての小説家』を読み直していた。 この記事の主題とは全く関係ないが、なんとなく印象に残った箇所を書き残しておく。 アイザック・ディネーセンは「私は希望もなく、絶望もなく、毎日ちょっと…

【小ネタ】SPSSファイルにおける数値⇔値の対応関係をR上でも参照する

世界で10人くらいにしか需要がないだろう備忘録シリーズ。 Motivation 一般的に言って、SPSSのデータ(.sav拡張子のやつ)をRで利用するとき、read.spss()関数を使ってデータフレームに変換する。 しかしこのやりかたでは、SPSS上では参照できてた数値⇔値ラ…

【小ネタ】geom_point()やgeom_line()で二つ以上の変数の組み合わせを用いてgroup化する方法

R

This is a note for 備忘ggplot2のgeom_line()で折れ線グラフをかくときに、系列を二つの変数の組み合わせ(性別×年齢とか、学歴×人種とか)でとらえたい時がある。 このやり方を知らなくて、ずっと、二つの変数を組み合わせた新たな水準変数を作っていたが…

【小ネタ】Rでclipboard利用 in Windows

備忘用。わりかし実用的だが忘れがちな小ネタ。 Macだと若干やり方が違うので注意(という自分用備忘) Motivation Rでデータフレームをつくって、それをExcelにのせたいときがある。 また、Excelやブラウザ*1上でコピーしたtableをそのままdata frameとして…

R in Windowsの環境設定(.Rprofileまわり)

R

力を入れることの何倍も力を抜くことのほうが難しい。だが重要。 Introduction 備忘 of 備忘。久しぶりにRに触る仕事をしているが、 なんか無理やりMac→Windowsにファイルを移して環境を構築した*1ので、色々齟齬がでている(主に文字コードまわり) やった…

RのプログラムをMacからWindowsに移行する時に使うコード

備忘 of 備忘 of 備忘 Motivation ちょっと色々あってMacからWindowsに乗り換えることになり(8年振りくらい)、 自分で作った関数や色々な分析の記録も含めRのコードをそのまま新しい環境にうつした。 基本的にはOSに依存しないで動くものであるので、あま…

積み上げ折れ線グラフをggplot2で描く

R

Motivation ggplot2()は割と綺麗なグラフが描けるので重宝しているが、 いかんせんそこまで高頻度で使うわけでないので、忘れてしまう。備忘として、積み上げ折れ線グラフの作りかたを書き記しておく。 参考URL URL1 ill-identified.hatenablog.com URL2 muk…

カーネル密度推定を君へ

Motivation 数値ベクトルが与えられているとき xの値が与えられていない区間についても、なめらかな形で確率密度関数を求めたいときがある。そんなときに多く用いられるのが、カーネル密度推定である。 カーネル関数をを用いた以下の式で、(実際の観測値の…

車輪の再発明としての二項ロジスティック回帰 feat. 指数分布族

Motivation ちょっと複雑なモデルを開発・実装しなくてはならないので、単体テスト的な意味で車輪の再発明をする。 サービス提供の質や速度の観点からすると車輪の再発明は望ましくないが、学習者は車輪の再発明をすることを恐れてはいけない、ってどっかの…

対応分析(correspondence analysis, CA)では一体何を「分解」しているのか

Introduction 小野滋さんの「読書日記」が久しぶりに更新を再開し、ひとり小躍りするGW中盤戦...前々回の記事で、SVDとはなんぞや、について解説した。 ronri-rukeichi.hatenablog.com この記事のなかで、対応分析も多重対応分析も結局はSVDだよーってちらっ…

【備忘】Rcppパッケージ使うためのURL集

R

the 備忘 of 備忘直近の仕事には使わないけど、(たぶん)数ヶ月以内に舞い降ってくるであろう仕事では、最適化計算の速度をあげる必要があるので、さすがに避けられなくなってきたか。Chapter 1 Rcppの活用ポイントによれば、 Rと比べて C++ で書くことによ…

ダンゴムシでもわかる特異値分解(SVD)

無脊椎動物なめんな。節足動物なめんな。 Introduction SVDの概要 基本の定義 便利な別表現 基本性質 前提知識:フロベニウスノルムによる距離の定義 性質①:最小二乗近似を得る方法としてのSVD 性質②:行列と転置行列との積の成分分解 性質②の具体的な例 性…

固定効果モデルでロバスト標準誤差 in R

R

備忘用メモ。Rでパネルデータを扱うときに、固定効果モデルを行うときは、 plmパッケージを使うのが一般的だ。最近の社会科学(経済学、社会学etc)で固定効果モデルを使うとき、 table上で報告されるのは、頑健標準誤差(robust standard error)である場合…

RからMplus制御

Introduction 人間、30年以上生きていると一度はRからMplusを制御したいときがある(さて、どこで私は人生を間違ったのでしょうか...)そんなときには、RのMplusAutomationパッケージを使えばいい(ということを小野滋氏のブログを読んでいて昨日知った)。 …

Macで、回帰系の手法の結果を、Excelに貼るだけの状態で出力する関数

R

俺しか得しない関数シリーズ。要dplyr。※主な今後の改善点を備忘のために、冒頭に書いておく ✔︎ glmやlmerへの対応を ✔︎ モデル指標のところ、小数点桁を指定可能に ✔︎ 変数をmodelごとに差し引きした時に、表側の変数名とCoefやS.E.の係数推定値の垂直位置…