jnobuyukiのブログ

JavaScriptとR言語を中心に研究活動に役立つwebアプリケーション技術について考えていきます。twitter ID: @j_nobuyuki

R

R言語でパイプ処理を利用してコードを見やすく

今回は、R言語のコードそのものを見やすくするという話です。 Rでのコードの書き方 R言語では、型を指定しないオブジェクトにデータやその下処理・解析結果を一時的に保持するのが典型的です。例えば以下のコードは、入力データ、下処理後データ、解析結果が…

統計的に有意となる相関係数を自由度と有意水準から逆算する

今回は、ちょっとややこしい話。2つの変数の関連性を数値の変動の仕方から推定する方法があります。例えば、一方が増えると他方も増えるのか?それとも減るのか?もしくは変わらないか。これを表す指標の一つが相関係数です。相関係数を計算する方法は、検…

RマークダウンファイルでGhostscriptに関するエラーへの対処

今回は、RStudioを使っている時に出てきたエラーへの対処をメモ代わりにまとめておきます。 RマークダウンファイルからPDFファイル作成 RStudioでは、Rマークダウン形式ファイルがあり、マークダウン形式のテキスト、Rコード、出力結果、グラフを一つのファ…

可視化で理解する中心極限定理

今回は、Data Visualization Advent Calendar 2015への寄稿として書きます。qiita.com データを特徴づける指標にはいろいろなものがあります。例えば、算術平均は分布の中心を表す代表的な指標です。これに加えて、データの形状やばらつきを把握すると、より…

Rマークダウンファイルで日本語を使う時のヒント

今回は、前に紹介したRマークダウンファイルについて、特に日本語テキストを扱うときに役立つ方法を紹介します。webbeginner.hatenablog.com 日本語のテキストが折り返されない そうなんです。前回紹介したやり方でフォントをうまく選べば、日本語も問題なく…

R言語で1サンプルのt検定

今回はRを用いて1サンプルのt検定(母平均の検定)について考えてみます。 1サンプルのt検定とは? 仮説として仮定された母平均に対して、サンプルから推定された母平均との差の統計的有意性を検定します。 もう少し普通の言葉で言うならば、収集したデー…

Rマークダウンファイルで使えるフォントを選ぶ

RのIDEであるRStudioではknitrやrmarkdownといったパッケージを利用して、テキスト、Rスクリプト、出力結果、グラフを一つのファイルに出力できます。その際、TeXを利用するとPDFファイル出力が可能です。しかし、実際にこれをやろうとすると結構やることが…

R言語でワードクラウドを作る

今回は、R言語のwordcloudパッケージを利用して、アンケートの自由記述回答をwordcloud形式で表現する方法をまとめます。 ワードクラウドとは? コトバンクによれば「文章中で出現頻度が高い単語を複数選び出し、その頻度に応じた大きさで図示する手法」との…

R言語でパッケージから関数を呼び出す

本日は、なんとなく気になっていた関数の呼び出し方のバリエーションをまとめておきます。 パッケージ内の関数 R言語の最大の強みの一つは、パッケージによる機能拡張でしょう。世界中の開発者がオープンな環境で次々に強力な関数を開発して公開しています。…

R言語で形態素解析

今回は、MeCabというオープンソースの形態素解析エンジンをRから使えるようにする方法を紹介します。いろいろな場所ですでに紹介のある内容ですが、紹介されているページのリンク先が有効でないこともあるので、2015年7月8日現在のやり方としてまとめ…

R言語でウェブページから情報を抽出

今回は、R言語を利用してウェブページからデータとなる情報を抽出する(いわゆるスクレイピング)方法をまとめます。 参考にしたページ abrahamcow.hatenablog.comqiita.com XMLパッケージ ウエブページを書くための言語であるHTMLは、タグ形式で表現される…

R言語でデータの並べ替え

今回はR言語でデータの並べ方を変える方法を紹介します。 具体例 具体例を見てもらうのが一番わかりやすいので、先に何をしたいのかを示します。 例えばあるデータがこんな風に並べられているとします。 ID preTest postTest 1 100 90 2 85 95 これをこのよ…

R言語でデータセットの一部を抜き出す

今回は、データの一部を抜き出すときに便利なsubset関数の使い方をまとめます。 subset関数 subset関数の引数は以下の通りです。 x データフレームオブジェクト subset 抜き出す条件式 欠損値は自動的に除外されます select 抜き出す変数名。データフレーム…

IPythonからJupyterへの移行とR用カーネルの導入

前回、ipython notebookをOSXに導入する方法をまとめました。webbeginner.hatenablog.comそこでも少しだけ書いたのですが、ipythonはどんどん進化しており、python以外のプログラム言語も動くようになってきています。そこで今回はipythonからJupyterへの移…

OSXでipython notebookを使う

今回は、少し古い情報になってしまったのですが、ipython notebookをOSXに導入する方法をメモ代わりに残します。 そもそもipython notebookとは? ipython notebookは、pythonのインタラクティブな環境をブラウザで実現する仕組みです。pythonのコード、その…

R言語で変数を変換する

前回に引き続き、データハンドリングに利用できる関数の使い方をまとめます。 今回は、データの単位やスケールの変換に利用できるtransform関数を見てみます。 transform関数 transform関数はデータフレーム内に変数を追加する関数です。既にある変数を変換…

R言語で数量データをカテゴリーデータに変換

前回データハンドリングとその方法について考えました。データハンドリングはスクリプトを利用して - jnobuyukiのブログwebbeginner.hatenablog.com今回は、データハンドリングに利用できる関数としてcut関数を取り上げ、使用上のポイントをまとめます。 cut…

データハンドリングはスクリプトを利用して

欠損値や外れ値の設定、数量データをカテゴリーデータに変換、データの並べ方の変更などいわゆるデータハンドリングについて思うところをまとめておきます。 データハンドリングは、データ解析のなかでも最も大事 今更強調して言うことでもないかもしれませ…

R言語で作成した図をEPS形式で保存する

R言語の特徴の1つに、強力なグラフ化機能が挙げられます。標準でインストールされているplot()関数は、ちょっとしたデータの確認に便利ですし、ggplot2パッケージのggplot()関数を使えば、論文に載せる品質で図を作成できます。今回は、R言語で作った図をEP…

R言語を利用して分散説明率と効果量fの関係を図示する

久しぶりのブログ記事です。今回は統計の話をします。 検定の効果量 何かの現象の原因を突き止めたい場合に、実験や調査で3つ以上の条件の間に、偶然と呼ぶには大きすぎる差があるかどうかを検証する方法として分散分析があります。この分析では、サンプル…

R言語でデータのパーセンタイルを計算する

数値データの要約(summary関数)を使うと、R言語では簡単に4分位数(25%パーセンタイル、中央値、75%パーセンタイル)を計算できます。でも、いわゆるパーセンタイル値(100分位数)は簡単に計算できないようです。(関数を知らないだけかもしれないです)…

R言語でインターネットからファイルをダウンロードする

最近、オープンデータと呼ばれる情報公開の動きがネット上で見られるようになりました。(まだまだたくさんとはいえませんが)これを利用して何か分析したいとしましょう。まずブラウザを経由してデータをダウンロードします。次にエクセルなどでファイルの…

R言語で行列を結合する:rbindとcbind

R言語のちょっとした使い方のヒントです。今回は複数の行列(matrix)を結合するための関数rbindとcbindを紹介します。 rbindとcbind rbindとcbindの違いは結合の方向です。rbindは縦につなげて、cbindは横につなげます。データ解析で行列オブジェクトを使用…

R言語を利用してリスト要素の順序をランダム化

今回は少しトリッキーというかあまりほかの人には役立たないかもしれない話題です。リストを何かの順序で規則正しく並べ替えることはよくあると思います。順番良く並べてリスト全体を見やすくするようなときです。今回は、この逆で順序良く並んでいるものを…

t検定の検出力:2群のサンプルサイズが異なる場合

今回は、t検定の検出力について簡単なシミュレーションの結果を紹介します。検出力とは、帰無仮説を棄却することが真である状況で、正しく帰無仮説を棄却できる確率のことです。*1 今回紹介するt検定の場合、二群が同じ母集団を持つことを帰無仮説とします…

R言語scale()での正規化バリエーション

以前、データの正規化にはいろいろな方法があることを述べました。 数量の正規化:方法の違いは何を意味するか? - jnobuyukiのブログいろいろな正規化をやってくれるコマンドにR言語のscale()があります。 この関数は、何も考えずに使ってもそれなりに動…

JavaScriptで出てくる二回連続の否定演算子!!

たまに他の人が書いたコードを見ているとはまることがあります。今回の二重否定も、ネット検索して調べるのに意外と時間がかかったのでメモとして残します。 否定演算子! 変数の値の判定などで論理演算子をよく使いますが、否定演算子の!は、真偽の値をひ…

ビッグデータ解析と統計的帰無仮説による検証の関係(2)

前回、ビッグデータで何度も同じ統計的検定を繰り返す問題について考えました。今回は、一度にたくさんのサンプルを使って統計的検定を行うことによって生じる問題を取りあげます。 サンプルサイズが大きくなると 「ある母集団を想定して、そこから得たサン…

Shinyを利用してインタラクティブにデータを解析

R言語は強力な統計ツールの開発がどんどん進んでいます。今回紹介するShinyはR言語をブラウザ上で使用するためのパッケージです。うまく利用すると、実験やシミュレーションの結果をわかりやすく伝えられそうな気がします。 Shinyのインストール CRANに登録…

ビッグデータ解析と統計的帰無仮説による検証の関係

今日は、昨今大変注目を集めているビッグデータについて思うところを述べてみます。というのは、こんな記事がFBの拡散で届いたからです。 http://googleenterprise-ja.blogspot.jp/2014/09/google-bigquery.html これのソース記事はこちらです。 Towards Psy…