データ解析

多変量回帰と相関

多変量解析では、 (0)単独変数の調整 (0-1)カテゴリ化すると楽 cut関数 (0-2)少なすぎる変数の除去 (1)説明変数間の相関を調べる →とりあえず、主要っぽい変数を10個くらいとりだすとわかりやすい http://kusanagi.hatenablog.jp/entry/2014/07/23/2…

google trend データの収集

(1)python を導入 参考:https://qiita.com/yuta_h3/items/2988c4d0811bf8c344c0 git clone git://github.com/yyuu/pyenv.git ~/.pyenv ~/.bash_profile に以下を書きこむ export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PA…

Rでスペクトル解析

Rでスペクトル解析。 正弦波以外の周期をもった波が倍音が出力されることに注意 例1)正弦波 30日周期 x*1 例2)30日周期のイベント(倍音がでる) x plot(x) spec.pgram(x,c(10,10)) https://jp.mathworks.com/help/signal/examples/practical-introd…

Rでパラメータ制約付き非線形最適化とパラメータ制約付の最小二乗法とロジスティック回帰(カテゴリカルデータ、質的データ)

Rでパラメータ制約付非線形最適化 Rsolnpパッケージをもちいる。Rで非線形制約条件付非線形最適化を行う方法 by Rsolnp http://d.hatena.ne.jp/teramonagi/20091217/1261048574を参考に とりあえず最小二乗法でためす. library(Rsolnp)#答えと問題のデータを…

Rで因子分析と分散共分散分析

Rで因子分析と分散共分散分析をする。 因子分析は、潜在要因をみつける方法。 主成分分析と回帰分析と異なり観測変数xを説明する潜在変数をみつける方法(下のx1とx2を見つける) y1=a*x1+a*x2 y2=a*x1+a*x2 y3=a*x1+a*x2 y4=a*x1+a*x2 心理学等では、「瞬発…

dplyr ですべての列の平均を計算

dplyr ですべての列の平均を計算 dplyr::summarise_each(data,funs(mean),everything())

dplyr ですべての列の平均を計算

dplyr ですべての列の平均を計算 dplyr::summarise_each(data,funs(mean),everything())

Rの因子を任意の順番に並び替える

元データ: qba_all: y MOYORIEKI 0 大津駅 1 山科関 0 石山駅 1 大津駅 0 彦根駅 0 南草津駅 1 彦根駅 計算: 因子の順番を駅の順番を揃える stalist<-c("山科駅","大津駅","膳所駅","石山駅","瀬田駅","南草津駅","草津駅","栗東駅","守山駅","野洲駅","篠…

dplyrで因子水準ごとに二項検定

元データ: qba_all: y MOYORIEKI 0 大津駅 1 山科関 0 石山駅 1 大津駅 0 彦根駅 0 南草津駅 1 彦根駅 計算 qba<-qb_all #因子の順番を駅の順番を揃える #stalist<-c("山科駅","大津駅","膳所駅","石山駅","瀬田駅","南草津駅","草津駅","栗東駅","守山駅",…

2つのファイルを併合するワンライナー(pandas利用)

2つのファイルを併合するワンライナー(pandas利用) python -c "import pandas as pd;df=pd.read_csv('a1.txt',names=['id','st']);df2=pd.read_csv('a2.txt',names=['st','count']);print pd.merge(df,df2,on='st');" 入力 $ cat a1.txt 1,タヌキ 2,キツ…

pandasで複数ファイルの3列目の同じ値のものをカウントしてマージ

pandasで3列目の同じ値のものをカウントしてマージ $ cat count_station.py import pandas as pd import glob l1=glob.glob('./uniq_data*') (l1) #print l1 start=True for i in l1: i.strip() try: df=pd.read_csv(i,header=None) q1=df[4].value_counts(…

pythonのpandasで離散化、ビニング、ビンに区切り集計

離散化、ビンに切って、ビニングして、カテゴリごとに集計 xはデータフレーム x[0]で1列目をとりだしている. qcutはデータ数をあわせる分割, cutは均等割り. x[0]として、pd.Seres化することに注意 x0だと、DataFrame。 cats=pd.qcut(x[0],30) print cats…

pandasでInfとnanをで埋める.

pandasでInfとnanを平均で埋める. In [416]: b Out[416]: a c 0 1.000000 3 1 2.000000 4 2 3.000000 NaN 3 inf 5 In [415]: b.replace(np.inf,np.nan).fillna(b.replace(np.inf,np.nan).mean()) Out[415]: a c 0 1 3 1 2 4 2 3 4 3 2 5

Rstanの導入

RのMCMCライブラリのRstanの導入 windows 8 64bit R x64 3.0.2 >R x64 3.2.3 (上のバージョンだと古すぎるので移行) これに従う. https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started (1)基本の整備 バージョンにあったRtoolsのインストー…

Rで時系列の一番数値が大きい月を計算 

Rで時系列の一番数値が大きい月を計算 データ例 data<-seq(3,10,length.out=365) data<-rep(data,8) data<-seq(2,10,length.out=length(data))*data 月別集計:365日の移動平均でトレンドを殺してる. v3<-v/filter(v,rep(1,365)) v4<-tapply(v3[!is.na(v…

グレンジャー因果検定

グレンジャー因果検定: 注意事項 #本当の因果関係でないことに注意。 例えば,精度のよい天気予報と天気は因果関係ありと判定してしまう. また,線形モデルを仮定するので,モデルが非線形の場合は正確ではない. アイデア: x→yの相関を考える. y(t+1)…

単回帰の係数の標準偏差

単回帰の係数の標準偏差は, y=bx+f 平均値は, bcov(x,y)/var(x) で推定できる. 誤差:y-bxは, sd な感じ(本当は不偏推定量を使うべき). sd_b で与えられる sdは,誤差の推定値.チェック summary(lm(y~x)) http://www.ic.daito.ac.jp/~tkadoda/2005/ec…

Javaで順位統計: ランキングの計算 Apache Commons のCommons Mathの利用

Javaで順位統計: ランキングの計算 Apache Commons のCommons Mathの利用 http://d.hatena.ne.jp/arupaka-_-arupaka/20130218/1361169072 本家を参考に http://commons.apache.org/math/userguide/stat.html#a1.6_Rank_transformations import org.apache.c…

sedでTESTが含まれる行以降を表示

sedでTESTが含まれる行以降を表示 sed -ne '/TEST/,$p' Noun.sh

igraph でページランク

igraph でページランク test.net 1 2 3 4 2 1 k<-read.table("directedkan.net") g<-graph.data.frame(k) page<-page.rank(g) pagerank<-(page)$vector s<-get.vertex.attribute(g,"name") s<-V(g) d1<-data.frame((s)$name,pagerank) write.table(d1,file="…

igorで行列データの等高線

loadwave M:行列、G:一般テキスト、 N:ファイル指定。 kugiri3:区切りウェーブ。 data11.dat : 行列 data12.dat : x列の長さベクトル data13.dat : y列の長さベクトル ディレクトリ: C:Users:username:Documents: Window scale_2d() : Graph String header=…

gsl のコンパイル

gcc -O2 test.c -lgsl -lgslcbla s -lm

 Rで特定の列だけ読み取る方法

Rで特定の列だけ読み取る方法。 本当は、awkやcutで処理した後 Rにいれるのが一番ベストだが、 それができない場合。 例えば、 「数字,100000文字の日本語文字列,数字」 のように、普通にはメモリーオーバーで 読み取れないようなファイルのとき、1列目と…

 強連結成分分解

http://mono.kmc.gr.jp/~oxy/acmicpc/hiki.cgi?%A5%B0%A5%E9%A5%D5%2F%BF%BC%A4%B5%CD%A5%C0%E8%C3%B5%BA%F7http://www.ics.uci.edu/~eppstein/161/960220.html#sca

Rで最初10行の読み取り(head)。

全データを読み込む前に最初10行だけ 読み取って様子をみる。 data<-read.csv("filename",nrow=10)

awkでページランク

awkでページランクの計算。 1 3 2 5 3 6 4 7 というリストデータに対して、 $ cat gai3.awk { m[$2"a"$1]=1; } END{ c=0.85 for(i in m){ split(i,n,"a") Sum[n[2]]=1+Sum[n[2]]; } for( i in m){ split(i,n,"a") h[i]=-c*(m[i]/Sum[n[2]]); #print n[1],n[2…

 awkでページランク

Rで求めきれない大きいネットワークの ページランクでawkで求める。 awkaでコンパイルするとさらに速くなるはず。

awka :awkをC言語に翻訳して早く実行

awkをC言語に翻訳して早く実行 コンパイルとインストール $wget http://awka.sourceforge.net/awka-0.7.5.tar.gz $gzip -d awka-0.7.5.tar.gz $tar -xvf awka-0.7.5.tar $cd awka-0.7.5 $./configure $make $make test 使い方 まずこれを作る awk2c.sh #!/bi…

GSLをC言語から利用する。

GSLはフリーの科学技術ライブラリ。 数値計算で必要なものはほとんどある。 以前はrubyで使用したが今度はC言語で利用する。サンプルプログラム #include <stdio.h> #include <gsl/gsl_sf_bessel.h> int main(void){ double x=5.0; double y=gsl_sf_bessel_J0(x); printf("J0(%g)=%e",x,y);</gsl/gsl_sf_bessel.h></stdio.h>…

Rでページランクの計算

Rでページランクの計算 package igraphをインストールした後。 ノートPCでかなり大きい行列 まで求められた。 libray(igraph) in1<-c(0,0,1,2) out1<-c(1,2,2,0) x_y <- cbind(out1,in1) g<-as.directed(graph.edgelist(x_y)) p<-page.rank(g) tkplot(g) p$v…