python进行对应分析_机器学习算法---对应分析
--------僅用于個人學習知識整理和sas/R語言/python代碼整理
--------該文章首發于csdn 正在遷移優化文章中
1.前言
對應分析,主要適用于有多個類別的分類變量,可以揭示同一個變量各個類別之間的差異,以及不同變量各個類別之間的對應關系(簡介摘錄自:https://www.jianshu.com/p/77a0d15f0336)
以下通過實際例子 使用sas及r語言 進行實現,以及附上對應分析圖的解讀方式(沒有找到python的實現方式,如果有,請不吝賜教!)
2.sas實現
2.1 源數據準備
以下數據全為測試虛構數據,只用來說明數據格式及輔助圖的解讀
輸入數據集為以下交叉表格式,每一個數據代表該組別該變量的人數,假設這里要看五組人群和變量之間的關系,得到交叉表如下:
2.sas對應分析
sas對應分析主要使用proc corresp過程步,在進行對應分析是var參數需要輸入所有變量名,所以先將所有變量放入宏變量中,實現代碼如下:
proc contents data=rawdata out=cont noprint;run;
proc sql noprint;
select kcompress("'"||name||"'")||"n " into : name3 separated by ' ' from cont where name^='CLUSTER' and
name^='cluster' and name^='class' and name^='right';
quit;
/*打印宏變量*/
%put &name3.;
/*進行對應分析*/
proc corresp data=rawdata print=percent observed cellchi2 rp cp
short outc=data_out plot(flip);
var &name3;
id class;
run;
%plotit(data=duiying.data_out,datatype=corresp,plotvars=Dim1 Dim2,color=black,href=0,vref=0)
/*繪制對應分析圖; %plotit中指定的參數分別是輸入數據集名稱、數據類型、繪圖的變量名,坐標軸的顏色
和參考線。用前面的輸出數據集results中兩個變量Dim1 Dim2繪圖*/
run;
3.對應分析圖解讀
首先可以看到,第一維度解釋了65.41%,第二維度解釋了24.92%,說明在兩個維度上,能夠說明數據的90.33%
對應分析圖有很多種解讀的方法,附上一篇很詳細的對應分析圖詳解:
我們一般會使用向量分析,即看和這個人群比較關聯的產品是哪些,在下圖中,如果要看和a人群比較關聯的label,會從原點出發,向a的方向畫一個向量(原點到a的方向作為向量正向),然后每個產品點向這條直線做垂線,垂足和a點的正向越近,表示和a越關聯
3.r語言實現
r語言主要使用ca包中的ca函數
ca_data
ca_data2
row.names(ca_data2)
library(ca)
plot(ca(ca_data2),dim = c(1,2),xlim=c(-1,1),ylim=c(-1,1), pch = c(16, 1, 17, 24))
文章一開始發在了csdn上,會有水印,之后的文章都會在知乎發表
總結
以上是生活随笔為你收集整理的python进行对应分析_机器学习算法---对应分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: atoll找不到标识符c语言,C/C++
- 下一篇: python ftplib_python