檢驗某學區所有在售房源中,小區與樓棟類別(低層;多層;小高層;高層)是否相關
導入數據:
> house<- read.table("house_data.txt", header = TRUE, sep='|',fileEncoding ="UTF-8",
stringsAsFactors = FALSE,
colClasses = c("character","character","numeric",
"character","numeric","numeric","character",
"numeric","numeric","character"))
> library(sqldf)
> houseXQ<- sqldf("select * from house where community_name!='東郊小鎮' ",row.names=TRUE)
> head(houseXQ)
結果如下:
id community_name house_area house_structure house_total house_avg agency_name house_floor_curr house_floor_total
1 6328500962692431872 尚東花園 77 3室2廳 285 37013 利眾置業 5 5
2 6328500979813580800 賽世香樟園 93 2室2廳 265 28495 蘇商房產仙林店 9 11
3 6328501016647958528 雁鳴山庄 84 2室2廳 246 29286 個人房源 4 5
4 6328501019412004864 仙林新村 58 2室2廳 155 26724 蘇恆不動產 5 6
5 6328501019420393472 仙林新村 61 2室2廳 160 26230 蘇恆不動產 4 6
6 6328501019428782080 仙林新村 59 2室2廳 161 27288 蘇恆不動產 4 6
house_floor_type
1 多層
2 小高層
3 多層
4 多層
5 多層
6 多層 |
生成列聯表(頻數表):
> houseTable<- xtabs(~community_name + house_floor_type, data=houseXQ)
看一下新表格:
> houseTable
結果如下:
house_floor_type
community_name None 低層 多層 高層 小高層
東方天郡 0 1 2 46 2
康橋聖菲 0 1 8 0 0
南師大茶苑 1 0 0 0 0
賽世香樟園 0 0 0 2 1
三味公寓 0 0 2 0 0
尚東花園 0 0 1 0 0
仙鶴山庄 0 0 1 0 0
仙林新村 0 0 7 0 0
亞東城 0 0 1 46 62
雁鳴山庄 0 0 4 0 0
詠梅山庄 0 0 1 0 0
從數據可以直觀看出來,康橋聖菲可能都是多層的,亞東城是小高層(11層)和高層(18層)
使用 CrossTable()函數生成頻數表:
> CrossTable(houseXQ$community_name, houseXQ$house_floor_type)
結果如下:
Cell Contents
|-------------------------|
| N |
| Chi-square contribution |
| N / Row Total |
| N / Col Total |
| N / Table Total |
|-------------------------|
Total Observations in Table: 189
| houseXQ$house_floor_type
houseXQ$community_name | None | 低層 | 多層 | 高層 | 小高層 | Row Total |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
東方天郡 | 0 | 1 | 2 | 46 | 2 | 51 |
| 0.270 | 0.393 | 3.835 | 16.787 | 13.768 | |
| 0.000 | 0.020 | 0.039 | 0.902 | 0.039 | 0.270 |
| 0.000 | 0.500 | 0.074 | 0.489 | 0.031 | |
| 0.000 | 0.005 | 0.011 | 0.243 | 0.011 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
康橋聖菲 | 0 | 1 | 8 | 0 | 0 | 9 |
| 0.048 | 8.595 | 35.063 | 4.476 | 3.095 | |
| 0.000 | 0.111 | 0.889 | 0.000 | 0.000 | 0.048 |
| 0.000 | 0.500 | 0.296 | 0.000 | 0.000 | |
| 0.000 | 0.005 | 0.042 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
南師大茶苑 | 1 | 0 | 0 | 0 | 0 | 1 |
| 187.005 | 0.011 | 0.143 | 0.497 | 0.344 | |
| 1.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.005 |
| 1.000 | 0.000 | 0.000 | 0.000 | 0.000 | |
| 0.005 | 0.000 | 0.000 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
賽世香樟園 | 0 | 0 | 0 | 2 | 1 | 3 |
| 0.016 | 0.032 | 0.429 | 0.173 | 0.001 | |
| 0.000 | 0.000 | 0.000 | 0.667 | 0.333 | 0.016 |
| 0.000 | 0.000 | 0.000 | 0.021 | 0.015 | |
| 0.000 | 0.000 | 0.000 | 0.011 | 0.005 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
三味公寓 | 0 | 0 | 2 | 0 | 0 | 2 |
| 0.011 | 0.021 | 10.286 | 0.995 | 0.688 | |
| 0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.011 |
| 0.000 | 0.000 | 0.074 | 0.000 | 0.000 | |
| 0.000 | 0.000 | 0.011 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
尚東花園 | 0 | 0 | 1 | 0 | 0 | 1 |
| 0.005 | 0.011 | 5.143 | 0.497 | 0.344 | |
| 0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.005 |
| 0.000 | 0.000 | 0.037 | 0.000 | 0.000 | |
| 0.000 | 0.000 | 0.005 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
仙鶴山庄 | 0 | 0 | 1 | 0 | 0 | 1 |
| 0.005 | 0.011 | 5.143 | 0.497 | 0.344 | |
| 0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.005 |
| 0.000 | 0.000 | 0.037 | 0.000 | 0.000 | |
| 0.000 | 0.000 | 0.005 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
仙林新村 | 0 | 0 | 7 | 0 | 0 | 7 |
| 0.037 | 0.074 | 36.000 | 3.481 | 2.407 | |
| 0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.037 |
| 0.000 | 0.000 | 0.259 | 0.000 | 0.000 | |
| 0.000 | 0.000 | 0.037 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
亞東城 | 0 | 0 | 1 | 46 | 62 | 109 |
| 0.577 | 1.153 | 13.636 | 1.244 | 16.030 | |
| 0.000 | 0.000 | 0.009 | 0.422 | 0.569 | 0.577 |
| 0.000 | 0.000 | 0.037 | 0.489 | 0.954 | |
| 0.000 | 0.000 | 0.005 | 0.243 | 0.328 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
雁鳴山庄 | 0 | 0 | 4 | 0 | 0 | 4 |
| 0.021 | 0.042 | 20.571 | 1.989 | 1.376 | |
| 0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.021 |
| 0.000 | 0.000 | 0.148 | 0.000 | 0.000 | |
| 0.000 | 0.000 | 0.021 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
詠梅山庄 | 0 | 0 | 1 | 0 | 0 | 1 |
| 0.005 | 0.011 | 5.143 | 0.497 | 0.344 | |
| 0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.005 |
| 0.000 | 0.000 | 0.037 | 0.000 | 0.000 | |
| 0.000 | 0.000 | 0.005 | 0.000 | 0.000 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
Column Total | 1 | 2 | 27 | 94 | 65 | 189 |
| 0.005 | 0.011 | 0.143 | 0.497 | 0.344 | |
-----------------------|-----------|-----------|-----------|-----------|-----------|-----------|
獨立性檢驗
1、卡方檢驗:對二維表的行變量和列變量進行卡方獨立性檢驗。
卡方分布—— n個獨立的標准正態分布變量的平方和服從自由度為 n 的卡方分布(分類資料相關性檢驗)
http://www.cnblogs.com/quietwalk/p/8276097.html
假設:樓盤與類型相互獨立,沒有相關性。
對上面生成的列聯表 houseTable 進行卡方檢驗:
> chisq.test(houseTable)
結果:
Pearson's Chi-squared test
data: houseTable
X-squared = 403.62, df = 40, p-value < 2.2e-16
Warning message: In chisq.test(houseTable) : Chi-squared近似算法有可能不准
P值 <0.05進行說明假設【樓盤與類型相互獨立,沒有相關性】不成立。
也就是說,哪個小區里面有什么樣的樓(是低層,多層,小高層,高層)是確定的(因為早在建造前規划的時候就定了呀~~~)
不可能說要建個小區,然后開發商擲個東南西北的色子:
如果結果是東,就建低層;如果結果是西,就建多層;如果結果是南,就建小高層;如果結果是北,就建高層。
如果是這樣的話,那么小區與樓的類型就沒有相關性。
2、Fisher精確檢驗:原假設為——邊界固定的列聯表中行和列是相互獨立的。
>fisher.test(houseTable,simulate.p.value=TRUE,B=2000)
結果為:
Fisher's Exact Test for Count Data with simulated p-value (based on 2000 replicates) data: houseTable p-value = 0.0004998 alternative hypothesis: two.sided
說明:可以看出,p值<0.05,原假設不成立,即相互獨立不成立,
houseXQ$community_name 與 houseXQ$house_floor_type具有相關性。
注意:如果直接用fisher.test(houseTable)會報以下錯誤:
FEXACT error 6.
LDKEY is too small for this problem.
Try increasing the size of the workspace.
但是如果simulate.p.value=TRUE,B=2000,設置了蒙特卡洛模擬和模擬次數,用fisher檢驗就不會出錯。
3、 Cochran-Mantel-Haenszel 檢驗
原假設為:兩個類別變量在第三個變量的每一層中都是條件獨立的。
>houseTable<- xtabs(~community_name + house_floor_type + house_structure, data=houseXQ) >houseTable > mantelhaen.test(houseTable)
Error in mantelhaen.test(houseTable) : 每個階層里的樣本大小都必需大於一