城市社區分析

場景

政府收集 12 城市之政經相關資料:(1) 人口 (2) 區民教育程度 (3) 僱傭情形 (4) 社會服務機構 及 (5) 房價 等。

社區分析

# 指定精準度 options(digits=4) # 清除殘餘變數 rm(list=ls()) # 擴充敘述統計函數功能 Summary <- function(data, col) { p <- summary(data[, col]) p['StdVar'] <- sd(data[, col]) p } # 主成分分析 doPCA <- function(dataset, formula) { PCA.Analysis <- prcomp(formula, data=dataset, center=TRUE, scale=TRUE) PCA.Analysis } # 載入資料 PCA.Data <- read.table('PCA-3.csv', header=T, , sep=',') # 敘述統計 for (i in 1:5) { print(colnames(PCA.Data)[i]) print(Summary(PCA.Data, i)) } # 使用所有變數進行分析 q <- doPCA(PCA.Data, ~Population+NumOfSchool+ Employment+OrgOfServices+HousePrice) q # 合併圖 par(mfrow=c(1, 2), pty='s') # 繪製陡坡量圖 plot(q, type="line", main="陡坡圖") # 特徵值 > 1 者即為應選擇因子 print(q$sdev^2) # 繪製因素負荷量圖 biplot(q, choices=c(1, 2), main='因素負荷量圖') # 主成分分析 summary(q)

Population NumOfSchool Employment OrgOfServices HousePrice 1 5700 12.8 2500 270 25000 2 1000 10.9 600 10 10000 3 340 8.8 1000 10 9000 4 3800 13.6 1700 140 25000 5 4000 12.8 1600 140 25000 6 8200 8.3 2600 60 12000 7 1200 11.4 400 10 16000 8 9100 11.5 3300 60 14000 9 9900 12.5 3400 180 18000 10 9600 13.7 3600 390 25000 11 9600 9.6 3300 80 12000 12 9400 11.4 1000 100 13000

Population: Min. 1st Qu. Median Mean 3rd Qu. Max. StdVar 340 3150 6950 5990 9450 9900 3768 NumOfSchool: Min. 1st Qu. Median Mean 3rd Qu. Max. StdVar 8.300 10.600 11.400 11.400 12.800 13.700 1.787 Employment: Min. 1st Qu. Median Mean 3rd Qu. Max. StdVar 400 1000 2100 2080 3300 3600 1175 OrgOfServices: Min. 1st Qu. Median Mean 3rd Qu. Max. StdVar 10.0 47.5 90.0 121.0 150.0 390.0 114.9 HousePrice: Min. 1st Qu. Median Mean 3rd Qu. Max. StdVar 9000 12000 15000 17000 25000 25000 6368

# 特徵值 > 1 者即為應選擇因子 2.9979 1.5118 0.2386 0.1591 0.0927

Importance of components: PC1 PC2 PC3 PC4 PC5 Standard deviation 1.73 1.230 0.4884 0.3988 0.3045 Proportion of Variance 0.60 0.302 0.0477 0.0318 0.0185 Cumulative Proportion 0.60 0.902 0.9496 0.9815 1.0000 前二項可解釋變異量:0.902