r взвешенная кросс-таблица p значение против SAS - PullRequest
0 голосов
/ 15 мая 2018

http://support.sas.com/documentation/cdl/en/procstat/67528/HTML/default/viewer.htm#procstat_freq_gettingstarted01.htm

Я получаю другой ответ в r, чем тот, что был на сайте, указанном выше.Сначала я дам код SAS с результатами, а затем код с результатами.Сначала дается код SAS с результатами:

data SummerSchool; 
   input Gender $ Internship $ Enrollment $ Count @@; 
   datalines;
boys  yes yes 35   boys  yes no 29 
boys   no yes 14   boys   no no 27
girls yes yes 32   girls yes no 10  
girls  no yes 53   girls  no no 23
;
proc freq data=SummerSchool order=data;
   tables Internship*Enrollment / chisq;
   weight Count;

run;

Output

Table   
    yes no
yes 67  39
no  67  50

                              Value     Prob  
Chi-Square                      1   0.8189  0.3655
Likelihood Ratio Chi-Square     1   0.8202  0.3651
Continuity Adj. Chi-Square      1   0.5899  0.4425
Mantel-Haenszel Chi-Square      1   0.8153  0.3666

================================

Теперь я дам код r, используя пакет весов и пакет опроса.

> tt$nnn=as.numeric(tt$count)
> attach(tt)
> tt
    sex internship enrollment count nnn
1  boys        yes        yes    35  35
2  boys         no        yes    14  14
3 girls        yes        yes    32  32
4 girls         no        yes    53  53
5  boys        yes         no    29  29
6  boys         no         no    27  27
7 girls        yes         no    10  10
8 girls         no         no    23  23
> library(plyr)
> count(tt,c('internship','enrollment'),wt_var='nnn')
  internship enrollment freq
1         no         no   50
2         no        yes   67
3        yes         no   39
4        yes        yes   67
> library(weights)
> wtd.chi.sq(internship,enrollment,weight=nnn)
    Chisq        df   p.value 
0.0293791 1.0000000 0.8639066
> library(survey) 
> tt.d=svydesign(ids = ~1, data =tt,weights =tt$nnn)
> svychisq(~internship+enrollment,tt.d)

        Pearson's X^2: Rao & Scott adjustment

data:  svychisq(~internship + enrollment, tt.d)
F = 0.023599, ndf = 1, ddf = 7, p-value = 0.8822

Результаты 2 r в основном согласуются сдруг друга (.86 и .88), но полностью отличаются от результатов SAS (между .37 и .44).Возможно ли, что SAS дает односторонний результат, а r - двусторонний?Если да, то каковы плюсы и минусы одной стороны против двухстороннего результата в этой ситуации?

1 Ответ

0 голосов
/ 15 мая 2018

Я думаю, вы неправильно используете пакет опроса weights - аргумент.Книга Ламли, которая сопровождает этот пакет, различает три возможных толкования термина весов.Пример SAS демонстрирует значение «весовые коэффициенты».Вы можете получить эквивалентные результаты с обычным кодом R: Сравните этот вывод с SAS Continuity Adj.Chi-Square:

chisq.test(   xtabs( count ~ internship+enrollment, data=tt) )

    Pearson's Chi-squared test with Yates' continuity correction

data:  xtabs(count ~ internship + enrollment, data = tt)
X-squared = 0.58989, df = 1, p-value = 0.4425

Пакет опроса предназначен для того, чтобы дать вам возможность воспроизвести результаты более сложных процедур в SAS, а именно PROC SURVEYMEANS, PROC SURVEYFREQ и PROC SURVEYREG.Также он может предоставлять те же возможности, что и SUDAAN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...