다변량데이터시각화하기
이예제에서는다양한통계적플롯을사용하여다변량데이터를시각화하는방법을보여줍니다。많은통계량분석이두개의변수,즉한개의예측변수와한개의응답변수를사용합니다。이러한데이터는2차원산점도플롯,이변량히스토그램,상자플롯등을사용하여쉽게시각화할수있습니다。또한3차원산점도플롯을사용하거나2차원산점도플롯에색상등으로인코딩된세번째변수를함께사용하여삼변량데이터를시각화할수도있습니다。그러나많은데이터세트가다수의변수를포함하고있어서바로시각화하기가더어렵습니다。이예제에서는MATLAB®에서统计和机器学习工具箱™를사용하여고차원데이터를시각화하는몇가지방법을살펴봅니다。
이 예제는carbig
데이터셋을사용합니다。400年이데이터셋은약대의1970년대,1980년대자동차에서측정한다양한변수를포함하고있습니다。연료효율(갤런당마일주행거리(MPG),가속도(完成도달시간,초),엔진배기량(입방인치),중량,마력에대한값을사용하여다변량시각화를살펴보겠습니다。관측값은기통개수를사용하여그룹화하겠습니다。
负载carbigX = [MPG,加速度,位移,重量,马力];varNames = {“英里”;“加速”;“位移”;“重量”;“马力”};
산점도플롯행렬
더낮은차원의부분공간을슬라이스로표시하는것은2차원또는3차원이가지는제한을부분적으로해결하는한방법입니다。예를들어,gplotmatrix
함수를사용하면5개변수사이의이변량산점도플롯을각변수에대한일변량히스토그램과함께배열형태로표시할수있습니다。
图gplotmatrix (X,[],气缸,“c”“b”“米”‘g’“r”],[][],假);文本([。08 .24 .43 .66 .83], repmat(- 0.1,1,5), varNames,“字形大小”8);文本(repmat(点1 5),(。86 . 82 . 82], varNames,“字形大小”8“旋转”, 90);
각산점도플롯의점은기통개수에따라각기다른색으로구분됩니다。4 .기통은파란색,6 .기통은녹색,8 .기통은빨간색으로.시됩니다。5기통자동차도몇대있으며회전식엔진자동차는3기통으로시되었습니다。이플롯배열을통해변수쌍간의관계속패턴을쉽게파악할수있습니다。하지만더높은차원에중요한패턴이있을수있는데이플롯으로는그러한패턴을쉽게인식할수없습니다。
평행좌@ @플롯
산점도플롯행렬은이변량관계만@ @시합니다。그러나,모든변수를함께표시하는다른대안이있으며,이방법을통해변수간에더높은차원의관계를조사할수있습니다。가장간단한다변량플롯은평행좌@ @플롯입니다。이플롯에서는일반적인카테시안그래프에서처럼직교축을사용하는대신좌표축이모두가로로놓여있습니다。각각의관측값은플롯에서일련의연결된선분으로@ @현됩니다。예를들어4기통6기통,8기통자동차에대한플롯을생성하고관측값의그룹은색으로구분할수있습니다。
Cyl468 = ismember(气缸,[4 68]);parallelcoords (X (Cyl468:)“集团”气缸(Cyl468),...“标准化”,“上”,“标签”varNames)
이플롯에서가로방향은좌` ` ` ` `축을나타내며,세로축은데이터를나타냅니다。관측값은각각5개변수에대한측정값으로구성됩니다。각관측값은높이로` ` `현되고그에대응하는선들은각좌` ` ` `축을가로지릅니다。5개변수는서로크게다른범위를가지기때문에이플롯은표준화된값으로생성되었으며,여기서각변수는평균과0단위분산을갖도록표준화되었습니다。서로다른색으로구분된이그래프를보면8기통자동차는전반적으로MPG,가속도의값이낮고배기량,중량,마력의값을높음을알수있습니다。
그룹마다다른색을사용했더라도평행좌표플롯에많은수의관측값이표시되어있으면읽기가어려울수있습니다。각그룹마다중앙값과분위수(25%점점및75%)만표시되는평행좌표플롯을생성할수도있습니다。그러면그룹간의일반적차이점과유사성을더쉽게구분할수있습니다。그러나각그룹마다가장흥미로운이상값이있을수있는데이플롯에서는이러한이상값을전혀표시하지않습니다。
parallelcoords (X (Cyl468:)“集团”气缸(Cyl468),...“标准化”,“上”,“标签”varNames,分位数的或25)
앤드류스(安德鲁斯)플롯
또다른유사한유형의다변량시각화로는앤드류스플롯이있습니다。이플롯은각관측값을구간[0,1]에서매끄러운함수로나타냅니다。
andrewsplot (X (Cyl468:)“集团”气缸(Cyl468),“标准化”,“上”)
각함수는푸리에급수이며계수는그에대응하는관측값의값과같습니다。이예제의푸리에급수는총5개의항,즉상수1개항주기가각각과1 1/2인사인항2개,사인항과유사한코사인항2개를가집니다。앞3개의항으로인해함수의형태에나타나는영향은앤드류스플롯에서가장명확히나타나므로처음세개변수의패턴이가장쉽게인식되는경향이있습니다。
t = 0에서그룹간뚜렷한차이가있으며,이는첫번째변수MPG 4가기통,6기통,8기통자동차간에구분이되는특징중하나임을나타냅니다。더흥미로운점은약t = 1/3에서보이는세그룹간의차이입니다。이값을앤드류스플롯함수공식에대입하면그룹들을구별하는변수의일차결합을정의하는계수집합을얻게됩니다。
T1 = 1/3;(1 /√(2)罪(2 *π* t1)因为(2 *π* t1)罪(4 *π* t1)因为(4 *π* t1))
Ans = 0.7071 0.8660 -0.5000 -0.8660 -0.5000
이계수를보면4기통자동차는MPG,가속도의값이더높고배기량,마력,특히중량의값이더낮으며8기통자동차는그반대라는것을알수있으며,이런차이점을통해4기통자동차기와8통자동차를구분할수있습니다。이는평행좌@ @플롯에서도출한결론과도동일합니다。
그림문자플롯
다변량데이터를시각화하는또다른방법은"그림문자“를사용하여차원을나타내는것입니다。함수glyphplot
은두가지유형의그림문자,즉별과체르노프얼굴을지원합니다。예를들어,다음은자동차데이터의처음9개모델에대한별플롯입니다。별에서각축(说话)은하나의변수를나타내고축길이는각관측값에서해당변수의값에비례합니다。
h = glyphplot(X(1:9,:),“字形”,“星”,“varLabels”varNames,“obslabels”、模型(1:9,:));集(h (:, 3),“字形大小”8);
MATLAB의이플롯은라이브图창에서데이터커서를사용하여데이터값을대화형방식으로탐색할수있습니다。예를들어,福特都灵별플롯의오른쪽점을클릭하면MPG값이17임이표시됩니다。
그림문자플롯및다차원스케일링
특정한순서없이그리드에별플롯을플로팅하면인접한별플롯이상당히다른모양으로표시되므로혼동을일으키图가는생성될수있습니다。따라서,눈으로확marketing할수있는매끄러운패턴이없을수있습니다。다차원스케일링(mds)을그림문자플롯과함께사용하면유용한경우가많습니다。이를설명하기위해먼저1977년도자동차를모두선택한후zscore
함수를사용하여5개변수각각을평균0과단위분산을갖도록준화하겠습니다。그런다음,이렇게표준화된관측값간의유클리드거리를비유사성척도로계산할수있습니다。이선택은실제사례에적용하기에는지나치게단순할수있지만,여기서설명하는용도로는충분합니다。
models77 = find((Model_Year==77));dissimilarity = pdist(zscore(X(models77,:)));
마지막으로,mdscale
을사용하여원래고차원데이터간의비유사성에대한근삿값을점간거리로하는일련의위치를2차원에생성하고이위치를사용하여그림문자를플로팅합니다。이2차원플롯에서거리는데이터를대략적으로만재현할수있지만,이유형의플롯에서는이정도로충분합니다。
Y = mdscale(dissimilarity,2);glyphplot (X (models77:)“字形”,“星”,“中心”, Y,...“varLabels”varNames,“obslabels”模型(models77:),“半径”5);标题(“1977车型年”);
이플롯에서는mds를차원축소방법으로사용하여2차원플롯을생성했습니다。일반적으로이는정보의손실을의미할수있지만,그림문자를플로팅함으로써데이터에있는모든고차원정보를포함시켰습니다。MDS를사용하는목적은그림문자플롯간패턴을쉽게확인할수있도록데이터의변동성에규칙성을부과하는것입니다。
앞의플롯과마찬가지로、라이브图창에서대화형방식의탐색이가능합니다。
그림문자플롯의또다른유형은체르노프얼굴입니다。이그림문자플롯은각관측값의데이터값을얼굴의특징(예:얼굴크기,얼굴모양,눈의위치등)으로인코딩합니다。
glyphplot (X (models77:)“字形”,“脸”,“中心”, Y,...“varLabels”varNames,“obslabels”模型(models77:));标题(“1977车型年”);
여기,서가장뚜렷한두가지특징인얼굴크기와상대적인이/턱마크기는MPG와가속도를인코딩하는반면,이마모양과턱모양은배기량과중량을인코딩합니다。눈사이의너비는마력을코딩합니다。주목할만한점은넓은이마와좁은턱을가지거나그반대인얼굴이거의없다는것입니다。이는배기량및중량변수간에양의선형상관관계가성립됨을나타냅니다。이는산점도플롯행렬에서도확된사항입니다。
변수에대한특징의대응관계에따라어떤관계를가장쉽게볼수있는지가결정되며glyphplot
을사용하면선택항목을손쉽게변경할수있습니다。
关闭