国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
r語言:因子分析和聚類分析實(shí)例

r語言:因子分析和聚類分析實(shí)例-降維+樣本聚類

函數(shù)庫

 

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#*************因子分析-R語言實(shí)現(xiàn),函數(shù)庫文件**************#
#****作者:oldlee11***************************************#
#****版本:v0.1*******************************************#
#****時(shí)間:2013-1-17*************************************#
 
#功能目標(biāo):原始數(shù)據(jù)變量x1,x2,x3....xn(全體記為X)。通過樣本可以知道某些變量之間有相關(guān)性。
#          則計(jì)算出新變量/因子f1,f2,f3....fm(m<n)(全體記為F),這新變量/因子F可以最大程度的表達(dá)原變量X
#            由于新變量的個(gè)數(shù)m小于原始變量個(gè)數(shù)n,即降維了。
#原理:AF+e=X
#      A叫因子載荷(loading)。意義:fi(某1個(gè)因子)和xi(某一個(gè)原變量)的相關(guān)系數(shù),接近1表示fi和xi相關(guān)性強(qiáng):aij=cov(xi,fj)
#      e叫特殊因子
#其它術(shù)語變量:
#      公因子方差:F(所有因子)解釋xi(某一個(gè)原始變量)的方差百分比(貢獻(xiàn))
#      特征值:fi(某一個(gè)因子)解釋X(所有原始變量)的方差百分比(貢獻(xiàn))
#      因子得分:在計(jì)算得出了A后,計(jì)算F內(nèi)的樣本數(shù)據(jù)。
#      旋轉(zhuǎn):對(duì)因子載荷進(jìn)行旋轉(zhuǎn),之后因子載荷各項(xiàng)大的越來越大,小的越來越小,便于劃分因子和原始變量的關(guān)系。
 
#****函數(shù):factor()
#****概要:因子分析法
#****輸入:
#        名稱           |    數(shù)據(jù)格式
#        data_frame     |    欲分析的數(shù)據(jù) ,數(shù)據(jù)框格式,最好帶名稱,不可以有factor分類數(shù)據(jù)
#        factors        |    欲產(chǎn)生的因子個(gè)數(shù)小于原始數(shù)據(jù)的變量個(gè)數(shù)
#        scores         |    是否進(jìn)行因子得分
#        rotation       |    是否進(jìn)行旋轉(zhuǎn)
#     loadings.abs.std  |    用于從因子載荷中挑出那些原始變量和那些因子相關(guān)的標(biāo)準(zhǔn)(相對(duì)系數(shù)的絕對(duì)值的最低標(biāo)準(zhǔn))
#****輸出:
#        factanal(..)產(chǎn)生的結(jié)果
#        factanal(..)$score并非數(shù)據(jù)框格式,需要as.data.frame(factanal(..)$score)轉(zhuǎn)化一下才是數(shù)據(jù)框格式。
 
 
factor<-function(data_frame,factors=2,scores="none",rotation="none",loadings.abs.std=0.6){
    sol<-factanal(~.,data=data_frame,factors=factors,scores=scores,rotation=rotation)#使用最大似然法進(jìn)行的因子分析。
    print("==========================")
    print("==== 因子分析結(jié)果如下 ====")
    print("==========================")
    print("模型:X=AF+e")
    print("======================================================================")
    print("1    A即因子載荷loadings:")
    print("     每個(gè)數(shù)據(jù)(aij)表示了原始變量xi和因子變量fj的相關(guān)系數(shù)cov.值約接近+1或-1,約相關(guān)")
    for(i in 1:factors){
        print(paste("     因子",i,"同原始變量的相關(guān)性系數(shù)"))
        print(rev(sort(loadings(sol)[,i])))
    }
 
    #### 給出因子和原始變量的可能關(guān)系####
    print("     您可以通過以上數(shù)據(jù)查看接近+1或者-1的數(shù)據(jù),以說明某一因子和那些原始變量相關(guān),并分析該因子的隱含意義")
    print(paste("     依據(jù)相對(duì)系數(shù)的絕對(duì)值大于在",loadings.abs.std,"原則,我們建議如下:"))
    tmp.x<-0#用于記錄因子載荷大于loadings.abs.std的所有原始變量的序列號(hào)
    dev.new()#新窗口# 畫出每個(gè)因子對(duì)應(yīng)各個(gè)變量的柱狀圖
    par(mfrow=c(1,factors))#把窗口分為:1行3列
    for(i in 1:factors){
        tmp.x.factor<-0#用于記錄某一因子中因子載荷大于loadings.abs.std的原始變量的序列號(hào)
        print(paste("     因子",i,"可以代表原始變量:"))
        print.con<-""
        for(j in 1:length(names(data_frame))){
            if(abs(loadings(sol)[,i][j])>loadings.abs.std){#loadings.abs.std為相對(duì)系數(shù)的絕對(duì)值的最低標(biāo)準(zhǔn)
                print(paste("        ",print.con,names(loadings(sol)[,i][j]),loadings(sol)[,i][j]))
                tmp.x<-c(tmp.x,j)
                tmp.x.factor<-c(tmp.x.factor,j)
            }
        }
        data1<-sol$loadings[,i]
        data1[-tmp.x.factor]<-0
        data2<-sol$loadings[,i]
        data2[tmp.x.factor]<-0
        barplot(data1,horiz=TRUE,main=paste("因子",i,"的載荷"),col="red",xlim=c(-1,1))
        barplot(data2,horiz=TRUE,add=TRUE)       
    }
    tmp.x<-tmp.x[-1]
    print("     沒有被代表的原始變量有:")
    for(i in names(data_frame)[-as.numeric(names(table(tmp.x)))]){
        print(paste("         ",i))
    }
    tmp.x.table<-table(tmp.x)
    for(i in 1:length(tmp.x.table)){
        if(tmp.x.table[i]>1){
            print(paste("     Warings:原始變量",names(data_frame)[as.numeric(names(tmp.x.table[i]))],"被",tmp.x.table[i],"個(gè)因子共同代表了"))
        }
    }
    print("2    特殊值:")
    print("======================================================================")
    ssloadings<-sol$loadings[1,]
    for(i in 1:factors){
        ssloadings[i]<-sum((sol$loadings[,i])^2)
    }
    var.sum<-length(names(data))#是每組xi數(shù)據(jù)標(biāo)準(zhǔn)化后(方差=1)的和=1*原始變量的個(gè)數(shù)
    tmp<-0
    tmp.vector<-sol$loadings[1,]#每個(gè)因子對(duì)應(yīng)的累計(jì)貢獻(xiàn)比例
    for(i in 1:factors){
        print(paste("     因子",i,"可以解釋所有原始變量X", round(10000*ssloadings[i]/var.sum)/100,"%的方差"))
        tmp<-(ssloadings[i]/var.sum)+tmp
        tmp.vector[i]<-tmp
        print(paste("     因子1至",i,"累計(jì)可以解釋所有原始變量X", round(10000*tmp)/100,"%的方差"))
        print("")
    }
    print("     請查看所有因子的累計(jì)方差貢獻(xiàn)比例,一般來說要大于80%,否則說明因子數(shù)目不足")
    dev.new()#新窗口#畫出累計(jì)方差貢獻(xiàn)比例
    #barplot(tmp.vector,ylim=c(0,1),main="各個(gè)因子對(duì)整體方差的累計(jì)貢獻(xiàn)率ssloadings(特征值)")
    barplot(ssloadings/var.sum,ylim=c(0,1),main="各個(gè)因子對(duì)整體方差的貢獻(xiàn)率")
    lines(tmp.vector,col="blue",lwd=2)
    points(c(1:factors),tmp.vector)
    text(c(1:factors),tmp.vector+0.05,labels=round(tmp.vector*10000)/10000)
    abline(h=0.8,col="red")
    print("======================================================================")
    print("3    因子得分:")
    print("     使用新產(chǎn)生的因子來表示原來的樣本")
    print("     注意:每組因子對(duì)應(yīng)的樣本數(shù)據(jù)(即:每一列)已經(jīng)經(jīng)過了標(biāo)準(zhǔn)化:均值約為0,標(biāo)準(zhǔn)差約為1")
    print(sol$score)
    sol
}
##############系統(tǒng)聚類法:對(duì)新樣本進(jìn)行距離############################################
hc<-function(data_frame,k.num){
    d<-dist(scale(data_frame))#scale是標(biāo)準(zhǔn)化公式
    hc<-hclust(d)
    dev.new()
    plclust(hc,hang=-1)
    re<-rect.hclust(hc,k=k.num,border="red")#劃分5個(gè)聚類,re[[i]]是第i個(gè)聚類包含的樣本id向量。
    dev.new()
    hc.point<-data_frame[1:k.num,]#用于存儲(chǔ)每個(gè)聚類里個(gè)變量的平均值
    for(i in 1:k.num){
        for(j in 1:length(names(data_frame))){
            hc.point[i,j]<-mean(data_frame[re[[i]],j])
        }
    }
    #stars(hc.point+1+round(abs(min(hc.point))))#由于hc.point被標(biāo)準(zhǔn)化,所有有負(fù)數(shù),無法使用星圖表示,現(xiàn)全體加一個(gè)數(shù)字,使不再有負(fù)數(shù)。
    #dev.new()
    stars(hc.point+1+round(abs(min(hc.point))),full=F,draw.segments=T,key.loc=c(5,0.5),mar=c(2,0,0,0))
    dev.new()
    stars(hc.point,full=F,draw.segments=T,key.loc=c(5,0.5),mar=c(2,0,0,0),main="不平移")#不知到底使用要平移
    hc.point
}

測試程序:

#test1#48個(gè)應(yīng)聘者的15個(gè)指標(biāo)的得分和id號(hào),得分為0-10
data<-read.csv("d://r//factor//applicant.csv")
data<-data[-1]
sol.factor<-factor(data,factors=5,scores="Bartlett",rotation="varimax");
結(jié)果:

 

 

 

 

[1] "=========================="
[1] "==== 因子分析結(jié)果如下 ===="
[1] "=========================="
[1] "模型:X=AF+e"
[1] "======================================================================"
[1] "1    A即因子載荷loadings:"
[1] "     每個(gè)數(shù)據(jù)(aij)表示了原始變量xi和因子變量fj的相關(guān)系數(shù)cov.值約接近+1或-1,約相關(guān)"
[1] "     因子 1 同原始變量的相關(guān)性系數(shù)"
        SC        AMB        SMS         LC        GSP        DRV        POT
0.91661844 0.90887444 0.88014177 0.85117729 0.78335594 0.75419498 0.71687415
       APP         KJ       SUIT        HON         LA         FL        EXP
0.45087828 0.41774040 0.35058165 0.22821711 0.22162986 0.12746670 0.08041938
        AA
0.05933985
[1] "     因子 2 同原始變量的相關(guān)性系數(shù)"
        EXP        SUIT          FL          KJ         DRV         POT
 0.77266335  0.76449559  0.72162726  0.39865243  0.39271661  0.36249122
        GSP         SMS          LA         AMB         APP          AA
 0.29450872  0.26601944  0.24577719  0.18712315  0.13392291  0.12887303
         LC          SC         HON
 0.12471808 -0.09322833 -0.21981125
[1] "     因子 3 同原始變量的相關(guān)性系數(shù)"
          LA          HON           KJ          POT          GSP
 0.827370568  0.776987127  0.562811285  0.445529774  0.354466962
          LC          APP          DRV           SC          AMB
 0.278766832  0.269544890  0.198824418  0.166868929  0.112465561
         SMS           FL         SUIT           AA          EXP
 0.111066506  0.101977041  0.058179578  0.002176755 -0.049844918
[1] "     因子 4 同原始變量的相關(guān)性系數(shù)"
           AA           POT           APP           EXP           GSP
 0.6863156611  0.2672573067  0.2056070064  0.1705401447  0.1480620949
         SUIT            LC           HON           AMB           DRV
 0.1478674226  0.0249597130 -0.0004074814 -0.0365023678 -0.0395939658
          SMS            LA            SC            FL            KJ
-0.0473907568 -0.0561707141 -0.0720675452 -0.1173475356 -0.5851358195
[1] "     因子 5 同原始變量的相關(guān)性系數(shù)"
         APP          AMB          DRV          HON           KJ
 0.258158383  0.165496223  0.113689366  0.063946654  0.049305338
         POT          EXP           AA           SC         SUIT
 0.020647994  0.018167169  0.016387719  0.015079928 -0.005404459
          FL          SMS           LA          GSP           LC
-0.009679265 -0.012552488 -0.078570813 -0.181440791 -0.420287717
[1] "     您可以通過以上數(shù)據(jù)查看接近+1或者-1的數(shù)據(jù),以說明某一因子和那些原始變量相關(guān),并分析該因子的隱含意義"
[1] "     依據(jù)相對(duì)系數(shù)的絕對(duì)值大于在 0.6 原則,我們建議如下:"
[1] "     因子 1 可以代表原始變量:"
[1] "          SC 0.916618443168082"
[1] "          LC 0.851177293416533"
[1] "          SMS 0.880141769968176"
[1] "          DRV 0.754194978394463"
[1] "          AMB 0.908874438992514"
[1] "          GSP 0.783355944976582"
[1] "          POT 0.716874152279818"
[1] "     因子 2 可以代表原始變量:"
[1] "          FL 0.721627255740438"
[1] "          EXP 0.77266334848744"
[1] "          SUIT 0.764495589647711"
[1] "     因子 3 可以代表原始變量:"
[1] "          LA 0.827370568125198"
[1] "          HON 0.776987126787634"
[1] "     因子 4 可以代表原始變量:"
[1] "          AA 0.686315661069076"
[1] "     因子 5 可以代表原始變量:"
[1] "     沒有被代表的原始變量有:"
[1] "          APP"
[1] "          KJ"
[1] "2    特殊值:"
[1] "======================================================================"
[1] "     因子 1 可以解釋所有原始變量X 36.6 %的方差"
[1] "     因子1至 1 累計(jì)可以解釋所有原始變量X 36.6 %的方差"
[1] ""
[1] "     因子 2 可以解釋所有原始變量X 16.71 %的方差"
[1] "     因子1至 2 累計(jì)可以解釋所有原始變量X 53.31 %的方差"
[1] ""
[1] "     因子 3 可以解釋所有原始變量X 14.59 %的方差"
[1] "     因子1至 3 累計(jì)可以解釋所有原始變量X 67.9 %的方差"
[1] ""
[1] "     因子 4 可以解釋所有原始變量X 6.85 %的方差"
[1] "     因子1至 4 累計(jì)可以解釋所有原始變量X 74.75 %的方差"
[1] ""
[1] "     因子 5 可以解釋所有原始變量X 2.2 %的方差"
[1] "     因子1至 5 累計(jì)可以解釋所有原始變量X 76.96 %的方差"
[1] ""
[1] "     請查看所有因子的累計(jì)方差貢獻(xiàn)比例,一般來說要大于80%,否則說明因子數(shù)目不足"
[1] "======================================================================"
[1] "3    因子得分:"
[1] "     使用新產(chǎn)生的因子來表示原來的樣本"
[1] "     注意:每組因子對(duì)應(yīng)的樣本數(shù)據(jù)(即:每一列)已經(jīng)經(jīng)過了標(biāo)準(zhǔn)化:均值約為0,標(biāo)準(zhǔn)差約為1"

 

 

 

 

 

data<-as.data.frame(sol.factor$score)
sol.hc<-hc(data,k.num=4)
結(jié)果:


補(bǔ)充數(shù)據(jù)applicant.csv

 

    X FL APP AA LA SC LC HON SMS EXP DRV AMB GSP POT KJ SUIT
1   1  6   7  2  5  8  7   8   8   3   8   9   7   5  7   10
2   2  9  10  5  8 10  9   9  10   5   9   9   8   8  8   10
3   3  7   8  3  6  9  8   9   7   4   9   9   8   6  8   10
4   4  5   6  8  5  6  5   9   2   8   4   5   8   7  6    5
5   5  6   8  8  8  4  4   9   5   8   5   5   8   8  7    7
6   6  7   7  7  6  8  7  10   5   9   6   5   8   6  6    6
7   7  9   9  8  8  8  8   8   8  10   8  10   8   9  8   10
8   8  9   9  9  8  9  9   8   8  10   9  10   9   9  9   10
9   9  9   9  7  8  8  8   8   5   9   8   9   8   8  8   10
10 10  4   7 10  2 10 10   7  10   3  10  10  10   9  3   10
11 11  4   7 10  0 10  8   3   9   5   9  10   8  10  2    5
12 12  4   7 10  4 10 10   7   8   2   8   8  10  10  3    7
13 13  6   9  8 10  5  4   9   4   4   4   5   4   7  6    8
14 14  8   9  8  9  6  3   8   2   5   2   6   6   7  5    6
15 15  4   8  8  7  5  4  10   2   7   5   3   6   6  4    6
16 16  6   9  6  7  8  9   8   9   8   8   7   6   8  6   10
17 17  8   7  7  7  9  5   8   6   6   7   8   6   6  7    8
18 18  6   8  8  4  8  8   6   4   3   3   6   7   2  6    4
19 19  6   7  8  4  7  8   5   4   4   2   6   8   3  5    4
20 20  4   8  7  8  8  9  10   5   2   6   7   9   8  8    9
21 21  3   8  6  8  8  8  10   5   3   6   7   8   8  5    8
22 22  9   8  7  8  9 10  10  10   3  10   8  10   8 10    8
23 23  7  10  7  9  9  9  10  10   3   9   9  10   9 10    8
24 24  9   8  7 10  8 10  10  10   2   9   7   9   9 10    8
25 25  6   9  7  7  4  5   9   3   2   4   4   4   4  5    4
26 26  7   8  7  8  5  4   8   2   3   4   5   6   5  5    6
27 27  2  10  7  9  8  9  10   5   3   5   6   7   6  4    5
28 28  6   3  5  3  5  3   5   0   0   3   3   0   0  5    0
29 29  4   3  4  3  3  0   0   0   0   4   4   0   0  5    0
30 30  4   6  5  6  9  4  10   3   1   3   3   2   2  7    3
31 31  5   5  4  7  8  4  10   3   2   5   5   3   4  8    3
32 32  3   3  5  7  7  9  10   3   2   5   3   7   5  5    2
33 33  2   3  5  7  7  9  10   3   2   2   3   6   4  5    2
34 34  3   4  6  4  3  3   8   1   1   3   3   3   2  5    2
35 35  6   7  4  3  3  0   9   0   1   0   2   3   1  5    3
36 36  9   8  5  5  6  6   8   2   2   2   4   5   6  6    3
37 37  4   9  6  4 10  8   8   9   1   3   9   7   5  3    2
38 38  4   9  6  6  9  9   7   9   1   2  10   8   5  5    2
39 39 10   6  9 10  9 10  10  10  10  10   8  10  10 10   10
40 40 10   6  9 10  9 10  10  10  10  10  10  10  10 10   10
41 41 10   7  8  0  2  1   2   0  10   2   0   3   0  0   10
42 42 10   3  8  0  1  1   0   0  10   0   0   0   0  0   10
43 43  3   4  9  8  2  4   5   3   6   2   1   3   3  3    8
44 44  7   7  7  6  9  8   8   6   8   8  10   8   8  6    5
45 45  9   6 10  9  7  7  10   2   1   5   5   7   8  4    5
46 46  9   8 10 10  7  9  10   3   1   5   7   9   9  4    4
47 47  0   7 10  3  5  0  10   0   0   2   2   0   0  0    0
48 48  0   6 10  1  5  0  10   0   0   2   2   0   0  0    0

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
可樂市場細(xì)分研究方案
我國居民消費(fèi)結(jié)構(gòu)的因子分析
調(diào)查整理與分析方法(一)
聚類分析、判別分析、主成分分析、因子分析
市場調(diào)研中調(diào)查問卷的統(tǒng)計(jì)分析方法
R語言常用數(shù)據(jù)類型
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服