2017-02-03 1 views
3

Beginnen wir mit einer Daten beginnen:Wie gepaart t.test oder Wilcoxon-Test auf meine Daten anzuwenden

structure(list(Group = c("Mark", "Matt", "Tim", "Tom"), `1` = c(0.749552072382562, 
1.06820497349356, 1.00116263663573, 0.864987635002866), `2` = c(1.00839505250436, 
0.796306651704629, 1.02603677593328, 1.00321936833133), `3` = c(0.736638669191169, 
0.973483626272054, 1.14805519301778, 0.899272693725192), `4` = c(0.728882841159455, 
0.871211836418332, 1.0442119745299, 0.859935708928745), `5` = c(0.749552072382562, 
1.06820497349356, 1.00116263663573, 0.864987635002866), `6` = c(1.00839505250436, 
0.796306651704629, 1.02603677593328, 1.00321936833133), `7` = c(0.736638669191169, 
0.973483626272054, 1.14805519301778, 0.899272693725192), `8` = c(0.728882841159455, 
0.871211836418332, 1.0442119745299, 0.859935708928745), `9` = c(0.749552072382562, 
1.06820497349356, 1.00116263663573, 0.864987635002866), `10` = c(1.00839505250436, 
0.796306651704629, 1.02603677593328, 1.00321936833133), `11` = c(0.736638669191169, 
0.973483626272054, 1.14805519301778, 0.899272693725192), `12` = c(0.728882841159455, 
0.871211836418332, 1.0442119745299, 0.859935708928745), `13` = c(0.749552072382562, 
1.06820497349356, 1.00116263663573, 0.864987635002866), `14` = c(1.00839505250436, 
0.796306651704629, 1.02603677593328, 1.00321936833133), `15` = c(0.736638669191169, 
0.973483626272054, 1.14805519301778, 0.899272693725192), `16` = c(0.728882841159455, 
0.871211836418332, 1.0442119745299, 0.859935708928745), `17` = c(0.766036811789943, 
0.871085862829362, 1.02210371210681, 0.937452345474458), `18` = c(1.0357237385154, 
1.02805558505417, 0.946794300033338, 1.04688545274238), `19` = c(0.436944137, 
0.801397021884422, 0.952553568039278, 0.990226493248718), `20` = c(0.789338028300063, 
0.822815644347233, 0.958462750269733, 1.04183361434861), `21` = c(0.766036811789943, 
0.871085862829362, 1.02210371210681, 0.937452345474458), `22` = c(1.0357237385154, 
1.02805558505417, 0.946794300033338, 1.04688545274238), `23` = c(0.436944137, 
0.801397021884422, 0.952553568039278, 0.990226493248718), `24` = c(0.789338028300063, 
0.822815644347233, 0.958462750269733, 1.04183361434861), `25` = c(0.766036811789943, 
0.871085862829362, 1.02210371210681, 0.937452345474458), `26` = c(1.0357237385154, 
1.02805558505417, 0.946794300033338, 1.04688545274238), `27` = c(0.436944137, 
0.801397021884422, 0.952553568039278, 0.990226493248718), `28` = c(0.789338028300063, 
0.822815644347233, 0.958462750269733, 1.04183361434861), `29` = c(0.766036811789943, 
0.871085862829362, 1.02210371210681, 0.937452345474458), `30` = c(1.0357237385154, 
1.02805558505417, 0.946794300033338, 1.04688545274238), `31` = c(0.436944137, 
0.801397021884422, 0.952553568039278, 0.990226493248718), `32` = c(0.789338028300063, 
0.822815644347233, 0.958462750269733, 1.04183361434861), `33` = c(0.937894856206067, 
NA, 1.00383773624603, 1.04181193834546), `34` = c(1.03944921519508, 
NA, 0.983868286249464, 1.10409633668759), `35` = c(0.949802513948967, 
NA, 1.06522152108054, 1.04376827636719), `36` = c(0.965871712940006, 
NA, 1.18437146805406, 1.01355356488254), `37` = c(0.937894856206067, 
NA, 1.00383773624603, 1.04181193834546), `38` = c(1.03944921519508, 
NA, 0.983868286249464, 1.10409633668759), `39` = c(0.949802513948967, 
NA, 1.06522152108054, 1.04376827636719), `40` = c(0.965871712940006, 
NA, 1.18437146805406, 1.01355356488254), `41` = c(0.937894856206067, 
NA, 1.00383773624603, 1.04181193834546), `42` = c(1.03944921519508, 
NA, 0.983868286249464, 1.10409633668759), `43` = c(0.949802513948967, 
NA, 1.06522152108054, 1.04376827636719), `44` = c(0.965871712940006, 
NA, 1.18437146805406, 1.01355356488254), `45` = c(0.937894856206067, 
NA, 1.00383773624603, 1.04181193834546), `46` = c(1.03944921519508, 
NA, 0.983868286249464, 1.10409633668759), `47` = c(0.949802513948967, 
NA, 1.06522152108054, 1.04376827636719)), .Names = c("Group", 
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", 
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", 
"24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", 
"35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", 
"46", "47"), row.names = c(NA, 4L), class = "data.frame") 

Jede Zeile ist eine Sammlung von Verhältnis, das ich aus dem Vergleich von zwei Gruppen bekamen. Ich würde gerne wissen, ob die Verhältnisse sich signifikant von 1 unterscheiden. Also würde ich gerne testen, ob jede Zeile (Vektor) anders als 1 ist, indem ich zwei in einem Titel erwähnte Tests verwende. Wie kann ich diesen Test auf meine Daten anwenden? Bitte beachten Sie, dass jede Zeile eine andere Länge haben kann. NAs sollte ignoriert werden. Als und Ausgabe möchte ich eine Tabelle mit 3 Spalten haben: Group name, p-value t-test, p.value Wilcoxon.

Kann jemand mi damit helfen?

Antwort

3

Möglicherweise gibt es eine Möglichkeit, die Zeilen des ursprünglichen Datenrahmens zu verwenden, aber ich würde dringend empfehlen, mit Spalten zu arbeiten (sauberer Datenrahmen).

library(dplyr) 
library(tidyr) 

# assuming this is the name of your original dataset 
dt 

# reshape to create a column for each name 
dt2 = data.frame(t(dt), stringsAsFactors = F) 
names(dt2) = dt2[1,] 
dt2 = dt2[-1,] 
dt2[,names(dt2)] = sapply(dt2[,names(dt2)], as.numeric) 

# reshape to create a column of names and values 
dt3 = dt2 %>% 
    gather(name,value,Mark:Tom) %>% 
    filter(!is.na(value)) # remove NAs 

dt3 %>% 
    group_by(name) %>%  # for each name 
    summarise(pval_ttest = t.test(value, mu=1, data=.)$p.value,  # calculate t test p value 
      pval_wilc = wilcox.test(value, mu=1, data=.)$p.value) # calculate Wilcoxon p value 


# # A tibble: 4 × 3 
# name pval_ttest pval_wilc 
# <chr>  <dbl>  <dbl> 
# 1 Mark 4.408038e-09 1.020895e-06 
# 2 Matt 6.679416e-06 2.502045e-04 
# 3 Tim 1.777060e-02 6.932590e-02 
# 4 Tom 2.433548e-01 5.148382e-01 

Einige zusätzliche Informationen darüber, wie ein t-Test gepaart „versteht“ die Messungen geben Sie es und warum Unterschiede und Verhältnisse könnten zu unterschiedlichen Ergebnissen führen. Betrachten Sie die folgenden Beispiele:

# paired t test of 2 vectors of same size (before and after treatment) 
# it compares the means of those vectors 
t.test(1:10, 13:4, paired = T) 

# Paired t-test 
# 
# data: 1:10 and 13:4 
# t = -1.5667, df = 9, p-value = 0.1516 
# alternative hypothesis: true difference in means is not equal to 0 
# 95 percent confidence interval: 
# -7.331701 1.331701 
# sample estimates: 
# mean of the differences 
# -3 


# t test that compares one vector's mean to 0 
# that vector is the differences of the two initial vectors 
t.test(1:10 - 13:4, mu=0) 

# One Sample t-test 
# 
# data: 1:10 - 13:4 
# t = -1.5667, df = 9, p-value = 0.1516 
# alternative hypothesis: true mean is not equal to 0 
# 95 percent confidence interval: 
# -7.331701 1.331701 
# sample estimates: 
# mean of x 
# -3 


# t test that compares one vector's mean to 1 
# that vector is the ratios of the two initial vectors 
t.test(1:10/13:4, mu=1) 

# One Sample t-test 
# 
# data: 1:10/13:4 
# t = -0.46036, df = 9, p-value = 0.6562 
# alternative hypothesis: true mean is not equal to 1 
# 95 percent confidence interval: 
# 0.3229789 1.4480623 
# sample estimates: 
# mean of x 
# 0.8855206 

Sie können sehen, dass der gepaarte t-Test ein einfacher T-Test des Vektors Unterschiede ist, was möglich ist, wie Sie zwei Vektoren der gleichen Länge haben (vor nach der Behandlung). Es ist nicht dasselbe mit einem einfachen t-Test des Vektors der Verhältnisse.

So ist es sinnvoll, andere Ergebnisse zu haben, aber in einigen Anwendungen ist der Verhältnistest besser. Überprüfen Sie Ihre Bibliographie dazu.

+0

Der statistische Test, den wir hier verwenden, ist kein gepaarter T-Test oder Wilcoxon-Test, da beide Tests eine Reihe von Werten mit 1 (vordefinierter Wert) vergleichen. Der gepaarte Test erfordert einen direkten Vergleich einer Menge von Messungen der Person X mit einer anderen Menge von Messungen der gleichen Person X. Vielleicht erwähnt die Bibliographie das als gepaarten Test, aber es ist nicht. Die statistischen Tests haben keine Vorstellung davon, was diese (Verhältnis-) Werte darstellen. – AntoniosK

+0

Können wir einen Vektor von "1" mit der gleichen Länge wie jede Zeile erstellen, um die Ergebnisse mit gepaarten Tests zu vergleichen? –

+1

Praktisch können Sie die Werte jedes Benutzers mit einem Vektor von 1s vergleichen. Aber was stellt dieser Vektor theoretisch dar? Du hast diese 1s nie gemessen. Auch noch nicht gepaarten Test. Weitere Informationen zu gepaarten T-Tests finden Sie hier: http://www.biostathandbook.com/pairierttest.html. Es scheint mir, dass Sie einen gepaarten t-Test machen können, bevor Sie Ihre Messungen teilen und die Verhältnisse mit 1 vergleichen. – AntoniosK

Verwandte Themen