タグ

Rに関するhorihorioのブックマーク (389)

  • Rでのナウなデータ分割のやり方: rsampleパッケージによる交差検証 - 株式会社ホクソエムのブログ

    前処理大全の「分割」の章では、予測モデルの評価のためのデータセット分割方法が解説されています。基礎から時系列データへ適用する際の注意まで説明されているだけでなく、awesomeなコードの例がRおよびPythonで書かれており、実践的な側面もあります(お手元にぜひ!)。 しかし今回は、Awesome例とは異なる、より新しいやり方で・簡単にRでのデータ分割を行う方法を紹介したいと思います。前処理大全でも取り上げられているcaretパッケージですが、その開発者のMax Kuhnが開発するパッケージの中に rsample を使う方法です。ここでは前処理大全で書かれている一般的なデータと時系列データの交差検証による分割をrsampleの使い方を紹介しながらやっていきます。加えて、rsampleの層化サンプリングについても最後に触れます。 1. レコードデータにおけるモデル検証用のデータ分割 zeal

    Rでのナウなデータ分割のやり方: rsampleパッケージによる交差検証 - 株式会社ホクソエムのブログ
  • [Stan]生存時間分析のコードと便利なデータセットについて – かものはしの分析ブログ

    都内の事業会社で分析やWebマーケティングの仕事をしています。大学・大学院では経済学を通じて統計解析を行うなどしておりました。企業に勤めてからは、機械学習やテキストマイニング、クローリング技術などに関心を持っています。 Twitterアカウント Mr_Sakaue( SKUE ) GitHub 読書メーター ほしいものリスト はじめに 仕事で生存時間分析を使うことは結構あるのですが、マーケティングの良いデータセットがない印象でブログにしにくいと感じていました。また、Stanでの生存時間分析の事例もあまり把握していません。そこで使えそうなデータセットやStanのコードを探して、そのデータに対して生存時間分析を適用してみたいと思います。 目次 ・生存時間分析とは ・生存時間分析で使えるデータ ・生存時間分析をマーケティングで使う際の用途 ・先行研究 ・生存時間分析で使えるデータセット ・Sta

    [Stan]生存時間分析のコードと便利なデータセットについて – かものはしの分析ブログ
  • shapper is on CRAN, it’s an R wrapper over SHAP explainer for black-box models - SmarterPoland.pl

    Written by: Alicja Gosiewska In applied machine learning, there are opinions that we need to choose between interpretability and accuracy. However in field of the Interpretable Machine Learning, there are more and more new ideas for explaining black-box models. One of the best known method for local explanations is SHapley Additive exPlanations (SHAP). The SHAP method is used to calculate influenc

    shapper is on CRAN, it’s an R wrapper over SHAP explainer for black-box models - SmarterPoland.pl
  • 本日の懺悔:dplyrでsliceをもっと活用しようね - 盆栽日記

    懺悔です。 今まで私はある列の最小値を含む行を抽出する際、filter()を用いて以下のように書いていました。 library(dplyr) iris %>% filter(Sepal.Length == min(Sepal.Length)) しかしbaseの書き方であればwhich.min()を使って以下のように書けます。 iris[which.min(iris$Sepal.Length), ] dplyrでもwhich.minしたいな〜でもfilterにはTRUE/FALSEを返す関数しか指定できないしな〜とか独り合点していたわけです。 ですが、dplyrには行番号を入力にとるslice()があり、これを使えばwhich.min()できる。 library(dplyr) iris %>% slice(which.min(Sepal.Length)) 手癖で書ける範囲で満足し修練を怠って

    本日の懺悔:dplyrでsliceをもっと活用しようね - 盆栽日記
  • モダンな繰り返し処理purrrの使い方 - 医療職からデータサイエンティストへ

    データの繰り返し処理やapply族を使ったデータフレームの処理などはデータ解析をする上では欠かせませんよね。 そんな時に役に立つのが{purrr}パッケージです。このパッケージは、今までfor-loopさせていた処理や、apply族を使っていた処理をスマートに処理することができます。 慣れるまでに少し時間がかかりますが、使いこなせるようになれば処理の幅が広がることは間違い無いです! 今回はその使い方をまとめていきます。 {purrr}とは map map2,pmap よく使うpurrrの活用法 まとめ 参考 {purrr}とは そもそも{purrr} とは、リストやベクトルを受け取って反復処理をするパッケージです。for文やapply族を使う場合が多いかと思いますが、{purrr}は色々な機能をそなえたモダンなパッケージとなっております。 全部は紹介しきれないので、よく使いそうな関数だけを

    モダンな繰り返し処理purrrの使い方 - 医療職からデータサイエンティストへ
  • 状態空間モデルのれんしゅう(レストランの来客予測) - rmizutaの日記

    はじめに 時系列解析を行う上で、状態空間モデルが現状使用できる手法の中で優れているのではと自分の中で話題だったので、 使ってみることにしました。 状態空間モデルを使うことの目的 時系列解析を行う上でもモデルの種類は無数にあるのですが、 どういう場合に状態空間モデルを使うのでしょうか? この部分については以下のサイトに詳しく書かれていました。 https://logics-of-blue.com/%E3%81%AA%E3%81%9C%E7%8A%B6%E6%85%8B%E7%A9%BA%E9%96%93%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AE%E3%81%8B/ 状態空間モデルはデータが得られるプロセスとは何か?を重視したモデルであり、 回帰分析よりも各要因の影響が納得性の高い形で見ることができ、またその構

    状態空間モデルのれんしゅう(レストランの来客予測) - rmizutaの日記
  • underdispersion(過小分散)な場合のポアソン分布の代替 - StatModeling Memorandum

    overdispersion(過分散)なポアソン分布は個体差&ポアソン分布で説明するのがシンプルで解釈しやすくて、個人的には好みです。ただ、個体差を考慮するモデルではunderdispersion(過小分散)の場合に対応できません。そのような場合には「ほぼ確定的な値が存在し、そこから外れるメカニズムをきちんと組み入れたモデル」がよさそうと思うのですが、まだ思案中です。 この記事では、overdispersion(過分散)な場合のポアソン分布の代替として、Rから簡単に使える4つの分布を紹介したいと思います。 分布の紹介とRからの使い方 超幾何分布(Hypergeometric distribution) [1] Wikipedia 関数形は以下です(は非負の整数、以降の分布でもの値域は同じ)。 がと比べて小さくて、が大きい時にPoisson分布になります。平均と分散は以下です。 合計個のボー

    underdispersion(過小分散)な場合のポアソン分布の代替 - StatModeling Memorandum
  • Rでオペレーションズ・リサーチ(OR)に関する情報をあさる/ コード付き – かものはしの分析ブログ

    都内の事業会社で分析やWebマーケティングの仕事をしています。大学・大学院では経済学を通じて統計解析を行うなどしておりました。企業に勤めてからは、機械学習やテキストマイニング、クローリング技術などに関心を持っています。 Twitterアカウント Mr_Sakaue( SKUE ) GitHub 読書メーター ほしいものリスト はじめに 私は基的にデータ分析を生業としていますが、どうしても分析の案件が足りない時期は分析以外のものに手を染めることもあります。主に、RPAやクローリング、APIを用いたソーシャルリスニングなどです。今後も分析以外のことをやる時があるとしたら、レパートリーを増やしたいですよね。なので、ORについて調べてみることにしました。 ORとは 公益社団法人日オペレーションズ・リサーチ学会による定義によると、 「現象を抽象化した数理モデルを構築し, モデル分析に基づいて種々

    Rでオペレーションズ・リサーチ(OR)に関する情報をあさる/ コード付き – かものはしの分析ブログ
    horihorio
    horihorio 2019/01/28
  • 統計言語 「R」の神はなぜ無償で貢献したのか

    統計データを分析する際に使う「R」というプログラミング言語がある。無料のオープンソース・ソフトウェアで、Rを使えば、データの加工や操作、線形回帰、ランダムフォレストのような機械学習の分析、解析したデータの可視化が可能になる。「Python(パイソン)」と並び、統計分析を手がける人々に人気の言語だ。 Rはオープンソースのため世界中のエンジニアが修正や機能追加を進めている。その中で、データフレームの操作に特化した「dplyr(ディープライヤー)」やデータ可視化の「ggplot2(ジージープロット2)」など、人気のパッケージ開発で貢献した人物がいる。ソースコードの入力からコンパイルやデバッグまでが可能なRの総合開発環境を提供するRStudioのチーフ・サイエンティスト、ハドリー・ウィッカム氏だ。 ウィッカム氏が独力で作り上げたパッケージは今では大学の研究者からジャーナリストまで、数多くの人間が使

    統計言語 「R」の神はなぜ無償で貢献したのか
  • Data Visualization

    Published by Princeton University Press. Incomplete draft. This version: 2018-04-25. Buy from Amazon Buy from Powell's Buy from the Publisher “Finally! A data visualization guide that is simultaneously practical and elegant. Healy combines the beauty and insight of Tufte with the concrete helpfulness of Stack Exchange. Data Visualization is brimming with insights into how quantitative analysts can

  • アンケート調査でN数はいくら必要なのか - 驚異のアニヲタ社会復帰の予備

    こんな話を見かけた。 一連のツイートでこんな知識を得た。 なるほど統計学園高等部 | 調査に必要な対象者数 世論調査結果を読む際の注意 回答者数N人といったとき、当は何人くらいが回答していて、そしてその回答数はどれほど信頼がおけるか、という話。 あるひとりの人に回答を頼んだとき、その人がランダムサンプリングされていて、回答するかしないかもランダムならば、ものすごい単純化すれば二項分布からのサンプリングになる。 上のリンクの nは質問に対する回答者数で,100%が何人の回答に相当するかを示す比率算出の基数である。 というのはちょっとよくわからないのだが、(実際に有効回答を得たのがn なのか、潜在的に回答しえたすべての人がnなのか)、とりあえず、n 人中 p の割合で回答を得たとすると、n=1000人、p=0.5 として binom.test(1000*0.5, 1000)$conf.int

  • (R) x軸共通の場合に、列名が条件に合致した場合に全部y軸にプロットする (メモ) - niszetの日記

    簡単だけど、そのものずばりが見つけられなかったので。 とりあえずirisで。x軸は適当にindexを振っておいて、これを共通の軸とする。y軸方向にはSpecies(とid)を除いた全部をプロットしたいので、列名に"."が含まれているものを取り出してプロットする感じで。 とりあえず捻りのないやり方で…。 library(ggplot2) library(magrittr) library(dplyr) # id振っておく iris_ <- iris %>% mutate(id=row_number()) # 下地を作っておく g <- ggplot(iris_, aes(x=id)) # 列名に条件を設けて取り出す。 coliris <- iris %>% select(contains(".")) %>% colnames() # for文でまわす for(i in coliris){ g

    (R) x軸共通の場合に、列名が条件に合致した場合に全部y軸にプロットする (メモ) - niszetの日記
  • Ad-Stock効果を推定しつつ回帰を回したい⑤ - 統計コンサルの議事メモ

    背景 しつこいようですが、Marketing Mix Modeling(MMM)の話題です。 先日、こんな面白い論文を見つけました。 GoogleのResearcherによるMMMの論文(彼らはMedia Mix Modelingと呼んでいます)なのですが、ヒルの式を用いて広告のShape効果(Carveture効果)を推定するということをやっています。ここでShape効果・carveture効果とは、メディアの露出量に対する目的変数の反応を示す曲線を指すようで、ヒルの式とは: $$ H(x; K, S) = \frac{1}{1 + (\frac{x}{K})^{-S}} $$ であり、$K > 0$や$S > 0$となるパラメータによってLogやSigmoidの形状を表現することができるようです。 ヒルの式によってxがどのような形状となるか、実際に確認してみましょう。まずはヒルの式を以

    Ad-Stock効果を推定しつつ回帰を回したい⑤ - 統計コンサルの議事メモ
  • Fitbitデータでスパース推定に入門してみる④ 〜Graphical lassoで変数間の関係性について調べる〜 - mikutaifukuの雑記帳

    はじめに これまで述べてきたのは、主にモデルの回帰係数の推定に基づく話でした。 mikutaifuku.hatenablog.com mikutaifuku.hatenablog.com mikutaifuku.hatenablog.com 今回のエントリでは、これまでの回帰係数の推定ではなく、共分散構造に注目した手法を取り上げます。多数の変数間の依存関係を推定するために、ガウシアングラフィカルモデルにL1正則化の考え方を応用する、Graphical lassoとよばれる手法を使います。 なお、今回の記事も今までと同様に以下の書籍(5.1 グラフィカルモデルにおけるスパース推定)を参考に書いたものですので、詳細は書籍を参考にしていただければと思います。 スパース推定法による統計モデリング (統計学One Point) 作者: 川野秀一,松井秀俊,廣瀬慧出版社/メーカー: 共立出版発売日:

    Fitbitデータでスパース推定に入門してみる④ 〜Graphical lassoで変数間の関係性について調べる〜 - mikutaifukuの雑記帳
  • Let’s Git started | Happy Git and GitHub for the useR

    Let’s Git started | Happy Git and GitHub for the useR
  • Stanの関数を使ってRを拡張して高速化する - StatModeling Memorandum

    C++に自動で変換される)Stanの関数を使ってRを拡張できる機能が、Stan/RStanの2.16で実装開始されて2.17でほぼ完成しました。Rを高速化するためにC++(とRcpp)はあまり書きたくないけれど、Stanの関数なら書いてもいいよという僕得な機能です。この記事ではその方法を簡単に紹介します。 元にした資料はRStanの開発者であるBenさんがStanCon2018で発表したこちらの資料です。 ここでは例として、以下の2つの関数をRで使えるようにしましょう。 1) 機械学習分野でおなじみのlog_sum_exp関数 引数はN個の正の実数 2) データにemax modelという曲線をあてはめた場合の対数尤度を返す関数 引数はデータ(N個のXとYのペア)とパラメータの値 手順は簡単で以下だけです。 functionsブロックだけ書いたstanファイルを用意する R側でrstan

    Stanの関数を使ってRを拡張して高速化する - StatModeling Memorandum
  • Exploring interactions with continuous predictors in regression models

    Exploring interactions with continuous predictors in regression models Jacob Long 2018-09-22 Understanding an interaction effect in a linear regression model is usually difficult when using just the basic output tables and looking at the coefficients. The jtools package provides several functions that can help analysts probe more deeply. Categorical by categorical interactions: All the tools descr

  • ctsemパッケージに学ぶ、時系列データの構造方程式モデリングのStanによる実装

    はじめに Stan Advent Calender 201720日目の記事です。 構造方程式モデリングを使って, 時系列データを扱うことをD-SEM (Dynamic SEM)と呼びます。 ここでは、D-SEMを使って階層ベイズモデルが実行可能なctsemを紹介します。 ベクトル自己回帰の問題:時間の扱い 心理学では1つの変数の推移を記述, 予測することよりも, ある変数の変化がどのような変数で説明されるかといった形式で, 2つ以上の変数の関係を明らかにすることに関心がある場合が多いです。 時系列データで複数の変数間の関係を扱うモデルは種々ありますが, その代表として, ベクトル自己回帰モデルがあります。ベクトル自己回帰モデルでは, 時間を離散値,等間隔のものとする仮定が置かれていて, この仮定を逸脱した場合には, 推定にバイアスが生じることが知られています。 最近, 心理学の中では, 経

  • RStudioアドイン「codicR」で酷い英語力による変数名をなんとかする - Dimension Planet Adventure 最終章 最終話『栄光なる未来』

    この記事は 「RStudio Advent Calendar 2017」 15日目のエントリーです。 こんにちは、皆さんは英語が得意ですか。私はもう駄目です。 それなのにコーディングなどをしているので、変数名とかカラム名を付けるときにいつも苦労します。僕が書いたコードを見せると、「この変数名はちょっと」という反応が返ることがよくあります。すみません。もう一度リーダブルコードを読み直せ。 そんなときには、 「codic」 にお世話になります。 このサービスはあちこちで紹介されているのでご存知かもしれませんが、 日語を入力するとプログラミング向けの英語に変換してくれるサービスです。最高ですね。 そんな素敵なcodicですが、お世話になりすぎてしまい、いちいちRStudioからブラウザに切り替えるのも苦痛になってきました。ありがたいことにcodicでは API が公開されているので、RStud

    RStudioアドイン「codicR」で酷い英語力による変数名をなんとかする - Dimension Planet Adventure 最終章 最終話『栄光なる未来』
  • significantdigits.org

    This domain may be for sale!

    significantdigits.org