Merencanakan bilah interval kepercayaan dari statistik ringkasan

8

Agak seperti plot kotak. Maksud saya belum tentu interval kepercayaan atas standar, interval kepercayaan rendah, rata-rata, dan plot kotak penampil rentang data, tapi maksud saya seperti plot kotak dengan hanya tiga potong data: interval kepercayaan 95% dan rata-rata .

Ini adalah tangkapan layar dari artikel jurnal yang memiliki persis apa yang saya inginkan: masukkan deskripsi gambar di sini

Saya juga ingin tahu bagaimana saya akan menggunakan perangkat lunak yang disebutkan oleh penjawab untuk membuat plot seperti itu.

BH2017
sumber
7
Apa yang Anda sebut "interval kepercayaan atas standar, interval kepercayaan rendah, rata-rata, dan plot kotak penampil rentang data" sama sekali bukan plot kotak standar. Plot kotak standar menunjukkan median, kuartil, minimum dan maksimum, dan seringkali detail lainnya.
Nick Cox
1
@ Nick Kanan: tapi apa yang grafis tersebut benar-benar disebut? (Saya tidak yakin.)
whuber
6
Jenis plot ini standar (bukan plot kotak) dan dapat diproduksi oleh semua paket statistik utama: Stata, SAS, R , MATLAB. Saya kira Anda bisa melakukannya dengan Excel juga.
COOLSerdash
1
@COOLSerdash hebat! Bisakah Anda menulis jawaban untuk MATLAB karena saya sudah memiliki MATLAB?
BH2017
6
Saya akan menyebut plot interval kepercayaan ini, tetapi tidak setiap plot benar-benar membutuhkan nama yang berbeda. Namun, setiap plot patut diberi teks. ....
Nick Cox

Jawaban:

9

Di MATLAB, Anda mungkin ingin mencoba fungsi errorbar : http://www.mathworks.de/de/help/matlab/ref/errorbar.html

Atau, Anda bisa melakukannya dengan cara bodoh dan manual. Misalnya, dengan memberikan matriks titik data "a", Anda dapat menghitung rata-rata menggunakan fungsi m = rata-rata (a), menghitung CI Anda (tergantung pada CI apa yang Anda butuhkan), dan plot hasilnya dengan tangan.

Demonstrasi jika Anda sudah tahu mean dan CI, dengan asumsi CI berada dalam matriks CI (kolom pertama dan kedua) dan mean dalam matriks a :

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

Demonstrasi dalam kasus di mana Anda mengetahui pengukuran individu, untuk percobaan tindakan berulang, 3+ kondisi, satu kondisi per kolom, satu subjek per baris dalam matriks a, tidak ada sampel yang hilang, 95% CI seperti dengan uji MATLAB () :

[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
jona
sumber
Baca hasil edit terakhir saya, saya minta maaf tetapi beberapa orang yang mengganggu saya, mengedit fakta saya hanya mengetahui 95% CI dan berarti tidak ada data tambahan.
BH2017
@BrentonHorne apakah tautan ke fungsi errorbar tidak membantu? Tampaknya persis seperti yang Anda inginkan.
Peter Ellis
Seperti kata Peter, gunakan errorbar () lalu. Atau gunakan skrip yang saya tulis, tetapi abaikan baris pertama dengan ttest dan beri makan artinya dan CI secara langsung. Saya akan mengeditnya di kurasa.
jona
@BrentonHorne Agar adil, Anda tidak pernah membahas hal ini secara luas atau bahkan menyebutkannya sama sekali di tubuh pertanyaan. Itu tersirat oleh judul tetapi judul ini juga keliru menyebutkan plot kotak, yang merupakan masalah yang coba diperbaiki oleh edit. Sangat disayangkan bahwa kata "hanya" menghilang dalam proses tetapi tidak ada yang sengaja mengeditnya sebagian besar dari pertanyaan Anda. Selain itu, jawabannya memang mengandung solusi dan sisa teks mungkin menarik bagi pembaca lain.
Gala
Saya menjalankan kode itu berjalan dengan baik, masalahnya adalah bahwa saya akan menyukainya jika ada beberapa cara dimana saya bisa bergabung dengan CI atas dan CI yang lebih rendah dengan garis seperti pada tangkapan layar dalam pertanyaan saya.
BH2017
13

Lihat apakah ini membantu Anda. Solusi 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)

masukkan deskripsi gambar di sini

Andre Silva
sumber
dan bagaimana cara menjalankan kode seperti itu? Saya benar-benar baru di R sehingga Anda harus menuntun saya karena saya tidak tahu apa-apa.
BH2017
3
Saya dapat membantu Anda memberikan kesempatan, tetapi pertama-tama Anda harus mengikuti dua langkah: i) menginstal R Studio di komputer Anda, ii) memberikan contoh yang dapat direproduksi: stackoverflow.com/questions/5963269/…
Andre Silva
@AndreSilva, saya pikir Anda bekerja lebih keras di sana. Dukungan dan bimbingan yang luar biasa!
doug.numbers
Inilah yang saya dapatkan untuk menjalankan kode Anda i.stack.imgur.com/yrZaJ.png
BH2017
@BrentonHome. Aneh. Saya baru saja menguji dan berhasil. Bilah "kesalahan" juga tidak muncul. Apakah Anda menginstal plotrixpaket? Saya menambahkan baris perintah program dalam kode yang menginstal paket plotrix. Tolong, coba lagi dan beri tahu.
Andre Silva
7

Jenis plot di R ini menggunakan ggplot2, meskipun Anda mungkin harus melakukan beberapa mengutak-atik ukuran font sumbu:

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")

masukkan deskripsi gambar di sini

Fomite
sumber
2

Dalam penggunaan Stata serrbaratau ciplot(SSC) atau eclplot(Stata Journal, SSC).

Nick Cox
sumber
2

Dengan asumsi Anda memiliki akses ke data asli Anda bisa melakukan ini dalam R dengan fungsi lineplot.CI di pustaka sciplot

Contoh dengan dataset mtcars:

lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars)

Perhatikan bahwa lineplot.CI dengan plot standar SE bar (dapat diubah dengan mendefinisikan fungsi baru dengan argumen ci.fun untuk memplot interval CI 95%)

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)))
Aghila
sumber
1

Ini dapat dilakukan dalam R dengan points()(atau plot(..., type="p")) dan segments(). Mungkin juga ada fungsi R yang dirancang untuk membuat CI untuk Anda, tetapi itu mungkin memerlukan data asli. Beberapa panel dalam gambar yang sama dibuat dengan par(mfrow=c(4,1)). Jika Anda tidak tahu R, ini akan sulit dilakukan dengan mudah (seperti pada, Anda harus belajar sedikit lebih banyak R atau meminta seseorang untuk membantu dengan kumpulan data spesifik Anda).

rbatt
sumber
1

GraphPad Prism dapat dengan mudah membuat grafik semacam ini, merencanakan bilah kesalahan dari nilai kesalahan yang Anda masukkan. Buat tabel grup yang diformat untuk entery of mean, - error dan + error.

Harvey Motulsky
sumber
Apakah mungkin mendapatkan salinan gratis yang bukan hanya versi uji coba 30 hari?
BH2017
1
@BrentonHorne: Tidak. Ini bukan perangkat lunak gratis.
Harvey Motulsky