読者です 読者をやめる 読者になる 読者になる

R Clustering 世界各国を人口構成・産業構成でクラスタリング

自治体のクラスタリングと同様、世界各国の人口構成・産業構成のデータでクラスタリングし、進出市場を検討するための方法をご紹介しようと思います。全体の流れは次の通りです。 分析の設計 データを集める前に、何のためにどのデータを集めるのか、明確に…

R Clustering 日本の自治体を人口構成・産業構成でクラスタリング

今回は、日本の1,835の市区町村(2015年現在)を人口構成と産業構成のデータで分類してみる。今回は「個々を具体的に認識できる範囲」ではないので、非階層クラスター分析(k-means)をしてみることにする。 分析の目的 最近「地方創生」「少子高齢化」「地…

R Random Number Generation 乱数の作成

ゼミで特定の分布に従う乱数の作成法について勉強したので、備忘のため、記録しておく。特定のデータがあり、そのデータの分布に従ったデータを生成したいときに重宝する。 実際にやってみる。ある商品の希望買い取り価格調査を19名に対して行ったとして、そ…

R SVM (サポートベクターマシン)

SVM(サポートベクターマシーン)という方法による、グループ分けの例。データはサンプルで適当に生成したものです。渦巻き状に2つのグループのデータ分布しているとしても、両者を自動的に見分けてくれます。SVMはやや複雑な数学を用いますが、精度が非常に良…

Linux Tips (圧縮/解凍/ファイル削除)

記憶のため、メモ。 [ファイルをtar.gz形式で圧縮する] tar cfvz 圧縮後のファイル名.tar.gz 圧縮するファイルのあるパス [tar.gzを解凍する] tar xvzf 圧縮後のファイル名.tar.gz [フォルダの容量を確認] du [フォルダ名を変更] mv 変更前フォルダ名 変更後…

R Resampling (リサンプリング)

ゼミでリサンプリングの手法を学んだので、知識と各手法の善し悪しについて整理しておく。主にこちらのサイトを参考にした。 リサンプリングの定義 初期サンプルから、新しいサンプルを作りだすことに基づいて得られる統計的推定の方法 リサンプリングの目的…

R ROCカーブの知識整理

こちらのページでもROCカーブを用いてきたが、改めて知識を整理しておく。ROCカーブはReceiver Operating Characteristicのことであり、モデルの善し悪しを表現する1つの手段と認識している。 以下は、あるメールがspamか否かをDecision Treeで予測した際のR…

検定の知識整理(3) 検定力について1

有意水準・効果量・標本数・検定力はカルテットである 他の2つの条件が同じであれば、以下の3つの性質がある。 有意水準を大きくすると検定力も大きくなる。有意水準を小さくすると検定力も小さくなる。 効果量が大きければ検定力も大きい。効果量が小さけれ…

R 分布の知識整理(2) t分布1/歪度(わいど)と尖度(せんど)

t分布と正規分布の関係、歪度(わいど)と尖度(せんど)について確認する。説明はここがわかりやすい。t分布とは、 個のデータが独立にに従うとき、 ただし、は標本平均、は不偏分散 に従う分布である。上記の場合は自由度が。 の値を増加させるにつれ、正規分…

R Space interpolation 空間補間 ソースコード編集2

C言語の勉強も進んだので、目的である空間補間のソースコード編集をやってみたい。このサイトが非常に分かりやすいので参考にした。 エラーが起きた理由の振り返り こちらでRの空間補間パッケージを使用した際、エラーが起きた。コードの意味も含め、おさら…

C言語 キャスト演算子

キャスト演算子とは、型の変換を行う演算子という理解。次のような例を考える。 #include <stdio.h> void main() { double x; x = 7/3; printf("x=%f\n",x); } xは2.33333…という値が出力されるはず。しかし、実行後の結果は x=2.000000 となる。この原因は、 C言語は</stdio.h>…

C言語 配列を関数に渡す

以前勉強したときに、関数との値のやりとりについては、次の2パターンがあると理解した。 値渡し:引数に変数が渡される。変数自体は変化しない。 ポインタ渡し:関数に変数の値を変えて欲しいときに使用。引数が配列のときはポインタ渡しを使う必要がある …

C言語 多次元配列

他言語同様、C言語でも多次元配列を使うことが出来る。定義は、 型名 配列名 [n次元目要素数][n-1次元目要素数]…[1次元目要素数] と書く。 一様分布従う乱数を発生させ、それを100×100×100の3次元配列に格納してみる。乱数発生はココを参照。 #include <stdio.h> #inc</stdio.h>…

C言語 ポインタのポインタ

C言語改訂版2 はじめて学ぶCの仕組み (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 2人 クリック: 6回この商品を含むブログ (3件) を見る 時系列解析でご無沙汰していたが、この問題…

R 分布の知識整理(1) まずは名前から

XX分布という文言も世の中に飛び交っている。これらの関係を整理し、理解を深めていきたい。少しずつ進めていくことにする。研究対象は次の通り。 一様分布 F分布 分布 ガンマ分布 幾何分布 コーシー分布 指数分布 正規分布 対数正規分布 多項分布 t分布 超…

R aov関数を分解する

Rでコンソールにaovと入力すると、関数の中身が現れる。普段あまり使わない関数も多数登場しているので、意味を確認することにする。 1 function (formula, data = NULL, projections = FALSE, qr = TRUE, contrasts = NULL, ...) "formula"は分散分析の対象…

R 検定の知識整理(1) 独立多群間の比較1

「xx検定」という言葉がゼミでも職場でも飛び交っているが、断片的に統計を勉強してきた自分にとっては知識の劣化があるので、ブログに書いて知識を正確に深化させていきたい。 まずは、直近ゼミでも登場している分散分析周りについておさらい。個々は各回で…

R Time Series Analysis 時系列解析(15) ここまでのまとめ

これまで勉強した時系列解析の手法・考え方をまとめる。確信は無い。実際に使う中で随時追記していく予定。 データを読み込んで、ts()で時系列に変換。 時系列を図示、自己相関係数(acf)→ trend, seasonalの存在、分散の一様性を目視で確認。 seasonalが存…

R Time Series Analysis 時系列解析(14) SARIMAモデル

SARIMAモデルとは ARIMAモデルの変化形であるSARIMAモデルの確認を忘れていた。SARIMAモデルとは、通常のARIMA(p,d,q)と季節階差に関するARIMA(k,l,m)を合わせたモデル。季節階差とは、例えば「前年同期との差」のこと。1周期がsである場合に、季節階差を と…

R Time Series Analysis 時系列解析(13) スペクトル分析

定常過程の母スペクトル 定常時系列を特徴を把握するための要素として、自己共分散およびそれを基準化した自己相関係数があった。定常過程の自己共分散に対して、次の無限級数を「自己共分散母関数」として定義する。 これをで割り、に(ただし、は周波数)を…

R 対応のないt検定

数学いらずの医科統計学 第2版作者: 津崎晃一出版社/メーカー: メディカルサイエンスインターナショナル発売日: 2011/03/24メディア: 単行本購入: 1人 クリック: 37回この商品を含むブログ (2件) を見る 対応のないt検定について、気づいたことがあったので…

R 対応のある群の比較

ゼミの課題に出ていたこともあり、備忘のため記す。東証時価総額上位18社(データ取得期間中に単位が変わっているKDDIは除く)の終値の変動をみる。 まず、データの取得。無料で取得出来るサイトがある。銘柄の番号を変えればRのfor文で取得出来、自動的に更新…

R Space interpolation 空間補間 ソースコード編集1

この前勉強した空間補間のパッケージgstatを使っていたら、krige関数を使うところで、次の様なエラーが発生。 > P.dat.krige <- krige(Intensity~1, P.dat, dat.grid, model = P.m) [using ordinary kriging] "memory.c", line 58: can't allocate memory in…

R Time Series Analysis 時系列解析(12) 単位根検定1

単位根 において となる過程を「ランダム・ウォーク(RW, 酔歩)」と呼ぶ。この場合、この過程は、特性方程式がのとき1(単位根)を解にもつため、単位根過程と言う事が出来る。ちなみに、<1ならこの過程は定常過程となり、>1なら確率過程とはならない。 単位根…

R Random Forest ランダムフォレスト

現在は時系列解析にプライオリティを置いているが、前勉強した機械学習の手法があったので復習を兼ねて載せる。 こちらで、決定木(Decision Tree)のモデル作成と評価を行った。その精度を高めるために開発されたランダムフォレストという機械学習の手法の一…

R Time Series Analysis 時系列解析(11) ARIMAモデル3 予測

前回までで、時系列を満たすARIMA(p,d,q)のパラメータの決定方法とその評価方法を見てきた。今回は実際に予測を行って効果を検証する。(そもそもARIMAモデルありきで考えてはいけないはず) データはここから落とした日産自動車の株価情報(日次終値)。Rで…

R Time Series Analysis 時系列解析(10) ARIMAモデル2 検証

前回に引き続き、ARIMAモデル。今回はARIMA(p,d,q)を利用することを前提として、そのパラメータの決定をする。Rではarima()関数がパラメータを最尤推定してくれる。 データの下準備は以下。株価のデータを使ってみる。 stock <- read.csv("http://k-db.com/s…

R Space interpolation 空間補間

前回、3次元データ(3列のデータ)の2次元カーネル推定を行ったが、別の手段を考える必要が出てきた。2次元のカーネル推定と言っても、 点(x,y)の分布から点の密度を滑らかな関数で推定する場合 点(x,y,z)の分布が与えられている場合に滑らかな分布の形状を推…

R Time Series Analysis 時系列解析(9) ARIMAモデル1 紹介

ARモデルとMAモデルを組み合わせたものがARMAモデル。p次のARモデルAR(p)とq次のMAモデルMA(q)を組み合わせてARMA(p,q)と書く。以下のようになる。 パラメータを増やすとモデルの自由度が増える一方、パラメータに起因する誤差も増加するが、Box-Jenkinsによ…

C言語 ポインタ変数(3) 理解の総括

ポインタ変数については、理解に到達するまでやや彷徨ってしまったが… 変数へのアクセスポイント(ウィンドウズで言うショートカット) という理解が、自分は一番腹に落ちる気がする。もちろん、この理解によって発想が制約される可能性もあるので、ポインタ…

R Time Series Analysis 時系列解析(8) (線形定常過程3) MAモデル

AR(Auto Regressive)モデルに対し、今度はホワイトノイズの線形結合形である MA(Moving Average)モデルを考える。(下記は1次のMAモデル) ホワイトノイズは線形定常過程に含まれるため、その線形結合であるMAモデルも当然線形定常過程となると理解した。 と…

R パッケージのCコードを編集する

emdistというパッケージを使おうとしたが、ソースにも書いてある通り、行列のサイズ制限や計算回数に制限が設けられており、都合が悪かったのでソースコードから変更することにした。備忘として、その手順を記す。 まず、ここからemdist_0.3-1.tar.gzをダウ…

R Time Series Analysis 時系列解析(7) (線形定常過程2) 2次ARモデル

こっちでAR1次モデルを扱ったが、2次以降も項が増えるだけで、理屈は似ている。 待ち時間にやってみた。今度はACFの結果も載せる。 AR2 <- function(n,b1,b2,a=0,sd=1,y0=0) { c <- rnorm(n,sd=sd) y <- rep(0,n) y[1] <- y0 for(j in 1:(n-2)) { y[j+2] <- …

R Time Series Analysis 時系列解析(6) (線形定常過程1) 1次ARモデル

線形定常過程とは、 定常過程のうち、ある時点の確率変数が、 それ以前の確率変数とランダムな変動(ホワイトノイズ) の加重平均 となっているものをいう。ホワイトノイズとは次の定義を満たすものを指す。 1. 全ての時点で、平均(期待値)が0である。 2. 全…

R Kernel estimation 2次元カーネル推定

2次元データはこちらで例が載っていたので、ここでは3次元データで2次元カーネル推定を試してみる。MASSパッケージのkde2d関数が、ガウス分布のカーネルを用いて滑らかな密度推定を行ってくれる。 サンプルに用いるデータは、位置情報(lat, long)と各点にお…

C言語 定数 const

C言語改訂版2 はじめて学ぶCの仕組み (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 2人 クリック: 6回この商品を含むブログ (5件) を見る 定数(const)というものが取り上げられている…

R Time Series Analysis 時系列解析(5) (定常確率過程1)

前回までは、平均移動法と指数平滑法を道具とした時系列データの古典的予測方法を見てきた。しかしながら、これらの方法は(重みの度合の差こそあれ)過去に重みを振り分けて和・積を取ることで予想することを前提としており、これとは異なるアプローチもあ…

C言語 エラーを想定する

この時のコメントでNKさんは以下のようにおっしゃっていた。 ”C言語の発想は「プログラマを信用して任せます」ということです。うまく書けば速いですが、正しく使いこなせるようになるまでが大変です。大衆車とF1カーの違いといいましょうか。” まさにその通…

C言語 #define

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る #defineという機能があるらしい。 #defi…

C言語 ファイル入出力

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る 新規ファイルの作成(ファイルへの出力)…

C言語 構造体

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る 構造体とは、 様々な型の複数のデータを…

C言語 ローカル/グローバル/スタティック変数

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る Javaでも同様の記憶がある、変数の種類…

C言語 ファイルの分割

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る 関数を作ったら、プロトタイプの宣言を…

C言語 ポインタ変数(2) ポインタを関数に渡す

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る 前回に引き続き、関数の作成。関数との…

C言語 関数の作成 (1)

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る C言語の関数の構成は、 開始部分、変数…

C言語 文字列

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る C言語では、文字列を文字の配列として扱…

Linux Tips (OOM Killer対策)

Linuxサーバー上で、OOM Killerなるものに処理中のプロセスを遮断される事例が多発。メモリが限界値を超えると、最も占有が大きいプロセスを自動的に遮断する模様。 以下のように書き込むことで、落とされたくないプロセスを選定出来る。 for i in $ (ps ux …

C言語 ポインタ変数(1) 定義

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る ポインタ変数とは 「変数などの場所を覚…

C言語 配列オーバーの動き

C言語改訂版1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 3人 クリック: 14回この商品を含むブログ (3件) を見る プロがおっしゃるに、C言語では以下のよ…

CとRの類似点

RはC言語で書かれているため、両者には共通点が多いようだ #include <stdio.h> main () { int age; age = 22; if (age >= 20) { puts("You are an adult"); } else { puts("You are a child"); } } 基本的な構文、演算子等は酷似している。(そもそもどの言語も似通っ</stdio.h>…