獨立性檢驗-(卡方、Fisher)
獨立性檢驗_百度百科
R之獨立性檢驗 - 王文強的博客 - CSDN博客
研究兩種方式之間是否獨立,或是否有關聯性可采用獨立性檢驗、
本例中:探究治療方式對提升效果是否有顯著性影響可用獨立性檢驗。
chisq.test()卡方獨立性檢驗
fisher.test()費雪兒獨立性檢驗
library(grid)
library(vcd)
mytable<-xtabs(~Treatment+Improved,data = Arthritis)
chisq.test(mytable)
fisher.test(mytable)
> chisq.test(mytable)
Pearson's Chi-squared test
data: mytable
X-squared = 13.055, df = 2, p-value = 0.001463
- 零假設是:兩組實驗結果無顯著差異,結果是由誤差引起的。
- 備擇假設:兩組結果顯著差異。p值越小,表示越拒絕零假設。
- 其根本思想就是在於比較理論頻數和實際頻數的吻合程度或擬合優度問題。
- 采用chisq.test()對二維表行與列變量進行獨立性檢驗,一般來說只需要看P值即可,其含義為:“從總體中抽取的樣本行變量與列變量是相互獨立的概率”;p值越小表明獨立的概率越低。
- 因此在治療方案與提升效果p(獨立概率)值為0.001463,表明接受原假設,兩者不存在某種關系。
- p值越大,拒絕原假設獨立的可能性越大,p值越小,接收原假設獨立的可能性越小。
- p值得具體限定可以去0.01或0.05根據需要而定。
> fisher.test(mytable)
Fisher's Exact Test for Count Data
data: mytable
p-value = 0.001393
alternative hypothesis: two.sided
- 采用Fisher.test()對二維表進行獨立性檢驗,同上。
- 治療方案與提升效果p(獨立概率)值為0.001393,表明接受原假設,兩者不存在某種關系.
mytable<-xtabs(~Improved+Sex,data = Arthritis)
mytable
chisq.test(mytable)
fisher.test(mytable)
> chisq.test(mytable)
Pearson's Chi-squared test
data: mytable
X-squared = 4.8407, df = 2, p-value = 0.08889
Warning message:
In chisq.test(mytable) : Chi-squared近似算法有可能不准
提升效果與性別的p(獨立概率)值為0.08889,表明拒絕原假設,兩者存在某種關系.
> fisher.test(mytable)
Fisher's Exact Test for Count Data
data: mytable
p-value = 0.1094
alternative hypothesis: two.sided
提升效果與性別的p(獨立概率)值為0.1094,表明拒絕原假設,兩者存在某種關系.
相關系數、協方差
如何通俗易懂地解釋「協方差」與「相關系數」的概念?(轉)_至臻思想_新浪博客
協方差
可以通俗的理解為:兩個變量在變化過程中是同方向變化?還是反方向變化?同向或反向程度如何?
你變大,同時我也變大,說明兩個變量是同向變化的,這時協方差就是正的。
你變大,同時我變小,說明兩個變量是反向變化的,這時協方差就是負的。
從數值來看,協方差的數值越大,兩個變量同向程度也就越大。反之亦然。
協方差描述了兩者的變動幅度和相關程度、
而相關系數是去除了變動幅度的影響后的變動相關程度。
Population Income Illiteracy Life Exp Murder HS Grad
Alabama 3615 3624 2.1 69.05 15.1 41.3
Alaska 365 6315 1.5 69.31 11.3 66.7
Arizona 2212 4530 1.8 70.55 7.8 58.1
Arkansas 2110 3378 1.9 70.66 10.1 39.9
California 21198 5114 1.1 71.71 10.3 62.6
Colorado 2541 4884 0.7 72.06 6.8 63.9
Population Income Illiteracy Life Exp Murder
Population 19931683.7588 571229.7796 292.8679592 -407.8424612 5663.523714
Income 571229.7796 377573.3061 -163.7020408 280.6631837 -521.894286
Illiteracy 292.8680 -163.7020 0.3715306 -0.4815122 1.581776
Life Exp -407.8425 280.6632 -0.4815122 1.8020204 -3.869480
Murder 5663.5237 -521.8943 1.5817755 -3.8694804 13.627465
HS Grad -3551.5096 3076.7690 -3.2354694 6.3126849 -14.549616
人口和收入的值都很大,並且他們的變動方向和變動同向程度也非常類似,因此兩者的協方差值就非常大,且為正值。(571229.7796)
謀殺率和文盲的值都非常小,並且他們也基本同向變動,因此他們的協方差也非常小,且為正值、(1.5817755)
Population Income Illiteracy Life Exp Murder
Population 1.00000000 0.2082276 0.1076224 -0.06805195 0.3436428
Income 0.20822756 1.0000000 -0.4370752 0.34025534 -0.2300776
Illiteracy 0.10762237 -0.4370752 1.0000000 -0.58847793 0.7029752
Life Exp -0.06805195 0.3402553 -0.5884779 1.00000000 -0.7808458
Murder 0.34364275 -0.2300776 0.7029752 -0.78084575 1.0000000
相關系數是去除了變動幅度之后的兩個值的同向程度,因此哪怕另一個值數值非常大,但是兩者的變動程度基本一致,那么其相關系數依然很大,且接近1.
人口與收入的值非常大,放入去除量綱影響的相關系數計算中,就會顯現出變動程度的原型,表明兩者之間變動較為相似,且正相關。(0.2088876)
謀殺和文盲的值都非常小,他們同向變動非常類似,因此相關系數接近1且為正值。(0.7029752)
相關性檢驗
cor、cov參數描述
- x:矩陣或數據框
- use:指定缺失數據的處理方式。可選的方式為:
- all.obs(假設不存在缺失數據——遇到缺失數據時將報錯)、
- everything(遇到缺失數據時,相關系數的計算結果將被設為 missing)、
- complete.obs(行刪除)以及
- pairwise.complete.obs(成對刪除,pairwise deletion)
- method:指定相關系數的類型。
- 可選類型為 pearson、spearman 或 kendall
Spearman(斯皮爾曼相關系數)
SPSS詳細教程:Spearman相關分析_網易訂閱
問題提出:研究者想判斷兩個連續變量之間的關系。(即分析膽固醇濃度與看電視時間的關系。)
1.spearman假設分析:針對這種情況,我們可以使用Spearman相關分析,但需要先滿足2項假設:
假設1:觀測變量是連續變量或有序分類變量 (如本研究中膽固醇濃度與看電視時間都是連續變量)
假設2:變量之間存在單調關系 (且異常值對該相關系數影響較小)
2.假設情況分析:本數據為膽固醇濃度與看電視時間都是連續變量,符合假設1、
膽固醇濃度與看電視時間是否單調可以作散點圖來判斷。
3.假設條件成立,進行spearman相關分析並進行顯著性檢驗。
4.得到結論。(具體流程可見鏈接詳細操作)
pearson(皮爾遜相關系數)
統計學之三大相關性系數(pearson、spearman、kendall)_閔慶傑_新浪博客
問題提出:研究者想判斷兩個正態分布變量之間的關系。(即分析蛋白質A與蛋白質B的變化關系。)
1.pearson假設分析:針對這種情況,我們可以使用Spearman相關分析,但需要先滿足2項假設:
假設1: 實驗數據通常假設是成對的來自於正態分布的總體。 (如本研究中膽固醇濃度與看電視時間都是連續變量)
假設2: 實驗數據之間的差距不能太大。 (或者說皮爾森相關性系數受異常值的影響比較大)
2.假設情況分析:本數據為蛋白質A與蛋白質B的變化關系且基本是正態分布,符合假設1、
蛋白質A與蛋白質B之間的數據較為集中,沒有出現過大的異常值影響。
3.假設條件成立,進行perason相關分析並進行顯著性檢驗。
4.得到結論。
實例介紹:
X1=c(1, 2, 3, 4, 5, 6) #數據來自正態總體,且無異常值
Y1=c(0.3, 0.9, 2.7, 2, 3.5, 5)
cor(X1,Y1,method = "pearson")
[1] 0.9481367
X2<-c(1,1,1,1,1,1) #數據來自非正態總體
Y1=c(0.3, 0.9, 2.7, 2, 3.5, 5)
cor(X2,Y1,method = "pearson")
[1] NA
Warning message:
In cor(X2, Y1, method = "pearson") : 標准差為零
X2<-c(1,1,1,1,1,0) #數據來自非常態總體糾正,異常值對person相關系數> spearman相關系數 的影響。
Y1=c(0.3, 0.9, 2.7, 2, 3.5, 5)
cor(X2,Y1,method = "pearson")
cor(X2,Y1,method = "spearman")
[1] -0.7383504
[2] -0.6546537
kendall correlation coefficient(肯德爾相關性系數)
問題提出:研究者想判斷分類(類別)變量之間的關系。( 評委對選手的評分(優、中、差等),我們想看兩個(或者多個)評委對幾位選手的評價標准是否一致;)
1.kendall correlation coefficient假設分析:針對這種情況,我們可以使用kendall相關分析,但需要先滿足2項假設:
假設1: 無序的,比如性別(男、女)、血型(A、B、O、AB);
or假設2: 有序的,比如肥胖等級(重度肥胖,中度肥胖、輕度肥胖、不肥胖;
2.假設情況分析:本數據為評委對選手的評分(優、中、差等),符合其中的假設2。
3.假設條件成立,進行Kendall相關分析並進行顯著性檢驗。
4..得到結論。
實例介紹:
x1<-c(3,2,3,1,3,1)
x2<-c(3,2,2,1,2,2)
cor(x1,x2,method = "kendall")
[1] 0.6030227
表明兩位評委打分情況相關程度為0.603.
實例拓展:
自定義特定列之間的相關系數
> x<-states[,c('Population','Income','Illiteracy','HS Grad')]
> y<-states[,c('Life Exp','Murder')]
> cor(x,y)
Life Exp Murder
Population -0.06805195 0.3436428
Income 0.34025534 -0.2300776
Illiteracy -0.58847793 0.7029752
HS Grad 0.58221620 -0.4879710
偏相關
指控制一個或多個變量時,另外兩個變量之間的相互關系。
pcor
Computes the partial correlation between two variables given a set of other variables.
計算給定一組其他變量的兩個變量之間的部分相關性。
pcor(u, S)
library(ggm)
kzv<-c(1,5) #控制變量population、murder
pcv<-c(2,3,6) #排除影響變量income、illiteracy、HS Grad
u<-c(kzv,pcv) #組合給定默認U值
s<-cov(states) #計算整體協方差
pcor(u,s) #計算偏相關
[1] 0.3462724
pcor(c(1,5,2,3,6),cov(states))
[1] 0.3462724
控制income、illiteracy,HS Grad三個變量,研究population與murder之間的關系,發現人口與謀殺率之間的相關系數為0.3462724.
.........................部分原始數據.............................
> states
Population Income Illiteracy Life Exp Murder HS Grad
Alabama 3615 3624 2.1 69.05 15.1 41.3
Alaska 365 6315 1.5 69.31 11.3 66.7
Arizona 2212 4530 1.8 70.55 7.8 58.1
> colnames(states) #數據框列名稱
[1] "Population" "Income" "Illiteracy" "Life Exp" "Murder" "HS Grad"
相關系數的檢驗
cor.test(x, y, alternative=, method =)
x,y:表示要檢驗的相關變量
alterlative:指定單雙側檢驗(“two.side”,“less”,“greater”)
method:指定計算的相關系數類型(“person”,“Kendall”,“spearman”)
> X1=c(1, 2, 3, 4, 5, 6) #數據來自正態總體,且無異常值
> Y1=c(0.3, 0.9, 2.7, 2, 3.5, 5)
> cor(X1,Y1,method = "pearson")
[1] 0.9481367 #cor計算person相關系數
> cor.test(X1,Y1,method = 'pearson')
Pearson's product-moment correlation
data: X1 and Y1
t = 5.9657, df = 4, p-value = 0.003965
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.5924434 0.9944768
sample estimates:
cor
0.9481367
#cor.test計算person相關系數的顯著性(0.003965)表示該相關系數非常可信。
> library(psych) #psych包里的升級版corr.test進行相關計算與檢驗
> corr.test(states,use = 'complete',method = 'pearson',alpha = 0.05)
Call:corr.test(x = states, use = "complete", method = "pearson",
alpha = 0.05)
Correlation matrix
Population Income Illiteracy Life Exp Murder HS Grad
Population 1.00 0.21 0.11 -0.07 0.34 -0.10
Income 0.21 1.00 -0.44 0.34 -0.23 0.62
Illiteracy 0.11 -0.44 1.00 -0.59 0.70 -0.66
Life Exp -0.07 0.34 -0.59 1.00 -0.78 0.58
Murder 0.34 -0.23 0.70 -0.78 1.00 -0.49
HS Grad -0.10 0.62 -0.66 0.58 -0.49 1.00
Sample Size
[1] 50
Probability values (Entries above the diagonal are adjusted for multiple tests.)
Population Income Illiteracy Life Exp Murder HS Grad
Population 0.00 0.59 1.00 1.0 0.10 1
Income 0.15 0.00 0.01 0.1 0.54 0
Illiteracy 0.46 0.00 0.00 0.0 0.00 0
Life Exp 0.64 0.02 0.00 0.0 0.00 0
Murder 0.01 0.11 0.00 0.0 0.00 0
HS Grad 0.50 0.00 0.00 0.0 0.00 0
To see confidence intervals of the correlations, print with the short=FALSE option
corr.test()參數:
function (x, y = NULL, use = "pairwise", method = "pearson",
adjust = "holm", alpha = 0.05, ci = TRUE)
優勢描述:cor只有相關性輸出,cor.test也只有概率值輸出,且都值只針對一對變量。而
psych包的corr.test則是R標准包cor和cor.test的升級版,可以計算矩陣相關性的同時,計算概率值,極其方便進行判斷選擇。
x:計算矩陣
y:與x相同行數的第二矩陣或數據文件
use:pairwise(默認)表示成對刪除無效變量,complete表示行刪除無效變量。
method:pearson、spearman、Kendall
alpha:置信水平(0.05)