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)