آزمون خی دو،آزمون فیشر و جدول توافقی در R
دسترسی سریع
Chisq.test(x,y=NULL,correct=TRUE,p=(1/length(x)),simulate.p.value=FALSE,B)
که در آن شناسه x یک بردار یا یک ماتریس است.شناسه یy یک بردار است که اگر x ماتریس باشد نیازی به این شناسه نیست. correct شناسه ی منطقی است که تعیین می کند از تصحیح پیوستگی یتز برای جدول2×2استفاده شود، اگر مقدار شناسه ی " simulate.p.value ="T، باشد این تصحیح استفاده نمی شود. p یک بردار شامل احتمال هایی با همان طول xاست. شناسه ی simulate.p.value شناسه ی منطقی است که تعیین می کند به وسیله ی شبیه سازی مونت کارلوp- مقدار مقدار محاسبه شود شناسه ی B تعدادتکرارها را در آزمون مونت کارلو نشان می دهد. برای انجام آزمون خی دو در بررسی نسبت های مشاهده شده و مورد انتظار همانندجداول توافقی در R از تابع () chisq.test استفاده می شود. برای آشنایی با نحوه استفاده از این تابع چند مثال را مورد بررسی قرار می دهیم: 1)فرض کنیم تاسی را 300 بار پرتاب می کنیم و نتایج زیر حاصل می شود حال بررسی می کنبم که آیا این تاس نا اریب است؟6 | 5 | 4 | 3 | 2 | 1 | وجه تاس |
41 | 66 | 45 | 56 | 49 | 43 | فراوانی |
> counts<-c(43,49,56,45,66,41)
> props<-rep(1/6,6)
> chisq.test(counts,p=props)
Chi-squared test for given probabilities
data: counts
X-squared = 8.96, df = 5, p-value = 0.1107
همان گونه که مشاهده می شود مقدار خی دو برابر با96.8 شده است که دارای درجه آزادی پنج می باشد و چونp-مقدار بیشتر از 05. 0است(0.1107) لذا در سطح معنی داری0.05 فرض نااریب بودن تاس رد نمی شود.در نتیجه تاس سالم است.
2)آزمایشی صورت گرفته تا نحوه توارث خار دار بودن برگ در گلرنگ تعیین شود .از 121 بوته نسل F2 حاصل از تلاقی خاردار×بی خار،94 بوته خاردار و 27 بوته بی خار شده اند.قصد داریم تا فرض توارث مندل برای یک ژن غالب(نسبت مورد انتظار1:3در F2 به نسبت های0.75به0.25تعدیل یافته است) را مورد آزمون قرار می دهیم.(نکته :در برهانpمجموع نسبت های مورد انتظار باید برابر یک باشد)> observed<-c(94,27)
> expected<-c(0.75,0.25)
> chisq.test(observed,p=expected)
Chi-squared test for given probabilities
data: observed
X-squared = 0.4656, df = 1, p-value = 0.495
همان گونه که مشاهده می شود فرض صفر مبنی بر تفکیک با نسبت 3به1 رد نمی شود(0.495=∝) ومقدارخی دو برابر 0.4656و با درجه آزادی یک است.(چون مقدار p-value از 0.05 بیشتر است) نتیجه گیری می شود که احتمالاً یک ژن غالب خارداری برگ(در مقابل بی خاری)را در گلرنگ کنترل می نماید. مثال سوم ،مثالی برای آزمون خی دو تصحیح یافته است: 3)جدول زیر داده های مربوط به تحقیق در مورد سرطان روده است . در این جدول گروه کنترل شامل افرادی است که مبتلا به سرطان نیستند .هدف از این آزمایش بررسی استقلال بین وضعیت ابتلا به سرطان و سیگاری بودن فرد است.بیمار | کنترل | |
سیگاری | 688 | 650 |
غیر سیگاری | 21 | 59 |
کل | 709 | 709 |
> cigarette<-matrix(c(650,59,688,21),nrow=2)
> cigarette
[,1] [,2]
[1,] 650 688
[2,] 59 21
> chisq.test( cigarette,correct=TRUE)
Pearson's Chi-squared test with Yates' continuity correction
data: cigarette
X-squared = 18.1357, df = 1, p-value = 2.057e-05
همان گونه که مشاهده می شود مقدار خی دو 18.1357با درجه آزادی یک می باشد، p-مقدار از 0.05کمتر است برابر 2.057e-05است به عبارتی فرض صفر مبنی بر استقلال افراد سیگاری با افراد سالم رد می شود و نقش معنی داری سیگاری بودن بر روی سلامتی یا همان ابتلا به سرطان داشته است .دستور() rbind نیز همان نتایج را می دهد:> cigarette<-rbind(c(650,688),c(59,21))
> cigarette
[,1] [,2]
[1,] 650 688
[2,] 59 21
1-2)آزمون فیشر آزمون فیشر زمانی استفاده می شود که داده ها به اندازه کافی بزرگ باشند(اگر فراوانی مورد انتظار در خانه های جدول کمتر از پنج باشد از آزمون خی دو استفاده می شود در غیر این صورت از آزمون فیشر استفاده می کنیم)تابع این آزمون ()fisher.test با فرم کلی زیر است:Fisher.test(x,y=NULL,alternative=c(“two.sided”,”less”,”greater”),conf.level=0.95,simulative.p.value=FALSE,B=2000)
که در آن شناسه ها با شناسه های تابع ()chisq.test یکی است.این آزمون به آزمون برابری واریانس ها نیز معروف است. مثال1):آزمون فیشر یک طرفه ("alternative = "greater)> ## Agresti (1990, p. 61f; 2002, p. 91) Fisher's Tea Drinker
> ## A British woman claimed to be able to distinguish whether milk or
> ## tea was added to the cup first. To test, she was given 8 cups of
> ## tea, in four of which milk was added first. The null hypothesis
> ## is that there is no association between the true order of pouring
> ## and the woman's guess, the alternative that there is a positive
> ## association (that the odds ratio is greater than 1).
> TeaTasting <-
+ matrix(c(3, 1, 1, 3),
+ nrow = 2,
+ dimnames = list(Guess = c("Milk", "Tea"),
+ Truth = c("Milk", "Tea")))
> fisher.test(TeaTasting, alternative = "greater")
Fisher's Exact Test for Count Data
data: TeaTasting
p-value = 0.2429
alternative hypothesis: true odds ratio is greater than 1
95 percent confidence interval:
0.3135693 Inf
sample estimates:
odds ratio
می خواهیم تاثیر نوشیدن چای بر سلامتی خانمها بیشتر از شیر است یا خیر را آزمون کنیم.بعد از وارد کردن داده ها در R با کمک دستور :fisher.test(TeaTasting, alternative = "greater")
آزمون را انجام داده ، نتایج زیر بدست می آید: p- value = 0.2429مقدار از 0.05 بیشتر است در نتیجه فرض صفر رد نمی شود یعنی نسبت واریانسها ی بیشتر از یک است پذیرفته می شود و پراکندگی نوشیدن چای از شیر بیشتر است.odd ratioیعنی همان نابرابری واریانسهاست. مثال2):آزمون فیشر یک طرفه ("alternative = "less)> ## => p = 0.2429, association could not be established
> ## Fisher (1962, 1970), Criminal convictions of like-sex twins
> Convictions <-
+ matrix(c(2, 10, 15, 3),
+ nrow = 2,
+ dimnames =
+ list(c("Dizygotic", "Monozygotic"),
+ c("Convicted", "Not convicted")))
> Convictions
Convicted Not convicted
Dizygotic 2 15
Monozygotic 10 3
> fisher.test(Convictions, alternative = "less")
Fisher's Exact Test for Count Data
data: Convictions
p-value = 0.0004652
alternative hypothesis: true odds ratio is less than 1
95 percent confidence interval:
0.0000000 0.2849601
sample estimates:
odds ratio
0.04693661
در این آزمون فرض صفر یعنی نسبتهای واریانسهای دو جامعه از یک کمتر است.چون مقدار p-valueبرابر0.0004652است از 0.05کمتر است فرض صفر رد می شود و نتیجه گیری می شود که نسبت واریانسها از یک کمتر نیست (آزمون مجرم و بی گناه در برابر جرم)آزمون در سطح معنا داری0.05 معنی دار است. با فاصله اطمینان95درصد در بازه ی(0.2849601و0)قرار گرفته است. مثال3):آزمون فیشر دوطرفه (two sided)> fisher.test(Convictions, conf.int = FALSE)
Fisher's Exact Test for Count Data
data: Convictions
p-value = 0.0005367
alternative hypothesis: true odds ratio is not equal to 1
sample estimates:
odds ratio
0.04693661
> fisher.test(Convictions, conf.level = 0.95)$conf.int
[1] 0.003325764 0.363182271
attr(,"conf.level")
[1] 0.95
> fisher.test(Convictions, conf.level = 0.99)$conf.int
[1] 0.001386333 0.578851645
attr(,"conf.level")
[1] 0.99
در آزمون دو طرفه فرض صفر برابری واریانسهاست(نسبت واریانسها برابر یک).چون p valueاز 0.05کمتر است(مقدار آن برابر 0.0005367است) فرض صفر رد می شود بعنی واریانسها با هم مساوی نیستند.آزمون را با سطح اطمینان 99درصد نیز آزمایش کردیم. در آناليز واريانس وجود تفاوت معني دار بين گروه ها بوسيله ي آزمون F(آزمون فیشر) انجام مي گيرد.تجزیه واریانس داده های طرح آزمایشی معمولاٌ با استفاده از تابعaov() و برهان هایش صورت می گیرد با استفاده از این تابع کاربر قادر خواهد بود تا جدول تجزیه واریانس انواع طرح آزمایشی ساده و فاکتوریل همراه با آزمون های مناسب را به راحتی به دست آورد .شکل کلی استفاده از این تابع به صورت زیر می باشد:aov(formula, data = NULL, projections = FALSE, qr = TRUE, contrasts = NULL, ...)
aov(متغیر مورد ارزیابی~منابع تغییر در جدول واریانس به استثنای خطا)
اگر مدل شامل خطا باشد از تابع ()Error به عنوان برهان تابع()aov همانند زیر استفاده نماییم:aov(متغیر مورد ارزیابی~منابع تغییر در جدول واریانس+Error(منابع تغییر خطا))
N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0) P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0) K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0) yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5, 55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0) npk <- data.frame(block = gl(6,4), N = factor(N), P = factor(P), K = factor(K), yield = yield) npk.aov <- aov(yield ~ block + N*P*K, npk) proj(npk.aov) ## as a test, not particularly sensible options(contrasts = c("contr.helmert", "contr.treatment")) npk.aovE <- aov(yield ~ N*P*K + Error(block), npk) proj(npk.aovE) جدول1 |
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
در محیط Rبا اجرای دستور بالا به نتایج زیر دست پیدا می کنیم: مدل:طرح بلوکی بدون خطا## Set orthogonal contrasts.
> op <- options(contrasts = c("contr.helmert", "contr.poly"))
> ( npk.aov <- aov(yield ~ block + N*P*K, npk) )
Call:
aov(formula = yield ~ block + N * P * K, data = npk)
Terms:مجموع مربعات
block N P K N:P N:K P:K
Sum of Squares 343.2950 189.2817 8.4017 95.2017 21.2817 33.1350 0.4817
Deg. of Freedom 5 1 1 1 1 1 1
Residuals
Sum of Squares 185.2867
Deg. of Freedom 12
Residual standard error: 3.929447
1 out of 13 effects not estimable
Estimated effects are balanced
> summary(npk.aov)
Df Sum Sq Mean Sq F value Pr (>F)
block 5 343.3 68.66 4.447 0.01594 *
N 1 189.3 189.28 12.259 0.00437 **
P 1 8.4 8.40 0.544 0.47490
K 1 95.2 95.20 6.166 0.02880 *
N:P 1 21.3 21.28 1.378 0.26317
N:K 1 33.1 33.14 2.146 0.16865
P:K 1 0.5 0.48 0.031 0.86275
Residuals 12 185.3 15.44
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> coefficients(npk.aov)
(Intercept) block1 block2 block3 block4 block5
54.8750000 1.7125000 1.6791667 -1.8229167 -1.0137500 0.2950000
N1 P1 K1 N1:P1 N1:K1 P1:K1
2.8083333 -0.5916667 -1.9916667 -0.9416667 -1.1750000 0.1416667
مدل در سطح 0.01و0.001در بلوک و NوK معنی دار است ومدل خوبی است.تاثیر معنی داری بر خصوصیات مدل دارد. مشاهده ضرایب مدل با coefficients(npk.aov) امکان پذیر می باشد. برای مشاهده ی مقادیر مانده ها به Residuals توجه کنید. نکته:در Rاز علامت (:)برای تعریف اثرات متقابل استفاده می شود. آزمون آنالیز واریانس یکطرفهOne-Way ANOVA کاربرد: مقایسه میانگین یک متغیر کمی وابسته در سه گروه مستقل یا بیشتر فرض صفر: میانگین متغیر مربوطه در همه گروهها یکسان است.Aov(y~A,data=my datafrome)
Aov(y~A+B,data=my datafrome)
Aتیمار،Bبلوک است و yمتغیر مورد ارزیابی است. مثال1:> ## Not assuming equal variances
> oneway.test(extra ~ group, data = sleep)
One-way analysis of means (not assuming equal variances)
data: extra and group
F = 3.4626, num df = 1.000, denom df = 17.776, p-value = 0.07939
آزمون یک طرفه ی ANOVA است با فرض نا برابری واریانسها، مقدار pvalue=.07939است از 0.05بیشتر است در نتیجه فرض صفر پذیرفته می شود یعنی میانگین های گروههای مختلف با هم تفاوت معنی دار ندارند و با هم مساوی هستند.(مقدار F=3.4626است)یعنی خواب اضافی بر گروه ها بی تاثیر است.مثال2)## Assuming equal variances
> oneway.test(extra ~ group, data = sleep, var.equal = TRUE)
One-way analysis of means
data: extra and group
F = 3.4626, num df = 1, denom df = 18, p-value = 0.07919
آزمون یک طرفه ی ANOVA است با فرض برابری واریانسها با درجه آزادی 1وبا مقدار pvalue=0.07919 فرض صفر رد نمی شود چون از 0.05بزرگتر است و در نتیجه میانگین ها با هم تفاوت معنا دار ندارند. با دستور() ANOVA می توان جدول آنالیز واریانس را برای مثال بالا دید. در این جدول درجه آزادی ،مجموع و میانگین مربعات و مقدارFومقدار سطح معنی داری و مقدار باقی مانده ها ( Residuals) را مشاهده کرد.## which gives the same result as
> anova(lm(extra ~ group, data = sleep))
Analysis of Variance Table
جدول آنالیز واریانس
Response: extra
Df Sum Sq Mean Sq F value Pr(>F)
group 1 12.482 12.4820 3.4626 0.07919 .
Residuals 18 64.886 3.6048
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
درجه آزادی برابر یک است. مجموع میانگین مربعات برابر12.482ومقدار Fبرابر3.4626 می باشد .مقدار =.07919 pvalue می باشدکه از 0.05 بیشتر است در نتیجه فرض صفر پذیرفته می شود یعنی میانگین ها با هم برابراند و هیچ یک تاثیر معنی داری روی خصوصیات مدل ندارد.مقادیر باقی مانده ها نیز برابر18640886و3.6048 می باشد. مثال 2)طرح بلوکی: با دستورsummaryخلاصه ای از جدول آنالیز واریانس را می توان مشاهده کرد.> require(graphics)
> summary(fm1 <- aov(breaks ~ wool + tension, data = warpbreaks))
Df Sum Sq Mean Sq F value Pr(>F)
wool 1 451 450.7 3.339 0.07361 .
tension 2 2034 1017.1 7.537 0.00138 **
Residuals 50 6748 135.0
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
داده ها، انحراف تار و پود را نشان می دهد می خواهیم تاثیر پشمی بودن تار و پود و میزان کشش آنها را در انحراف تار و پود آزمون کنیم با توجه به مقدار pvalue=0.00138 کشش در تار و پود درسطح 0.05معنا دار است و فرض صفر را رد می کنیم یعنی میانگینها با هم تفاوت معنا داری دارند و کشش بر انحراف تار و پود تاثیر گذار است. آزمون آنالیز واریانس دوطرفه (Two-Way ANOVA) کاربرد: مقایسه میانگین یک متغیر کمی وابسته در طبقات دو متغیر کیفی فرض صفر: میانگین متغیر مربوطه در همه گروهها یکسان است.
Aov(y~A+B+A:B,mydata frome)
Aov(y~Error(block)+A*B*C,mydata frome)
Aov(y~block+A*B+C,mydata frome)
مثال: در مثال های قبل NوPوKوyield را تعریف کردیم،با دستور aov و طبق فرمول آنالیز واریانس دو طرفه برای مشاهده ی تحلیل میانگین تیمارها در مقایسه با میانگین کل و بلوک ها استفاده می شود.> ## to show the effects of re-ordering terms contrast the two fits
> aov(yield ~ block + N * P + K, npk)
Call:
aov(formula = yield ~ block + N * P + K, data = npk)
در اینجا yield متغیر مورد ارزیابی وblockهمان خطاهاست.Terms:
block N P K N:P Residuals
Sum of Squares 343.2950 189.2817 8.4017 95.2017 21.2817 218.9033 :مجموع مربعات را نشان می دهد
Deg. of Freedom 5 1 1 1 1 14 : درجات آزادی تیمار و بلوک و خطا و اثر متقابل را نشان می دهد
Residual standard error: 3.954232 :باقی مانده خطا را نشان می دهد
Estimated effects are balanced
> aov(terms(yield ~ block + N * P + K, keep.order = TRUE), npk)
Call:
aov(formula = terms(yield ~ block + N * P + K, keep.order = TRUE),
data = npk)
Terms:
block N P N:P K Residuals
Sum of Squares 343.2950 189.2817 8.4017 21.2817 95.2017 218.9033
Deg. of Freedom 5 1 1 1 1 14
Residual standard error: 3.954232
Estimated effects are balanced
>
>
> ## as a test, not particularly sensible statistically
> npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
> npk.aovE
Call:
aov(formula = yield ~ N * P * K + Error(block), data = npk)
Grand Mean: 54.875
Stratum 1: block
Terms:
N:P:K Residuals
Sum of Squares 37.00167 306.29333 مجموع مربعات اثرهای متقابل و خطا
Deg. of Freedom 1 4
Residual standard error: 8.750619 :باقی مانده استاندارد خطا
Estimated effects are balanced
Stratum 2: Within
Terms:
N P K N:P N:K P:K
Sum of Squares 189.28167 8.40167 95.20167 21.28167 33.13500 0.48167
Deg. of Freedom 1 1 1 1 1 1
Residuals
Sum of Squares 185.28667
Deg. of Freedom 12
Residual standard error: 3.929447
Estimated effects are balanced
> summary(npk.aovE)جدول تحلیل واریانس
Error: block
Df Sum Sq Mean Sq F value Pr(>F)
N:P:K 1 37.0 37.00 0.483 0.525 : 0.525 برابر با pبا درجه آزادی یک و مجموع مربعات 37ومقدار F=0.483
Residuals 4 306.3 76.57 :درجه آزادی خطا4است و مجموع مربعات306.3ومیانگین مربعات76.57
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
N 1 189.28 189.28 12.259 0.00437 **
P 1 8.40 8.40 0.544 0.47490
K 1 95.20 95.20 6.166 0.02880 *
N:P 1 21.28 21.28 1.378 0.26317
N:K 1 33.14 33.14 2.146 0.16865
P:K 1 0.48 0.48 0.031 0.86275
Residuals 12 185.29 15.44
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> options(op) # reset to previous
1-3)جدول توافقی جدول توافقی برای نشان دادن توزیع فراوانی همزمان دو یا چند متغیر طبقه ای به کار برده می شود .در جدول توافقی دستور () chisq.test (آزمون خی دو) به کار گرفته می شود. جدول توافقی مبنای بررسی متغیرهای اسمی است .در مثال زیر از جدول توافقی استفاده شده است: در منطقه ای دو رودخانه متفاوت وجود دارد (river1وriver2). برای مقایسه فراوانی4گونه ماهی (A,B,C,D)در هر یک از دو رودخانه با رعایت اصول نمونه برداری،ماهی صید شده است . جدول زیر تعداد ماهی را در هر یک از چهار گونه در این دو رودخانه نشان می دهد.آیا با توجه به آمار موجود می توان استنباط نمود که نوع ماهی در این دو رودخانه متفاوت است یا خیر؟D | C | B | A | رودخانه |
73 | 49 | 68 | 10 | 1 |
70 | 80 | 85 | 15 | 2 |
> fish<-read.table("C:\\Users\\neda\\Desktop\\fish.txt",header=T)
> fish
river1 river2
A 10 15
B 68 85
D 49 80
D 73 70
> chisq.test(fish)
Pearson's Chi-squared test
data: fish
X-squared = 4.9065, df = 3, p-value = 0.1788
نکته:برهان header=T به تابع می گویدتا اولین سطر داده ها را به عنوان نام متغیرها بپذیرد. مقدار خی دو محاسبه شده برابر با 4.9065 با درجه آزادی 3 است که معنی دار نمی باشد.و چون مقدار p-value =0.1788است و از 0.05بیشتر است بنابراین فرض صفر (برابر بودن فراوانی چهار گونه ماهی در دو رودخانه)رد نمی شود و از نظر آماری انواع ماهی ها در این دو رودخانه یکسان می باشد. پایاننظرات
هیچ نظری وجود ندارد.
افزودن نظر
Sitemap
Copyright © 2017 - 2023 Khavarzadeh®. All rights reserved