More Related Content What's hot (20)
2 6.ゼロ切断?過剰モデル 2 6.ゼロ切断?過剰モデル
logics-of-blue ?
2013年8月10~11日にかけて北大函館キャンパス内で行われた統計勉強会の投影資料です。
2日目
2-6.ゼロ切断?過剰モデル
ゼロがないデータや、0が多すぎるデータを分析する方法を解説します。
サイト作ってます
http://logics-of-blue.com/
効果測定入門 Rによる傾向スコア解析 効果測定入門 Rによる傾向スコア解析
aa_aa_aa ?
◆教材
里洋平著 「戦略的データマイニング」 7章
◆内容
1.効果測定の基本的な考え方
2.因果(施策)効果の推定
?ランダムに割り当てられる場合
?割当がランダムでない場合
?共変量で調整する場合
3.傾向スコア解析
?概要
?傾向スコアを用いた調整法
?Rによる実行
20170608 srws第四回pubmed検索その2 20170608 srws第四回pubmed検索その2
SR WS ?
厂搁奥厂の第4回の动画です。笔耻产惭别诲での検索式の作成の基础その2です。コクランレビューの検索式を参考にするやり方や引用検索、搁补测测补苍を使ったアブストラクトスクリーニング、背景の构造などを取り扱っています。
観察研究の必须事项 観察研究の必须事项
Yoshitake Takebayashi ?
エビデンスの「質」を意識した研究計画への誘い:研究を始める前に知っておきたい研究報告の国際基準
http://t.co/r7okiho781
日本心理学会第78回大会
http://jpa2014.com/
公募シンポジウム SS-067
2014/09/11(木)
15:30-17:30
【企画代表者】
?土屋政雄 (労働安全衛生総合研究所)
【話題提供者】
?奥村泰之 (医療経済研究機構): 万延する研究報告の質の低さの問題への総合的対策
?竹林由武 (統計数理研究所): 観察研究の必须事项
?市倉加奈子 (東京医科歯科大学) : メタ分析の必須事項
?土屋政雄 (労働安全衛生総合研究所): 尺度研究の必須事項
【指定討論者】
?豊田秀樹 (早稲田大学): 統計学者の立場から
?熊野宏昭 (早稲田大学): 臨床の立場から
Viewers also liked (16)
MP in Haskell MP in Haskell
Kent Ohashi ?
「MP in Scala」のスピンオフ(Haskell版)。
cf. Scala版: http://www.slideshare.net/KentOhashi/mp-in-scala
Haskellでもモナディックプログラミング!
1. モナドとは何か
2. モナドの基本的な扱い方
3. モナド変換子の使い方
HTTP/2 in nginx(2016/3/11 社内勉強会) HTTP/2 in nginx(2016/3/11 社内勉強会)
Yoko TAMADA ?
CentOS 7.2 環境で nginx をソースコードからインストールし、HTTP/2 を利用できるまで実施してみました。
追記; nginx-build のち、systemctl - TMD45'β'LOG!!! http://blog.tmd45.jp/entry/2016/08/13/120924
From Java To Clojure (English version) From Java To Clojure (English version)
Kent Ohashi ?
This document discusses the transition from Java to Clojure, highlighting Clojure's advantages such as better functional programming support, simplicity, and extensibility. It provides insights into Clojure's language features, its status as a Lisp dialect, and its interoperability with Java. Additionally, it includes specific examples of Clojure's syntax, data structures, and macro functionalities while encouraging the use of Clojure for more efficient programming.
Similar to Rプログラミング02 データ入出力編 (20) More from wada, kazumi (20)
拟似ミクロデータについて 拟似ミクロデータについて
wada, kazumi ?
2013年3月29日に開催されたSASミクロデータ分析コンテスト説明会用スライドです。
詳細は、以下をご参照ください。
http://www.sas.com/reg/offer/jp/20130718_sas_academic
搁による辫谤颈苍肠辞尘辫関数を使わない主成分分析 搁による辫谤颈苍肠辞尘辫関数を使わない主成分分析
wada, kazumi ?
2009年顷、射影追跡法と主成分分析を组み合わせた外れ値検出法の関数を书くために必要に迫られて勉强した内容が元になっています。さすがに职场でも需要は见込めないのでお蔵入りしていたネタですが、せっかくなので蝉濒颈诲别蝉丑补谤别用に书き起こしました。
マハラノビス距离とユークリッド距离の违い マハラノビス距离とユークリッド距离の违い
wada, kazumi ?
相関のある多変量データで距離を測る場合、我々が通常「距離」と呼ぶユークリッド距離よりも、マハラノビス距離の方が都合がよい。多変量データを変数ごとに標準化してユークリッド距離をとる場合は標準化により変数間の関係性が変わる上に相関関係は考慮されないが、マハラノビス距離を使えば変数間の相関関係も考慮した多変量標準化尺度として使用できる。Rでのデモつき。
このメモでは、説明のために、比較的きれいなデータを用いて、距離の大きさで便宜上外れ値を判定してはいるが、ロバスト性のない平均値ベクトルや共分散行列から計算されるマハラノビス距離はやはり全くロバスト性をもたないため、外れ値検出の目的で使用してはいけない。逆に言えば、マハラノビス距離を用いて外れ値検出を行うためには、平均値ベクトルと共分散行列の代わりに、ロバスト推計した位置と尺度指標を用いれば良い。
Rプログラミング02 データ入出力編2. 目 次
I. データの入力方法
A) コンソールでの直接入力
B) データエディタの利用
C) csvファイル [その1、その2]
D) 固定長テキストファイル
E) 複数のcsvファイルをまとめて
II. 基本的な出力方法
A) ワークスペース全体の保存
B) コードの履歴の保存
C) バイナリファイル
D) csvファイル
2
III. 関連知識
? 作業領域の掃除方法
? ディレクトリやファイル
の操作
? ダブルクォーテーション
? 円記号
? プログラミングの留意点
? 繰り返し処理
? 条件分岐
? 比較演算子
? 論理演算子
? 欠損値NAとその対処方法
? NaN, Null, Inf
4. ? 変数は、車のスピードと制動距離の二つ
? それぞれspeedとdistという変数名を設定し、
「c()」の中に要素をカンマ区切りで並べて付置
することにより、ベクトルデータを作成し、次に
dat1にそれぞれのベクトルをcbindで横に並べて
行列データを作成している
A) コンソールでの直接入力
speed <- c(4, 4, 7, 7, …, 25)
dist <- c(2, 10, 4, 22, …, 85)
dat1 <- cbind(speed, dist)
4
例1. 車の制動距離データ [50×2]
※ 上のコマンドではデータを途中省略しているため、このスライドとセッ
トでアップロードされているデモコードをご利用ください。
5. ちょっと脱線: Rで嬉しいこと
plot(dat1) # 散布図描画
summary(dat1) # データの基本統計量表示
lm1 <- lm(dist~speed) # 回帰分析
summary(lm1) # 回帰分析結果表示
abline(lm1, col= "red") # 回帰線描画
データを入力すれば、散布図
を描き、回帰分析を行い、回
帰線を散布図に表示させる作
業がコマンド数行で終わる。
※ lm関数の戻り値はリスト
5
6. ? まずは空のデータフレーム dat2 を作成
? コンソールのメニューバーから「編集」 => 「データエ
ディタ」を選ぶとデータエディタが起動するので、必要
なデータを入力する
? メニューバー操作の代わりに fix 関数でも同じことがで
きる
? fix関数の代わりにedit 関数を使用する場合は付値が必要
B) データエディタの利用
dat2 <- data.frame() # 空のデータフレーム作成
fix(dat2) # データエディタの起動
6
※ 行列の要素は全て同じ型のデータという制約があるが、
データフレームは列毎に型の違うデータを保持できる
7. ? read.csv 関数は、csvを読み込むための関数
? File.choose 関数を使用することにより、ファイル選
択のダイアログボックスが開き、任意のファイルを指
定することができる
? データは、cars.csv を使用する
C) CSVファイル、その1
data1 <- read.csv(file.choose())
head(data1) # データの冒頭だけ表示
tail(data1) # データの末尾だけ表示
7
※ データを読み込んだ後、内容確認はしておく。特に末尾を見る
ことは大切。
9. ? read.fwf 関数は、区切り文字のない固定長データを
読み込むための関数
? データは、cars.txt を使用する
? ヘッダはない
? 一行18桁で、10桁がスピード、8桁が距離で左詰め
D) 固定長テキストファイル
wt1 <- c(10, 8) # 桁数
cn1 <- c("speed", "dist") # 項目名
dat4 <- read.fwf("cars.txt", widths=wt1, col.names=cn1)
head(dat4) # データの冒頭だけ表示
tail(dat4) # データの末尾だけ表示
9
23. - EXCELでの作業手順 -
1. ヘッダより上の部分を削除
2. 「変数名」でソート、ブランク行削除
3. 「型」でソート、ブランクを2に書き換え
4. 「行番号」順に再ソート
5. 必要のない列を削除
6. ヘッダを半角文字に
7. CSVファイルとして保存[ここでは code.csv]
23
i. コンスタント作成
1 : 数量データ
ブランク: カテゴリデータ
Rに読み込むとブランクはNA
に化けるので2に書き換える
型
24. ii. コンスタント読込み
~ EXCELで作ったCSVファイルの最後にはよくゴミがある~
24
rm(list=ls(all=TRUE)) # 作業領域のお掃除?
setwd("c:/Rdemo/giji/") # ファイルを置いたディレクトリの指定
Cd1 <- read.csv("code.csv", header=TRUE)
Tail(cd1)
A1 <- which(!is.na(cd1$ren)) # コンスタントファイル末尾の
Cd1 <- cd1[a1,] # ブランク行削除
Tail(cd1) # cd1の末尾確認
no koumoku lvl type namae
192 517 土地家屋借金返済 4 1 Youto178
193 519 他の借金返済 4 1 Youto179
194 521 分割払?一括払購入借入金返済 4 1 Youto180
195 523 財産購入 4 1 Youto181
196 525 その他 4 1 Youto182
197 527 繰越金 3 1 Youto183
# 因子属性への変換抑制フラグ作成
ft1 <- rep(TRUE, dim(cd1)[1])
ft1[which(cd1$type == 2)] <- FALSEc
25. iii. データファイル読込み
~ 分割ファイルがたくさんあっても怖くない~
25
# 命名規則を指定してデータファイル名の一覧を取得
(f.list <- list.files(path=getwd(), pattern="*).csv"))
[1] "GIJI_2004zensho_dataset(00001~05000).csv"
[2] "GIJI_2004zensho_dataset(05001~10000).csv"
[3] "GIJI_2004zensho_dataset(10001~15000).csv"
[4] "GIJI_2004zensho_dataset(15001~20000).csv"
[5] "GIJI_2004zensho_dataset(20001~25000).csv"
[6] "GIJI_2004zensho_dataset(25001~30000).csv"
[7] "GIJI_2004zensho_dataset(30001~32027).csv"
dt1 <- do.call("rbind", lapply(f.list, read.csv,
col.names=cd1$namae, as.is=ft1, header=FALSE))
dim(dt1)
[1] 32027 197
33. ■ 作業領域の掃除方法
? 作業領域にある全オブジェクト一覧
ls()
? 全オブジェクトを消去
rm(list=ls())
? オブジェクト x1, x2 を消去
rm(x1, x2)
? 関数オブジェクト以外の全てのオブジェクトを消
去
rm(list=ls()[!sapply(ls(), FUN=exists,
mode="function")])
33
38. i <- 5
while (i > 0){
print("Hello!")
i <- i - 1
}
繰り返し処理
? for
? while
38
for (i in 1:5) print("Hello")
nm1 <- c("Mio", "Ryo", "John", “Yuki", "Taro")
for (i in 1:5) {
print(paste("Hello, ", nm1[i], "!", sep="") )
}
39. 条件分岐
? if() else{}
? ifelse
3
9
b <- c <- 0
if (a > 0) {
b <- b + 1; print("a > 0")
} else {
c <- c + 1; print ("a <= 0")
}
outcome <- ifelse (score > 0.5, print("Passed"), print("Failed"))
41. 論理演算子
記号 意味 要素の種類
! NOT(ではない) 値、ベクトル
&& AND(かつ) 値
|| OR(または) 値
& AND(かつ) ベクトル
| OR(または) ベクトル
41
42. 欠損値 NA(1)
42
> x1 <- c(1,,5,2,4)
以下にエラー c(1, , 5, 2, 4) : 引数 2 が空です
> x1
エラー: オブジェクト 'x1' がありません
> x1 <- c(1,NA,5,2,4)
> x1
[1] 1 NA 5 2 4
> x1 == 5
[1] FALSE NA TRUE FALSE FALSE
> which(x1 == 5) # x1の値が5であるデータ番号
[1] 3
>
43. 欠損値 NA(2)
43
> which(x1 == NA) # x1の値がNAであるデータ番号
integer(0) # ?????
> x1 == NA
[1] NA NA NA NA NA
NAに対する演算結果は全てNAで比較演算子
==も使えない
代わりに、is.na という特別な関数が用意されているみち
44. 関数 is.na()
44
> which(x1 == NA) #x1の値がNAであるデータ番号
integer(0) # 1つもない
> x1 == NA
[1] NA NA NA NA NA
> sum(x1)
[1] NA
NAに対する演算結果は全てNAで比較演算子
==も使えず、そのままでは合計も計算できない
代わりに、is.na という特別な関数が用意されているみち
46. NaN, Null, Inf
? NaN: 非数。例えば0を0で割ると得られる。
? Null: なにもないことを示す。NAが欠測を示す
のに対し、Nullはなにもないことを示し、ベクト
ルや行列といった構造を持つことはできない。
? Inf, -Inf: 無限大。例えば5を0で割ると得られる。
46
検査のための関数 機能
is.nan() 非数かどうか
is.null() NULLかどうか
is.finite() 有限かどうか
is.infinite() 無限大かどうか
Editor's Notes #6: class(lm1)#7: 肠濒补蝉蝉関数で各ベクトルの属性を确认できる
# dat2 <- edit(dat2) # 上のコマンドと同じ
#8: 肠濒补蝉蝉関数で各ベクトルの属性を确认できる#9: 肠濒补蝉蝉関数で各ベクトルの属性を确认できる#10: 肠濒补蝉蝉関数で各ベクトルの属性を确认できる#12: 匿名データとデータのつくりが同じ。
実際の匿名データよりは小さいが、レコード数約3万2千、197項目という大規模データなので、マイニングなどにも。
試行提供段階なのでご意見をいただきたい。
#24: 「型」には1かブランクが入っているが、使いやすいようにブランクを2に置き换える。#26: メモリ2GBの32bitのVista機で実行。このくらいのデータ量であれば一気読みしても問題はない。
旧コード
#カレントディレクトリから特定の命名規則に従うデータファイル名の一覧を取得
(f.list <- list.files(path=getwd(), pattern="*).csv"))
n.file <- length(f.list) # データファイルの数をカウント
# データの読込
dt2 <- read.csv(f.list[1], col.names=cd1$namae, as.is=ft1, header=FALSE)
for (i in 2:n.file){ # ファイルの数だけループ
d1 <- read.csv(f.list[i], col.names=cd1$namae, as.is=ft1, header=FALSE)
dt2 <- rbind(dt2, d1)
}
#36: テキストエディタを使用している限りは問題が起きないが、WordなどOffice系のソフト上でコマンドを書く場合、半角のダブルクォーテーション(Shift-JISの16進コードで”22”)を勝手に全角(“8167”と”8168”)に変換することがある。
そのままプロンプトの画面にコピーペストしても適正には動かない。#37: 搁で採用されている正规表现では、袄に続く文字に特殊な意味を持たせているため。#41: http://qiita.com/uri/items/1245441ab179c6ee76f9#42: http://qiita.com/uri/items/1245441ab179c6ee76f9