library(MASS) data(Boston)
Q1 Bostonに含まれるのはどのような変数?Q2 地域の特性によって不動産価格が決定されると考える。Bostonに含まれる変数は大まかにどのような特性にまとめることができそうか?(例 成長性、工業化、、、、、)
names(Boston) #データセットに含まれる変数一覧 (res3<-factanal(Boston[,-c(4,14)],factors=3,rotation="none",scores="regression")) #Bostonの4番目chas、14番目の変数medv以外の変数を使って 因子数3として因子分析実行 結果をres3にいれる 回転無し
実行結果 Call: factanal(x = Boston[, -c(4, 14)], factors = 3, scores = "regression", rotation = "none") Uniquenesses: crim zn indus nox rm age dis rad tax ptratio black lstat 0.608 0.497 0.268 0.226 0.148 0.301 0.170 0.112 0.058 0.706 0.777 0.352 Loadings: Factor1 Factor2 Factor3 crim 0.610 0.115 zn -0.493 0.443 0.251 indus 0.815 -0.235 -0.115 nox 0.800 -0.240 -0.275 rm -0.399 0.582 -0.594 age 0.669 -0.350 -0.358 dis -0.707 0.336 0.465 rad 0.885 0.316 tax 0.936 0.239 ptratio 0.478 0.256 black -0.467 lstat 0.674 -0.398 0.188 Factor1 Factor2 Factor3 SS loadings 5.587 1.219 0.971 Proportion Var 0.466 0.102 0.081 Cumulative Var 0.466 0.567 0.648 Test of the hypothesis that 3 factors are sufficient. The chi square statistic is 357.03 on 33 degrees of freedom. The p-value is 4.98e-56 1-2因子について因子得点と因子負荷量をプロットしてみる 数字=サンプル番号 赤矢印 変数名とその因子負荷量 biplot(res3$scores[,1:2],res3$loadings[,1:2])
Q3 各因子の意味を解釈してみる。
因子のVarimax回転 →座標変換して解釈しやすくする
(res3v<-factanal(Boston[,-c(4,14)],factors=3,rotation="varimax",scores="regression"))
結果 Call: factanal(x = Boston[, -c(4, 14)], factors = 3, scores = "regression", rotation = "varimax") Uniquenesses: crim zn indus nox rm age dis rad tax ptratio black lstat 0.608 0.497 0.268 0.226 0.148 0.301 0.170 0.112 0.058 0.706 0.777 0.352 Loadings: Factor1 Factor2 Factor3 crim 0.213 0.571 0.142 zn -0.666 -0.102 -0.220 indus 0.636 0.504 0.272 nox 0.735 0.458 0.154 rm -0.143 -0.111 -0.905 age 0.779 0.275 0.128 dis -0.861 -0.292 rad 0.254 0.904 tax 0.307 0.907 0.162 ptratio 0.104 0.418 0.330 black -0.208 -0.417 lstat 0.453 0.357 0.561 Factor1 Factor2 Factor3 SS loadings 3.222 3.088 1.466 Proportion Var 0.269 0.257 0.122 Cumulative Var 0.269 0.526 0.648 Test of the hypothesis that 3 factors are sufficient. The chi square statistic is 357.03 on 33 degrees of freedom. The p-value is 4.98e-56
因子間の相関 →相関0にしたければrotation="varimax" を指定 cor(res3v$scores)
Factor1 Factor2 Factor3 Factor1 1.00000000 0.05438976 0.03569716 Factor2 0.05438976 1.00000000 0.01891174 Factor3 0.03569716 0.01891174 1.00000000
#プロットしてみる biplot(res3v$scores[,1:2],res3r$loadings[,1:2])
#回転無し ありを並べてプロット
par(mfrow=c(1,2)) biplot(res3$scores[,1:2],res3$loadings[,1:2]) biplot(res3v$scores[,1:2],res3v$loadings[,1:2])
Q4 因子数を増加して実行してみる→検定の結果よりは事前の仮説を優先する方が望ましい
因子を使って回帰分析
names(res3v) res3v$scores #これが因子得点 (3因子) #これをもとのデータBostonと合成してBoston2に Boston2<-data.frame(Boston,res3v$scores) edit(Boston2)
#あとはいつものように分析できる summary(lm(medv~ Factor1+Factor2+Factor3,Boston2)) #生の変数で回帰
summary(lm(medv~ crim+zn+indus+nox+rm+age+dis+rad+tax+ptratio+black+lstat,Boston2))
Q 生の変数の方の結果を解釈する。問題はないか? Q 二つのモデルのR2を比較。異なる理由を考える。
#主成分分析 (resprn<-princomp(Boston[,-c(4,14)],scores=T)) loadings(resprn)