マガジンのカバー画像

統計解析

10
R言語やPythonを用いた統計解析の練習です
運営しているクリエイター

記事一覧

生存時間曲線

ポビドンヨードが話題になっていたので、
生存時間曲線で表現するにはと復習してみた。

まず、公開されているデータからは
イソジンうがい群25例、対照群16例で、
最終日に脱落がそれぞれ4例と1例です。
適当な表を作成して、ID、treat(うがい有"1"、無”0”)
陰性化するまでの日数をdays(1-4)として図示します。

fit.surve=survfit(Surv(days, respon

もっとみる

生存時間曲線つづき

同じデータでマルコフ連鎖モンテカルロ法MCMCで
サンプリング数を増やしてベイス推定してみました。

model = " data { int<lower=1> N; int<lower=1> T; int<lower=1, upper=T> Time[N]; int<lower=0, upper=1> Cens[N]; } parameters { real<lower=0> sigma_log

もっとみる

古典統計学とベイズ統計での2群間の平均の差の検定

今回はRの組み込みのデータセットToothGrowthを用いて
2群間の平均の差を古典統計学とベイズ統計の実装であるRstanをもちいて
検定(推定)していきたいとおもいます。
supp サプリの種類 ”VC” ”OJ”
dose サプリの用量 0.5㎎ 1.0㎎ 2.0㎎
len 歯の長さ ㎜

head(ToothGrowth) len supp dose1 4.2 VC 0.52

もっとみる

平均の差を線形回帰で表現

引き続いて線形回帰で確認します。
t検定と線形回帰は数学的に同値です。

> fit.lm=lm(len~supp,data=ToothGrowth)

結果を確認します。

> summary(fit.lm)

Call:
lm(formula = len ~ supp, data = ToothGrowth)
Residuals:
Min 1Q Median 3Q Max
-12.7633

もっとみる

便利なパッケージ"brms"を使って線形回帰で平均の差を表現

同じことをRのパッケージである"brms"で行います。
このパッケージはベイズ統計をもとに、いろいろな線形回帰が行える
非常に便利なパッケージです。

fit_brms=brm( formula=len~supp, # 線形回帰を指定しています。 family=gaussian(), # 正規分布を指定しています。 data=ToothGrowth)

結果は以下の通りです。

もっとみる

分散分析をしてみよう。

前回までのToothGrowthでは、実は歯の長さlenの因子としては栄養の種類supp(OJとVC)、用量(0.5mg、1.0㎎、2.0㎎)の2要因あります。
交互作用と主効果を評価するためには2元配置分散分析が必要です。
まず、栄養の種類と用量に注目して箱ひげ図を作成します。

boxplot(len ~ dose + supp , data=ToothGrowth)

なんとなく、用量には

もっとみる

共分散分析を重回帰解析で

また同じToothGrowthのデータで考えていきます。
今回は2元配置分散分析を線形回帰(重回帰解析)で検討していきます。
まず、doseは数値型のままです。

lm.fit=lm(len ~ supp * dose , data=ToothGrowth)summary(lm.fit)

Call:
lm(formula = len ~ supp * dose)
Residuals:
Min 1

もっとみる

brmsパッケージで共分散分析をベイズ推定してみた。

library(brms)library(rstan)

用量doseを因子型に変換します。

data=ToothGrowthdata=transform(data,dose=as.factor(dose))

ベイズの線形回帰パッケージbrmsを使用します。
交互作用を考えるモデルを組みます。

brms.fit=brm(formula= len ~ supp*dose,family=gaus

もっとみる

分散分析の悩みどころ

引き続いて分散分析です。

前回はbrmsパッケージで交互作用ありで解析しましたが、交互作用なしで検討する考えもあります。多重共線性を排除するためです。他に今回は当てはまりませんが、中心化したり、標準化することもあります。ToothGrowthは因子×因子なので中心化も標準化も意味がなさそうです。

交互作用なしで解析すると、OJ1mgと2mgで有意差が出てしまいます。おそらく不適切な解析と考えま

もっとみる

2群間の時系列データの解析

友人に2群間の時系列データの解析、検定を尋ねられたので
改めて勉強してみたので、健忘録として。

まず、練習用のデータを作成していきます。
症例は30例ずつの2群で、計測は3時点、処置の有無で層別化します。

id = c(1:60)result0 = rnorm(30,40,10)result1 = rnorm(30,25,7)result2 = rnorm(30,20,5)result3 =

もっとみる