Saya baru saja mulai coding di R dan saya punya pertanyaan tentang menerapkan uji Chi-kuadrat ke dataset dengan 2 kolom sekaligus.

Saya ingin melakukan analisis berpasangan (Sampel Tumor dan Normal berasal dari pasien yang sama, jadi Tumor Primer 1 dan Jaringan Normal 1 berasal dari pasien yang sama). Saya ingin melihat perbedaan distribusi antara tumor dan sampel normal dari pasien yang sama dan berlaku untuk semua 50 pasien.

Saya mencoba kecocokan Chi-square sebelumnya, dengan probabilitas yang diharapkan saya hitung dari mengambil rata-rata dari semua sampel normal.

Kode yang saya gunakan adalah:

apply(mydata, 2, chisq.test, p=myprobability)

Kali ini, saya ingin melakukan uji Chi-square Pearson (bukan kecocokan) pada tumor dan jaringan normalnya yang cocok.

Jadi, saya ingin menjalankan uji Chi-square dengan dua kolom: Tumor Primer 1 + Normal 1 ... Kemudian selanjutnya, Tumor Primer 2 + Normal 2

Dan dapatkan tabel statistik Chi-kuadrat dan nilai-p. (Dalam hal ini, saya harus menggunakan nilai p yang disesuaikan bukan? karena saya menjalankannya pada 50 set sampel?)

Data saya terlihat seperti ini: masukkan deskripsi gambar di sini

Saya mencoba menggunakan fungsi apply seperti yang saya lakukan untuk kesesuaian, tetapi saya tidak dapat membuatnya berfungsi.

Terima kasih

4
Kim So Yon 11 Maret 2020, 00:53

1 menjawab

Jawaban Terbaik

Anda dapat mempertimbangkan untuk melakukan Tes Cochran–Mantel–Haenszel yang merupakan tes untuk independensi dua variabel dengan pengukuran berulang, dalam kasus Anda, pasangan tumor / normal yang berbeda. Jadi menggunakan contoh Anda, kami mendapatkan array terlebih dahulu:

test = array(unlist(mydata),dim=c(nrow(mydata),2,ncol(mydata)/2))
test
, , 1

     [,1] [,2]
[1,]   17   18
[2,]   28   27
[3,]   80   89
[4,]   63   62
[5,]   20   24
[6,]   10   11

, , 2

     [,1] [,2]
[1,]   25   27
[2,]   40   29
[3,]   80  100
[4,]   65   72
[5,]   23   34
[6,]   11    6

Kemudian lakukan:

mantelhaen.test(test)

    Cochran-Mantel-Haenszel test

data:  test
Cochran-Mantel-Haenszel M^2 = 5.0277, df = 5, p-value = 0.4125

Tentu saja Anda dapat menguji setiap pasangan sampel satu per satu:

library(broom)
# assign groups to columns
grps = rep(1:(ncol(mydata)/2),each=2)
result = do.call(rbind,lapply(unique(grps),function(i)tidy(chisq.test(mydata[,grps==i]))))
result

# A tibble: 2 x 4
  statistic p.value parameter method                    
      <dbl>   <dbl>     <int> <chr>                     
1     0.569   0.989         5 Pearson's Chi-squared test
2     6.89    0.229         5 Pearson's Chi-squared test
4
StupidWolf 10 Maret 2020, 23:16