2016-04-08 19 views
6

Ho bisogno di lavorare con molti test di ipotesi in R e presentare i risultati. ciÈ possibile visualizzare i risultati del test di prova o di altre ipotesi?

> library(MASS) 
> h=na.omit(survey$Height) 
> 
> pop.mean=mean(h) 
> h.sample = sample(h,30) 
> 
> t.test(h.sample,mu=pop.mean) 

    One Sample t-test 

data: h.sample 
t = -0.0083069, df = 29, p-value = 0.9934 
alternative hypothesis: true mean is not equal to 172.3809 
95 percent confidence interval: 
168.8718 175.8615 
sample estimates: 
mean of x 
172.3667 

è alcun modo che visualizziamo la t.test o risultati di altri test ipotesi: Ecco un esempio?

Di seguito è un esempio di quello che sto cercando:

enter image description here

risposta

1

Ecco un modo. è possibile modificare la trama in base alle proprie esigenze:

library(ggplot2) 
x <- seq(mean(h) - 4 * sd(h), mean(h) + 4 * sd(h), 0.01) 
df <- data.frame(x = x, d = dnorm(x, mean(h), sd(h))) 
ggplot(df, aes(x = x, y = d)) + geom_line() + theme_bw() + geom_vline(xintercept = c(mean(h) + 3 * sd(h), mean(h) - 3 * sd(h)), col = 'red') + xlim(120, 240) 

Se non vi piacciono quelle linee verticali, si può provare questo invece:

ggplot(df, aes(x = x, y = d)) + geom_line() + theme_bw() + geom_segment(aes(x = mean(h) - 3 * sd(h), xend = mean(h) - 3 * sd(h), y = 0, yend = dnorm(mean(h) - 3 * sd(h), mean(h), sd(h)), col = 'red')) + geom_segment(aes(x = mean(h) + 3 * sd(h), xend = mean(h) + 3 * sd(h), y = 0, yend = dnorm(mean(h) + 3 * sd(h), mean(h), sd(h)), col = 'red')) + xlim(120, 240) + ylim(-0.001, 0.041) 
-1

Penso che stai cercando

t <- t.test(h.sample,mu=pop.mean) 
t$conf.int[2] # the t-statistic value (pink circle in your image) 
t$p.value 

uso

str(t) 

per vedere tutti i parametri disponibili.

+0

So come ottenere i dati. Sto cercando un modo per visualizzarlo. –

4

C'è un sacco di cose che puoi fare. Eccone uno in cui estraggo un campione casuale dalla distribuzione normale standard, quindi eseguo un t-test, la trama t osservata e le t necessarie per rifiutare l'ipotesi nulla che la media sia uguale a 0.

N=20 #just chosen arbitrarily 
samp=rnorm(N) 
myTest=t.test(samp) 
tcrit=qt(0.025, df=(N-1)) 

dum=seq(-3.5, 3.5, length=10^4)#For the plot 

plot(dum, dt(dum, df=(N-1)), type='l', xlab='t', ylab='f(t)') 
abline(v=myTest$statistic, lty=2) 
abline(v=tcrit, col='red', lty=2) 
abline(v=-tcrit, col='red', lty=2) 

enter image description here

Naturalmente la tua t osservata apparirà diversa ogni volta che esegui nuovamente questo codice, che potrebbe fare una buona illustrazione se eseguito ripetutamente.

0

Ecco un modo per visualizzare i risultati di molti test di ipotesi utilizzando i valori stimati e gli intervalli di confidenza del 95%. Ho preso l'idea direttamente dal metodo di disegno TukeyHSD(), ma l'ho implementata con ggplot2. Purtroppo, non v'è alcun built-in metodo tramando per htest risultati in R.

library(MASS) 
library(ggplot2) 

h = na.omit(survey$Height) 
pop.mean = mean(h) 

n_reps = 20 
sample_size = 30 
res_list = list() 

for (i in 1:n_reps) { 
    h.sample = sample(h, sample_size) 
    res_list[[i]] = t.test(h.sample, mu=pop.mean) 
} 

dat = data.frame(id=seq(length(res_list)), 
       estimate=sapply(res_list, function(x) x$estimate), 
       conf_int_lower=sapply(res_list, function(x) x$conf.int[1]), 
       conf_int_upper=sapply(res_list, function(x) x$conf.int[2])) 

p = ggplot(data=dat, aes(x=estimate, y=id)) + 
    geom_vline(xintercept=pop.mean, color="red", linetype=2) + 
    geom_point(color="grey30") + 
    geom_errorbarh(aes(xmin=conf_int_lower, xmax=conf_int_upper), 
        color="grey30", height=0.4) 

ggsave("CI_plot.png", plot=p, height=4, width=6, units="in", dpi=150) 

enter image description here

Problemi correlati