理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

エラーバー付きのグラフ ggplot2

使用するパッケージ install.packages("ggplot2") library(ggplot2) データセットを作成します #乱数を使用のため、実施毎にグラフは異なります dat <- c(c(rnorm(15)),c(rnorm(15,3,1.2)),c(rnorm(15,10,2)),c(rnorm(15,17,1.5))) pre_post <- c(rep("前", …

独立している2群を比較するグラフ ggplot2

データの準備 dat <- c(c(rnorm(15)),c(rnorm(15,3,1.2)),c(rnorm(15,10,2)),c(rnorm(15,17,1.5))) pre_post <- c(rep("前", 30),rep("後", 30)) treat <- c(rep("A",15),rep("B",15),rep("A",15),rep("B",15)) dataf <- data.frame(dat, pre_post, treat) h…

Rで作る分割表

投稿日:2018/06/28, 最終更新日2019/08/02 次のデータフレームを分割表にして解析してみます x <- data.frame(c(rep("あり",15),rep("なし",15)), c(rep("あり",9),rep("なし",6),rep("あり",5),rep("なし",10)), c(rep("有効",12),rep("無効",3),rep("有効"…

対応のあるデータのグラフ

id <- 1:20 group <- c(rep("A",10),rep("B",10)) x <- c(rnorm(10,20,2), rnorm(10,15,3)) y <- c(rnorm(10,25,1), rnorm(10,20,0.5)) data <- data.frame(id, group, x, y) x <- c(1,2) t_data <- t(data[,3:4]) mg <- ifelse(data$group == "A", 1, 2) ma…

makedummiesを使ったダミー変数の作成 

2018-07-19投稿、最終更新日2019-07-07 下のようなカテゴリカルデータをダミー変数に変更します 治療 効果 NO NO YES YES YES NO NO YES YES YES YES YES NO YES YES NO NO NO NO YES NO NO NO NO YES YES YES YES YES YES YES NO NO NO NO NO YES YES NO NO…

並べ替え検定と正規近似

2017-07-11投稿, 2019.7.4更新 正確なp値 特定の確率分布をもとに推定を行うのではなく、母集団の未知のパラメータやサンプリング誤差が入らないため計算上も正しいp値が得られる. 並べ替え検定 例)x群とy群を比較します x <- c(5, 9) #平均 = 7 y <- c…

Rで簡単(二元配置分散分析:データには対応なし、繰り返し数は5)

投稿2016.11.17 最終更新日2019.6.5 検定は帰無仮説が大切です! 商品のの主効果:帰無仮説=カップ麺でもインスタント麺でも評価の母平均は等しい スープの主効果:帰無仮説=スープが違っても評価の母平均は等しい 商品とスープの主効果:帰無仮説=商品と…

相関行列と共分散行列

相関行列 x1 <- c(93, 89, 115, 90, 75) x2 <- c(121, 136, 121, 161, 125) x3 <- c(101, 115, 118, 122, 106) #データフレームにすること dat <- data.frame(x1, x2, x3) cor(dat) x1 x2 x3 x1 1.0000000 -0.2220449 0.3981155 x2 -0.2220449 1.0000000 0.6…

対応のある一元配置分散分析(繰り返しのない二元配置分散分析)、多重比較

投稿日2018.7.21, 最終更新日2019.6.4 以下のデータセットを使用します x1 <- c(93, 89, 115, 90, 75) x2 <- c(121, 136, 121, 161, 125) x3 <- c(101, 115, 118, 122, 106) 一要因被験者内計画で対応のある一元配置分散分析です また、要因1=ID, 要因2=検…

散布図に直線を描く

x <- rnorm(20) #乱数を使用してるので毎回変わります y <- c(1:20) plot(x,y) xs <- seq(min(x), max(x), length=1000) # xの影響を含むモデル fit <- glm(y~x,family = poisson) lines(xs, exp(fit$coef[1] + xs*fit$coef[2])) # 切片のみのモデル fit.nul…

正規分布の色塗り (polygon関数 )

投稿日:2018.7.19 最終更新日:2019.5.18 polygon関数 例)y = 2*x (x,y)=(0,0), (2,0), (2,4)の△を塗りつぶす場合 x <- 0:5 y <- 2*x plot(x,y) polygon(c(0,1,2,2,1,0),c(0,0,0,4,2,0),col="gray") # c(x軸, y軸, 色) #三角形なので、のように書いても同じ…

Fisherの直接法

投稿日:2017-10-25、最終更新日:2019-07-29 Fisherの正確確率検定やFisherの直接確率検定、他にFisherの正確検定などと呼ばれています(統一してくれれば良いのにといつも思います).もともとカイ二乗検定は近似法でP値を求めています.一つのセルに度数が4以…

個人的によく使うグラフ

サンプル a <- iris$Sepal.Length[51:75] b <- iris$Petal.Length[101:125] c <- a+b data <- data.frame(a,b,c) summary(data) a b c Min. :4.900 Min. :4.50 Min. :10.10 1st Qu.:5.600 1st Qu.:5.10 1st Qu.:11.10 Median :6.100 Median :5.60 Median :11…

確率分布の計算関数

早見表 確率密度関数 確率分布関数 パーセント値 正規分布 dnorm(x, mean, sd) pnorm(q, mean, sd) qnorm(p, mean, sd) カイ二乗分布 dchisq(x, df) pchisq(q, df) qchisq(p, df) t分布 dt(x, df) pt(q, df) qt(p, df) F分布 df(x, df1, df2) pf(q, df1, df2) …

級内相関係数 Case1

以前掲載していたのですが、以下の文献を参考に書き直しました。 主にRのプログラム (パッケージは使用してません) を忘れないようにメモしておきます。 理論は以下の文献を参照してください。 1) SHROUT, Patrick E.; FLEISS, Joseph L. Intraclass correla…

連続変数をダミー変数に変換する方法

makedummiesの作者の荒様から,便利な使い方を教えていただきましたので再々更新しておきます。 irisのSepal.Lengthを使用して、4~5, 5~6, 6~7, 7~8 の4区分をダミー変数にします。 一瞬で終わります library(dplyr) library(makedummies) data <- data.f…

共分散分析を考えるためのグラフ

いつも勉強させていただいおります、下記サイトの共分散分析より グラフの描き方の備忘録です 我楽多頓陳館--雑学と統計学の館 以下のようなグラフになります データのサンプルは上記サイトから引用してdataに入れました # まずはこれを描いて考える・・・!…

生存時間解析の基本

パッケージのインストール install.packages("survival") library(survival) survivalのデータセットheartを使用します head(heart) start, stop, event: Entry and exit time and status for this interval of time age: age-48 years year: year of accept…

subset関数で層別化したデータセット

以下のようなデータセットを男女で層別したセットに変更します id 年齢 性 身長 1 39 女 162.6 2 39 女 161.4 3 41 男 174.1 4 41 女 154.7 5 42 男 184.7 6 43 男 169.3 7 43 男 163.2 8 43 男 164.4 9 44 男 167.8 10 44 男 168.5 11 44 女 154.8 12 45 男…

CSVファイルの取り込み

職場と自宅の2台のPCを使用していると仮定します MY_DIR <- "C:\\Users\\職場\\Documents\\職場のフォルダ" MY_DIR <- "C:\\Users\\自宅\\Documents\\自宅のフォルダ" それぞれのPCのパスを記載して、いつでもどこでも書けるように、 USBやクラウドなどに保…

データフレームの列を入れ替えて、欠損値のある行を除外する

忘れないうちに書いときます 欠損値のあるデータセットを用意します x <- LETTERS[1:10] y <- c(1,2,NA,2,4,NA,5,1,2,5) z <- c(1,2,2,1,1,2,2,1,1,1) xyz <- data.frame(x,y,z) x y z 1 A 1 1 2 B 2 2 3 C NA 2 4 D 2 1 5 E 4 1 6 F NA 2 7 G 5 2 8 H 1 1 9…

コピーした1行のデータをベクトルに変換

以下のようなデータをコピーしてRのベクトルに変換する方法です 10 12 14 15 18 まず以下のように入力します x = scan() するとコンソールに次のように表示されます > x = scan() 1: この1: の横に10 12 14 15 18をペーストして、enterを2回 > x = scan()…

ヒストグラムのビン調整

head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 変数Speciesがsetosa…

ノンパラメトリック 相関係数

[,1] [,2] [,3] [1,] 27 14 5 [2,] 10 17 26 [3,] 5 12 50 上記の分割表から行の順序スコアと列の順序スコアを算出してデータセットを作成します #RANK xr1 <- c(rep(23.5,46),rep(73,53),rep(133,67)) xc1 <- c(rep(21.5,27),rep(64,14),rep(125,5),rep(21.…

Rstudioの小ネタ (パッケージやファイルの保存方法)

Rstudioを閉じても、PC再起動してもファイルの読み込みやインストールしたパッケージは残せます (ただしパッケージは休んでいますので、起動するときにはlibraryで起こしましょう) データ処理する前に必ず行う作業は以下の通りです まずRstudioを起動さ…

Rで簡単 多重ロジスティック回帰分析

サンプルはRのmtcarsを使用します.車に詳しくないので回帰分析に相応しいサンプルか分かりませんが、学習のため数値のみ使用させていただきます. サンプルから直接取り込み dat <- mtcars[,c(8,2,5,6)] #ここがポイント8列目を応答変数として、2列目・5列目…

ロジスティック回帰分析(説明変数が単一かつ連続の場合)

投稿日:2018.2.13 最終更新日:2018.5.17 ロジット関数とロジスティック関数 準備として関数の特徴を押さえておきます ロジット関数 (標準)ロジスティック関数ロジット関数の逆関数= mathwords.net サンプルirisより 品種"virginica=1"、"別の品種=0"という…

相関係数のイメージ

パッケージmvtnormを使用して相関係数0.0, 0.2, 0.5, 0.7, 0.8, 0.9のグラフを作成してみます install.packages("mvtnorm") library(mvtnorm) 共分散行列.分散を全て1に設定しているので共分散=相関係数となります. sigma00 <- matrix(c(1,0,0,1), ncol=…

変数の呼称について(目的変数と説明変数)

それぞれの研究界のご意見はあると思うのですが・・・ ややこしや 目的変数 は以下のように呼ばれています 目的変数 objective variable 応答変数 response variable 反応変数 reaction variable(response variable ) 結果変数 outcome variable 従属変数 …

2変量の正規分布をグラフでイメージ(persp)

また、ここで勉強させていただきました. http://cse.naro.affrc.go.jp/minaka/R/R-binormal.html 忘れないように要点のみ転記させていただます.まさに備忘録. 今回はRの関数perspを使用して、密度関数の数式から3Dのグラフを描いてみます 確率変数x1…