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

統計学備忘録(R言語のメモ)

since2016 ときどきTEXのメモ

単回帰分析を一括で実行する方法

tokei.net 全人類が分かる統計学より to-kei.net 上記サイトに自分なりの注釈をつけました。 sampleもまったく同じです。 番号 <- c(1:30) 年齢 <- c(22,23,24,25,27,28,28,29,30,31,32,32,33,33,34,36,37,37,38,39,40,42,46,49,50,53,56,58,64,65) 血圧 <- …

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

更新日2020.3.13 使用するパッケージ install.packages("ggplot2") install.packages("ggsignif") データセットを作成します dat <- c(-0.29733004,-2.63812280,-0.90097072,1.06843016,-3.03846846,2.14097694,2.47494865,-0.02154341,0.56411223,2.8182606…

簡単なエラーバーの描き方

たぶんこれが最も簡単な書き方だと思います Aの平均 = 2 Bの平均 = 3 Aの標準偏差 = 0.4 #ここに標本標準偏差や不偏標準偏差を代入します Bの標準偏差 = 0.7 dplot <- plot(c(1,2), c(Aの平均, Bの平均), ylim = c(0,5), xlim = c(0.5, 2.5)) arrows(1:2, c(…

比較した箱ひげにアスタリスクを入れる

アスタリスク 比較したラインを箱ひげの上限から2メモリ離した位置まで伸ばす・・・ 治療 <- c("A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B") 治療前BP <- c(140,135,145,141,145,159,141,150,149,160,170,158,165,170…

sample

解析の練習で使うデータサンプル集 随時更新 sample1 症例 <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) 性別 <- c("男性","男性","女性","男性","男性","女性","男性","男性","男性","男性","女性","女性","女性","女性","男性","女性","女性…

テーブルをベクトルに変換

症例 性別 治療 治療前BP 治療後BP BP変化量 1 1 男性 B 160 148 12 2 2 男性 A 135 133 2 3 3 女性 B 177 160 17 4 4 男性 A 141 138 3 5 5 男性 A 142 139 3 6 6 女性 B 155 145 10 7 7 男性 B 175 157 18 8 8 男性 A 145 142 3 9 9 男性 A 149 142 7 10 1…

ブログ名の変更

旧)統計学備忘録since2016 新)統計学備忘録(R言語のメモ) ブログ名だけで趣旨が分かるように変更しました

PDFにページ数を挿入する場合

TeX

PDFにページ数を挿入する場合 PDFのファイル名はNo1,No2,No3の三枚 同じフォルダに入れる \documentclass[uplatex,11pt]{jsarticle} \usepackage[top=15truemm,bottom=15truemm,left=15truemm,right=15truemm]{geometry} %余白 %図 \usepackage[dvipdfmx]{gr…

層別した散布図と回帰直線

以下のようなグラフ 忘れないように記載しておきます データサンプル Group <- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3) p…

ロジスティック回帰の基準変更

data2 <- data.frame(c(rep("あり",15),rep("なし",15)), c(rep("有効",12),rep("無効",3),rep("有効",4),"無効","有効","有効",rep("無効",8))) colnames(data2) <- c("筋トレ","効果") xtabs(~ 効果 + 筋トレ, data = data2) 筋トレ 効果 あり なし 無効 3…

開設3周年

はてなブログさんから素敵なメッセージが届きました

表1の作り方 "tableone"

年齢 <- c(52,55,52,56,56,49,43,48,43,42,44,43,48,51,43,49,39,38,50,52,59,65,54,39,53,39,50,41,44,56,54,57,53,51,61,51,57,59,55,52) 性 <- c("男","男","男","男","男","男","男","男","男","男","男","男","男","男","男","男","男","男","男","女",…

層別カテゴリー化した変数を追加

id <- c(1:50) age <- c(35,55,53,56,66,49,43,48,64,42,44,74,48,61,43,49,39,38,55,43,48,48,49,49,43,46,49,46,47,43,43,48,50,41,51,45,50,47,44,68,45,45,49,75,55,77,42,57,48,58) data <- data.frame(id, age) このデータのageを4つにカテゴリー化し…

独立している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…