jnobuyukiのブログ

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

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…

R言語を使った第1種の過誤のシミュレーション

心理学では、データに基づく仮説の証明に統計学を利用します。帰無仮説と呼ばれる、当初の仮説とは正反対の仮定から始めて、それが確率的に非常に低いことを示し、その結果から当初の仮説の妥当性を確認するというロジックになっています。しかし、「確率的…

R言語における最頻値の求め方

ある数値データの集団の代表性を示す方法には、(加算)平均、中央値、最頻値の3つがあります。 今回は最頻値の求め方を紹介します。 平均、中央値、最頻値 3つの代表値の違いをまとめておきます。 平均: すべてのデータの数値を加えた合計をデータの数で割…

行列やデータフレームの列名・変数名の変更

R言語で作業をしていて、つまらないことに時間がかかったので、次回以降の作業用にメモしておきます。 列名、変数名の取得と設置:colnames(),names() R言語では、データ行列を保存できるオブジェクトが二種類あります。行列(matrix)とデータフレーム(data.f…

read.table()によるテキストファイルの読み込み

R言語で、テキストファイルを読み込むときのコツをまとめます。基本的にread.table()が便利です。通常用いるargumentは header= TRUE: 一行目に変数名が含まれている場合にTRUEにします。 sep = "\t":一行の中のデータの区切り文字。"\t"はタブ記号です。 fi…