箱ひげ図に少し似ています。必ずしも標準の上限信頼区間、下限信頼区間、平均、およびデータ範囲を示すボックスプロットを意味するわけではありませんが、95%信頼区間と平均という 3つのデータのみを含むボックスプロットのようなものです。
これはまさに私が欲しいものを持っていたジャーナル記事のスクリーンショットです:
また、そのようなプロットを作成するために回答者が言及するソフトウェアをどのように使用するかについても知りたいです。
箱ひげ図に少し似ています。必ずしも標準の上限信頼区間、下限信頼区間、平均、およびデータ範囲を示すボックスプロットを意味するわけではありませんが、95%信頼区間と平均という 3つのデータのみを含むボックスプロットのようなものです。
これはまさに私が欲しいものを持っていたジャーナル記事のスクリーンショットです:
また、そのようなプロットを作成するために回答者が言及するソフトウェアをどのように使用するかについても知りたいです。
回答:
MATLABでは、errorbar関数を試すことをお勧めします。http://www.mathworks.de/de/help/matlab/ref/errorbar.html
代わりに、あなたはそれを馬鹿で手動の方法で行うことができます。たとえば、データポイントの行列 "a"が与えられた場合、関数m = mean(a)を使用して平均を計算し、CIを計算し(必要なCIに応じて)、結果を手動でプロットできます。
CIがマトリックスCI(第1列と第2列)にあり、平均がマトリックスaにあると仮定して、平均とCIがすでにわかっている場合のデモ:
plot(1:length(CI),a,'o','markersize', 10) % plot the mean
hold on;
plot(1:length(CI),CI(1,:),'v','markersize', 6) % plot lower CI boundary
hold on;
plot(1:length(CI),CI(2,:),'^','markersize', 6) % plot upper CI boundary
hold on;
for I = 1:length(CI) % connect upper and lower bound with a line
line([I I],[CI(1,I) CI(2,I)])
hold on;
end;
axis([0 length(CI)+1 min(CI(1,:))*0.75 max(CI(2,:))*1.25]) % scale axis
個々の測定がわかっている場合のデモンストレーション、繰り返し測定実験、3 +条件、列ごとに1つの条件、行列aの行ごとに1つの被験者、欠落していないサンプル、MATLABのttest()による95%CI :
[H,P,CI] = ttest(a); % calculate 95% CIs for every column in matrix a
% CIs are now in the matrix CI!
plot(1:length(CI),[mean(a)],'o','markersize', 10) % plot the mean
hold on;
plot(1:length(CI),CI(1,:),'v','markersize', 6) % plot lower CI boundary
hold on;
plot(1:length(CI),CI(2,:),'^','markersize', 6) % plot upper CI boundary
hold on;
for I = 1:length(CI) % connect upper and lower bound with a line
line([I I],[CI(1,I) CI(2,I)])
hold on;
end;
axis([0 length(CI)+1 min(CI(1,:))*0.75 max(CI(2,:))*1.25]) % scale axis
これがあなたを助けるかどうか見てください。Rソリューション:
par(mfrow=c(2,1)) # to stack the charts on column
#Dataset 1
upperlimit = c(10,12,8,14)
lowerlimit = c(5,9,4,7)
mean = c(8,10,6,12)
df = data.frame(cbind(upperlimit,lowerlimit,mean))
plot(df$mean, ylim = c(0,30), xlim = c(1,4))
install.packages("plotrix")
require(plotrix)
plotCI(df$mean,y=NULL, uiw=df$upperlimit-df$mean, liw=df$mean-df$lowerlimit, err="y", pch=20, slty=3, scol = "black", add=TRUE)
#Dataset 2
upperlimit_2 = upperlimit*1.5
lowerlimit_2 = lowerlimit*0.8
mean_2 = upperlimit_2-lowerlimit_2
df_2 = data.frame(cbind(upperlimit_2,lowerlimit_2,mean_2))
plot(df$mean_2, ylim = c(0,30), xlim = c(1,4))
plotCI(df_2$mean_2,y=NULL, uiw=df_2$upperlimit_2-df_2$mean_2, liw=df_2$mean_2- df_2$lowerlimit_2, err="y", pch=20, slty=3, scol = "black", add=TRUE)
rm(upperlimit,lowerlimit,mean,df,upperlimit_2,lowerlimit_2,mean_2,df_2) #remove the objects stored from workspace
par(mfrow=c(1,1)) # go back to default (one graph at a time)
plotrix
パッケージをインストールしましたか?plotrixパッケージをインストールするコードにプログラムコマンドラインを追加しました。もう一度やり直してください。
ggplot2を使用したRでのこのタイプのプロットですが、軸のフォントサイズをいじる必要があるかもしれません。
library(ggplot2)
data.estimates = data.frame(
var = c('1', '2', '3', '4', '5', '6', '7', '8', '9'),
par = c(1.12210,0.18489,1.22011,1.027446235,0.43521,0.53464,1.93316,-0.43806,-0.12029),
se = c(0.42569,0.32162,0.58351,0.771608551,0.24803,0.65372,0.92717,0.45939,0.51558))
data.estimates$idr <- exp(data.estimates$par)
data.estimates$upper <- exp(data.estimates$par + (1.96*data.estimates$se))
data.estimates$lower <- exp(data.estimates$par - (1.96*data.estimates$se))
p2 <- ggplot(data.estimates, aes(var,idr, size=10)) + theme_bw(base_size=10)
p2 + geom_point() +geom_errorbar(aes(x = var, ymin = lower, ymax = upper, size=2), width = 0.2) + scale_y_log10(limits=c(0.1, 50), breaks=c(0.1, 0.5, 1, 5, 10, 25, 50)) + xlab("Site") + ylab("RR")
元のデータにアクセスできると仮定すると、Rでsciplotライブラリのlineplot.CI関数を使用してこれを行うことができます
mtcarsデータセットの例:
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars)
lineplot.CIはデフォルトでSEバーをプロットすることに注意してください(95%のCI間隔をプロットするために、引数ci.funで新しい関数を定義して変更できます)。
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars, ci.fun=function(x) c(mean(x)-1.96*se(x), mean(x)+1.96*se(x)))
GraphPad Prismは、この種のグラフを簡単に作成でき、入力したエラー値からエラーバーをプロットします。平均、-エラーおよび+エラーの入力用にフォーマットされたグループ化されたテーブルを作成します。