タグ

*programとRに関するsh19910711のブックマーク (291)

  • Quartoで技術書を写経すると楽しい|igjit

    ソースコードはこちら。 コードの写経に今回はじめてQuartoを使ったのですが、これが快適だったので紹介します。 Quartoとは公式ページには、QuartoはPandocを基にした技術文書の出版システムです、とあります。 Markdownでコード混じりの文書を書いたら、コードブロックの中身を自動で実行してくれて、結果をHTMLとかPDFとかプレゼンスライドとかに書き出してくれるやつです。 https://quarto.org/Rユーザーにとっては次世代のR Markdownとのことです。 はじめかたhttps://quarto.org/docs/get-started/ のとおり、Quarto CLIツールをインストールします。 DockerでR、RStudioを動かす場合、最近のイメージならQuartoはインストール済みです。(rocker/tidyverse:4.2.1 で確認) Q

    Quartoで技術書を写経すると楽しい|igjit
    sh19910711
    sh19910711 2024/05/21
    "Quarto: Pandocを基にした技術文書の出版システム + 次世代のR Markdown / コード混じりの文書を書いたら、コードブロックの中身を自動で実行 / 複数の章からなる文書を書いて公開するのに便利" 2022
  • 【R】Apache Arrowとduckdbを試してみる - Qiita

    これはR Advent Calendar 2021の24日目の記事です(ということにさっきしました)(遅刻)。 https://qiita.com/advent-calendar/2021/rlang Apache ArrowとDuckDB arrowパッケージ Rのarrowパッケージ(バージョン6.0.0)に遂にjoin系の機能やdplyr::group_by()への対応が入りいよいよ日常的に使っていきたいと思ったのでどのくらい早いのか計ってみようと思います。 私はApache Arrowを最近知り、凄いプロジェクトがあるものだと衝撃を受けたクチです。 https://github.com/apache/arrow Apache Arrowについてはクリアコード社のサイトにて積極的に日語の情報発信されているのでまずそちらをご覧いただくのも良いと思います。 Apache Arrowのご

    【R】Apache Arrowとduckdbを試してみる - Qiita
    sh19910711
    sh19910711 2024/05/20
    "Rのarrowパッケージ(バージョン6.0.0)に遂にjoin系の機能やdplyr::group_by()への対応 / バージョン6.0.0の威力についてはApache Arrow公式ブログでも力を入れて解説 / 目玉機能の一つが、duckdbパッケージとの統合" 2021
  • Rのdbplyrでサブクエリを構築すると分かりやすい

    記事は最近読んだ次の記事からインスピレーションを得ました。 RのdplyrやPythonpolarsのようなパッケージでデータフレームの操作に慣れている人ならば、Rのdbplyrを使うことで、バグが少ない上に早くサブクエリを構築することができます。 何千回も実行するSQLならば時間をかけてチューニングされたSQLを構築したほうがよいと思いますが、分析の試行錯誤のサイクルを早く回したい場合など数十回ぐらいしか実行しないSQLならば、dbplyrから実行したほうがよいでしょう。 それではざっくり元記事に沿って例を説明します。 カラムのサブクエリ 大分類(major_category)で絞って、該当する作品を表示する例をお借りします。 まず素直にms_categoriesテーブルから該当するcategory_idを抜き出しておいて、%in%で求めると、 category_id_fiction

    Rのdbplyrでサブクエリを構築すると分かりやすい
    sh19910711
    sh19910711 2024/05/08
    "集約した情報を使ってフィルターするなどの処理はデータフレームの得意とする部分 / RのdplyrやPythonのpolarsのようなパッケージ: バグが少ない上に早くサブクエリを構築することができます"
  • パッケージを使わないで、一般化線形混合モデルのMCMCアルゴリズムを1から作る. - Data Science by R and Python

    こんにちは. 金曜日の夜になり、激しめの睡魔に襲われております. 先日のこちらの記事で公開したスライドの後半にあるシミュレーションで、地域差を考慮したPoisson - Normalモデルを構築しているのですが、そのコードを載せておきます。tomoshige-n.hatenablog.com MCMCを自分で設計 最近だと、MCMCはStanだったり、BUGSだったり、色々と便利なツールもできてきていて、パッケージを用いて推定している人も多いみたいです。が、僕は、なんというか、中で何してるのかが気になって、提案分布の設計とか実際のところ、どうしてるのかとか、ステップ幅をどうやって決めてるのかとか、自動的にやられてしまうのはどうも気持ち悪いので、自分で書いてみましょうということになってしまいがちなんですよね。 ということで、ポアソン分布で、個体差を考慮できるようなMCMCのアルゴリズムを書い

    パッケージを使わないで、一般化線形混合モデルのMCMCアルゴリズムを1から作る. - Data Science by R and Python
    sh19910711
    sh19910711 2024/05/07
    "意外に自分でMCMCを書くのは楽しかった / 計算を速くさせるための工夫とか / 特に、積はlogとれば和の計算というのは、数値計算では有効だなーと思いました / ガンマ関数、階乗の計算はさせるべきじゃありません" 2015
  • データ分析のためのデータ可視化入門を読んだので感想です。 - niszetの日記

    遅くなりました… www.kspub.co.jp @niszetが人生色々とgdgd進行しているため、読み終えるまでに時間かかってしまいましたが、最後まで読み終えたので読後の感想を書こうと思います。 なお、書は id:u_ribo さんより GitHub Sponsorsのお礼という事で頂きました。ありがとうございました。なんかすみません…。 ちょっと雑多な文章になりますが、ご容赦ください。 感想 読後感としては、文の文章が思ったより多く(付録をあわせて300ページを超えているので相応の分量ということですが)、基は通して読むタイプなのでそれなりに腰を据えて読むのが良いと思いました。洋書にありがち?な、脇道に逸れたような話はないので純粋に説明の文章量が多いということでしょうから、悪い意味ではないです。 5章がデータの整形の話で、その前までが比較的基的な可視化の話、6章がモデルデータ、

    データ分析のためのデータ可視化入門を読んだので感想です。 - niszetの日記
    sh19910711
    sh19910711 2024/05/06
    "良い可視化とそれをggplotでやるにはどうするのが良いのか?を一冊で学べる / 単純にggplotの文法を知りたいという目的なら「Rグラフィックスクックブック 第2版」がある" 2021
  • Extending ggplot2(和訳) - Qiita

    この記事は、Rのggplot2パッケージの「Extending ggplot2」というVignetteを訳したものです。原文はGPL-2ライセンスで公開されているggplot2パッケージに含まれ、著作権はHadley Wickhamに帰属します。この翻訳文にもGPL-2ライセンスが適用されます。 Note that the original document is provided under the license of GPL-2 and the copyright belongs to Hadley Wickham, one of the authors of ggplot2. このvignetteには、ggplot2 2.0.0で公式に提供される拡張メカニズムについて書きます。 このvignetteは、?Statや?Geomや?themeで読むことができる低レベルな詳細をまとめたも

    Extending ggplot2(和訳) - Qiita
    sh19910711
    sh19910711 2024/05/05
    "歴史的経緯: ggplot2の開発を始めたころ私はあまりよいRのプログラマではありませんでした / ggplot2: mutableなオブジェクトのためにprotoを使って始まり + mutatrや参照クラスやR6よりずっと昔 + protoだけが唯一の選択肢だった" 2016
  • Rで論文を書く実践的なテクニック集 (tinytable編)

    2022年に書いたRで論文を書く実践的なテクニック集のテーブル編をtinytable版で書き直したものです. Quartoで書かれた英語版もありますので, そちらも参考にしてください. kableExtra, gt から tinytable の時代へ 近年, Rで表を作成するためのパッケージとして kableExtra と gt が人気を集めてきました. 私は kableExtra を使って論文(\LaTeX)で表を作成し, gt を使ってスライド (revealjs) で表を作成しており, 以前行ったRワークショップやZennでの解説記事でもkableExtraを念頭においておりました. しかし, 2024年4月現在, tinytableが従来のパッケージと比べ軽くて使いやすく, 今後のスタンダードになっていくと確信しており, 以前書いた記事を更新する必要があると考えました. この記事で

    Rで論文を書く実践的なテクニック集 (tinytable編)
    sh19910711
    sh19910711 2024/05/01
    "tinytable: modelsummaryのメンテナーによって開発 + ミニマル(zero-dependency, baseRのみを使用)でありながら強力な表を作成するためのパッケージ / HTML や LaTeX だけでなく, PDF や Typst にもエクスポートできる"
  • [R] 予測モデルを作るには formula を活用せよ - ill-identified diary

    概要 formula オブジェクトは変数変換や交互作用項など, 多彩な表現ができる. xgboost や glmnet では model.matrix() を併用することで formula を利用できる. 統計モデリング/機械学習で予測モデルを構築するとき, 予測性能の向上のため, しばしば変数を入れ替えたり, 変換したりといった推敲が必要となる. R ではこういうときに formula オブジェクトを使うと, いちいちデータフレームに変換後の数値を追加したり書き換えたりする必要がなくなる. glmnet や xgboost など, formula が直接使えないものでも model.matrix() 等を併用すれば可能である*1. formula オブジェクトを解説した記事を探すと, かなり前から存在する. 例えば以下の記事. m884.hateblo.jp なお, 上記はタイトルが「f

    [R] 予測モデルを作るには formula を活用せよ - ill-identified diary
    sh19910711
    sh19910711 2024/05/01
    "変数を入れ替えたり, 変換したりといった推敲 / R ではこういうときに formula オブジェクトを使う / formula にはいろいろな構文 / xgboost や glmnet では model.matrix() を併用することで formula を利用できる" 2017
  • R の線形回帰 lm 関数の実装を辿る

    この記事は? この記事では、R にデフォルトで入っている stats パッケージの線形回帰関数 lm を題材に、R のパッケージ・関数がどのように実装されているかを辿っていく。 はじめに R のパッケージ・関数の使い方は、? コマンドや Web 上でドキュメントを読めば一通り知ることができる。 しかし、時としてどうしてもドキュメントには書かれていないような詳細を知りたくなるケースに遭遇することがある。 このような時には、実装コードを読みにいくことで疑問が解決することが多い。 また、定評のあるパッケージの実装を知ることで、それまで知らなかった書き方や言語仕様に触れることができ、コードを書く際の参考にもなる。 そこで、この記事では線形回帰の lm 関数に着目して、実装の辿り方を紹介するとともに、R パッケージの実装がどのように行われているかを見ていく。 実装を辿るうえでの着目ポイント 実装を辿

    R の線形回帰 lm 関数の実装を辿る
    sh19910711
    sh19910711 2024/04/30
    "ジェネリック関数: R のオブジェクトには class 属性を付与することができ + print 関数や summary 関数は、引数の class 属性に応じて振る舞いを変える + <ジェネリック関数名>.<class 属性名> という名前で定義"
  • トポロジカルデータアナリシス:TDAパッケージを使ってみる - データサイエンティスト(仮)

    導入 とあることがきっかけで、とっても久しぶりにRでTDA(トポロジカルデータアナリシス)をしてみました。だいぶいろんなことを忘れていたので、単純な例を使ったメモを残しておきます。 トポロジカルデータアナリシスとは とてもざっくりいうと、位相幾何学という数学の知見をつかって、データから「形」の情報を抽出するような手法になっています。 導入は、過去の記事にも載っていますので、こちらも参照していただけるとうれしいです。 tekenuko.hatenablog.com 「形」の情報の抽出のしかたですが、データ点のまわりにある半径の球をとり、その球たちの重なりによって点の間に線を引く、といった方法でデータ点から図形を見立てます。ただし、データに付随するノイズなどにロバストな形で図形的な情報を抜き出すために、半径を連続的に変化させた場合の構造の変化を見るといったテクニックを用います。 これらの簡単な

    トポロジカルデータアナリシス:TDAパッケージを使ってみる - データサイエンティスト(仮)
    sh19910711
    sh19910711 2024/04/28
    "TDA: データから「形」の情報を抽出するような手法 / データ点のまわりにある半径の球をとり、その球たちの重なりによって点の間に線を引く、といった方法でデータ点から図形を見立てます" 2017
  • Rで主成分分析するときに使いたいggbiplotパッケージ

    当は来月のAdvent Calenderのネタにしようかと思っていたのだが、DeepLearningのネタを書くというようにDicisionMakingしたので、自分の退路を断つという意味でも先にこれを公開しておこう。 最近、改めて多変量解析をじっくりと行うことが多いのだが、今までplotがあんまりいけてないという理由で主成分分析や因子分析などを活用することがなかった。 ggplotが広く使われるようになって、Rでのビジュアライゼーションに革命が起こったのは周知の事実だが、多変量解析のプロットについてもこの革命の手が及んでいたことが判明して、僕のQOLが向上したので、それを共有したい。 なお、主成分分析とはなんぞやという話は、下記のさのっちの資料によくまとめられているので、そちらを参照されたい。 ちなみに、Rで主成分分析を行う際はstatsパッケージというデフォルトで実装されているパッケ

    Rで主成分分析するときに使いたいggbiplotパッケージ
    sh19910711
    sh19910711 2024/04/26
    "主成分分析や因子分析など: plotがあんまりいけてない / ggplotが広く使われるようになって、Rでのビジュアライゼーションに革命が起こった / 多変量解析のプロットについてもこの革命の手が及んでいたことが判明" 2014
  • しなやかな項目反応モデル

    第28回パーソナリティ心理学会大会講習会1

    しなやかな項目反応モデル
    sh19910711
    sh19910711 2024/04/22
    "brms: ベイズで(Bayesian)・回帰モデル(Regression Model)・Stan使って(using Stan)+ モデルを指定すると自動的に内部でStanコードが生成 / 柔軟なIRTモデルを実行するためにbrmsやmirtパッケージは便利" 2019
  • Rによるネットワークデータのプロット

    sh19910711
    sh19910711 2024/04/22
    "statnet: ネットワーク分析やプロットに使うパッケージが一通り入ってる / igraph: (statnetほどじゃないけど)基本的な関数はそろっている / Ggraphでも同じようなことができる" 2021
  • tidymodelsを使った機械学習 - Qiita

    cv_data ## # 10-fold cross-validation using stratification ## # A tibble: 10 × 2 ## splits id ## <list> <chr> ## 1 <split [135/15]> Fold01 ## 2 <split [135/15]> Fold02 ## 3 <split [135/15]> Fold03 ## 4 <split [135/15]> Fold04 ## 5 <split [135/15]> Fold05 ## 6 <split [135/15]> Fold06 ## 7 <split [135/15]> Fold07 ## 8 <split [135/15]> Fold08 ## 9 <split [135/15]> Fold09 ## 10 <split [135/15]> Fold10

    tidymodelsを使った機械学習 - Qiita
    sh19910711
    sh19910711 2024/04/20
    "tidymodels: 機械学習もtidyに行いたい人向け + パッケージごとに異なる変数を使っているのを統合可能 / 何を予測させるかの指示と、正規化などの前処理をrecipeに指定 / min_nは後でハイパラ探索するのでtune()とする" 2023
  • easystats(+ ggeffects)でglmやglmerの結果を簡単に抽出&検証&描画! - Qiita

    Rで統計解析を行う際には、しばしばモデルからのデータの抜き出しや結果の描画が面倒です。それはパッケージ間で出力結果の形式が異なったり、出力された結果自体が複雑な構造を持つオブジェクトに格納されるためです。 それを解決するのがeasystatsパッケージ群であり、Qiitaでこの一年その便利さをたびたびご紹介してきました。 せっかくのAdvent Calendarなので、ここではそれらの記事の振り返りもかねて自分なりにeasystatsパッケージ群の便利さをご紹介したいと思います。 他の方による紹介記事であるeasystatsについて①: パッケージ群の紹介もご覧いただくと、より理解が深まるかと思います。 easystatsとは? easystatsはRのパッケージ群です。このパッケージ群は、おっかないRの統計とそのやっかいなモデルたちを、手懐け、しつけて、うまく利用するための統合的で一貫し

    easystats(+ ggeffects)でglmやglmerの結果を簡単に抽出&検証&描画! - Qiita
    sh19910711
    sh19910711 2024/04/18
    "データの抜き出しや結果の描画が面倒 + パッケージ間で出力結果の形式が異なったり、出力された結果自体が複雑な構造 / easystats: さまざまな統計解析パッケージに対する対応 + 3行で相関係数の算出、要約、描画" 2020
  • Rは本当に遅いのか?Juliaとの比較例 - Qiita

    このコードについて、twitter上で「Juliaなら数十秒で終わるのにRだとめっちゃ時間かかったんだろうな…」的な発言が流れてきたのを見かけて、当にそうなのか気になったので少し調べました。 そもそもRのループは遅いのか? たしかに、Rのforループが非常に遅いとされていた時代はありました。繰返し処理はなるべくベクトル化して書くべきものであって、forを書くというのは可能であれば避けるべき作法でした。 しかし、R 3.4.0からJITコンパイラが同梱されており、これがデフォルトでONになっている恩恵で、現代のRのforループの速度は相当に改善されています。場合によってはforを書いたほうが速度的に有利なことすらあります。 やってみる まあともかくやってみましょう。 実測とプロファイリング まず「そもそも元のコードがどれだけ時間がかかるのか」を確認しておくと、私の手元のちょっと古くなってき

    Rは本当に遅いのか?Juliaとの比較例 - Qiita
    sh19910711
    sh19910711 2024/04/12
    "R 3.4.0からJITコンパイラが同梱されており、これがデフォルトでONになっている恩恵で、現代のRのforループの速度は相当に改善されています / 詳しい方々の意見を参考に書き直したらJuliaのが3倍くらい早くなりました" 2019
  • [R] トピックモデル(LDA)を用いた大量文書の教師なし分類 - Qiita

    はじめに テキストマイニングの手法、トピックモデルを用いて文書の自動分類に挑戦します。 理論的な部分はこちらの。 先人の拵えた偉大なパッケージ群を活用させてもらい、Rでの実装部分を中心に書いてみたいと思います。 自分の振り返りためにも、困ったポイント、未解決ポイント含めて書いてるので、かなり回りくどいかもしれませんがご了承ください。 トピックモデルとは テキストマイニングではネット上のブログやニュースなど、多量の文書を取り扱うことが多いですが、トピックモデルを用いることによって、そういった文書を教師なし学習で分類することができます。 ざっくりとしたイメージですが、「文書中に出現する単語の出現確率を推定するモデル」ということ。スポーツなら「サッカー」「野球」「バレーボール」のような単語が出現しやすく、料理なら「レシピ」「献立」「まな板」みたいな単語がきっと多く出てくるのはイメージがわきやす

    [R] トピックモデル(LDA)を用いた大量文書の教師なし分類 - Qiita
    sh19910711
    sh19910711 2024/04/12
    "tmパッケージ: VCorpus(DirSource(dir="xxx")))で読み込むことで、全txtデータをコーパスとして取り込むことができます / DTM: tidytext::cast_dtm()関数で、頻度表から文書単語行列(Document Term Matrix)に変換" 2019
  • 「RとRustの現状確認 2023」というタイトルでTokyo.R#103で発表してきました。 - Technically, technophobic.

    少し前ですが、第103回R勉強会@東京で発表してきました。スライドはQuarto Pub(便利)で公開しています。 これは、1月中旬くらいにR core teamの人から「お前のCRANにあるパッケージどうなっとんねん」という問い合わせがあり、Rustのこと何も知らなそうだったので「私に答えれることだったらなんでも聞いてくださいね」と優しく返したところ、それが命取り、「そもそもRustってどういう仕組みなの?」みたいなマニアックな質問に回答するために東奔西走(具体的にはググる)する羽目になりめっちゃ疲れた、ので、その愚痴でも語りに行くか...、というモチベーションの発表でした。が、私の知識不足のために、話したいことの2割くらいしか話せませんでした。いずれリベンジしたい。 個人的には、Rの未来もRustの未来も明るいと思っていますが、これが「RとRust」の未来となると、明るくないわけじゃな

    「RとRustの現状確認 2023」というタイトルでTokyo.R#103で発表してきました。 - Technically, technophobic.
    sh19910711
    sh19910711 2024/04/11
    "Rの未来もRustの未来も明るいと思っていますが、これが「RとRust」の未来となると、明るくないわけじゃないんですけど、シンプルじゃないというか、端的に言えば、つらそう、みたいな感触" 2023
  • Surrogate indexについて調べて簡単にまとめる - 名前はまだない

    はじめに こちらの記事でSurrogate indexについて初めて知りました。 developers.cyberagent.co.jp Netflixでも活用されていて、一定の成果を上げているようです。 arxiv.org 業務で扱う課題を解決してくれる可能性があったため、理解しておきたいと思いました。 論文等を読みつつRで挙動などを確認していきます。 はじめに 概要 課題感 方針 仮定 仮定1 強く無視できる割り当て条件 仮定2 代理性 仮定3 互換性 定義 Surrogate index:代理指数 代理スコア:Surrogate Score Sampling Score 潜在的条件付き期待値 関係性 因果効果の推定 論文での適用事例 Rで確認 データの生成 推定 所感 概要 元の論文はこちらです。 www.nber.org よりわかりやすい説明は冒頭のブログ記事を参照してください。

    Surrogate indexについて調べて簡単にまとめる - 名前はまだない
    sh19910711
    sh19910711 2024/04/05
    "短期的な実験の結果を利用して、長期的な因果効果を算出する / 代替指標: 短期に観測される中間指標を多く組み合わせ + それぞれの変数に統計的な代用性があるかには注目せずに、複数の中間変数があることが重要"
  • [R] fb Prophet の解剖で学ぶベイズ時系列モデリング - ill-identified diary

    初めに prophet のモデルの説明 ハリボテの R言語 なぜベイズ推定する必要があるのか 結論 補足: バージョン 0.3 で追加された機能について 参考文献 初めに昨年, KFAS, bsts と, いくつか R の時系列モデリングパッケージを紹介記事を書いた. FaceBook によって開発されたという prophet パッケージも紹介したかったところだが, 日語での説明は既に公開されている hoxo_m 氏のものが網羅的であり, 使い方の解説としてはこれ以上やることがほぼないと言っていい. Prophet入門【R編】Facebookの時系列予測ツール from hoxo_m Prophet入門【理論編】Facebookの時系列予測ツール from hoxo_m あとはあるとすれば紹介論文やヘルプの全訳くらいだが, そんな面倒 (かつ退屈) なことはしたくない. そこで, pro

    [R] fb Prophet の解剖で学ぶベイズ時系列モデリング - ill-identified diary
    sh19910711
    sh19910711 2024/04/04
    "prophet パッケージ: モデルのパラメータ推定を R でやっていない + rstan に完全に依存 / ラプラス事前分布: 機械学習の文脈で見れば, スパース学習として説明できる / モデルというと, つい複雑なものを作ってしまう" 2018