主成分分析碎石图_用户体验数据的多维度处理:PC A法及碎石图
无关乎算法原理,本文将从用户体验的角度,着重分析多维度数据处理的降维方法:主成分分析法(PC A)
主成分分析法(PC A):类似SUS,该方法能够将诸多因子如(满意度,可用性,简易性等多指标转化成低维度数据,以数字或图表的形式直观呈现),并介绍反映维度数量与误差性关系的图表–碎石图及其算法(基于PC A)。
前文我们提到了用户体验数据化的广泛例子–系统可用性量表SUS,但是在实际用户体验研究过程中,不光是可用性测量,还涉及易用性,满意度等等其他维度的考量,甚至有些原始数据可能连有哪些维度都是不清晰的,需要研究人员来进行判断。在这种情况下,基于个人经验的判断已经无法适应,我们需要借助计算机与统计学知识来读懂数据以支持产品决策。
笔者并不是理学出身,但基于实际作业的需要,自学了相关课程,感触颇深。如果有线性代数和统计学背景自然是最好的,但是如果不具备,也完全没问题。对于这些方法,如果以产品经理的标准,我们最需要是使用好这些方法,创造价值,所以不用担心。本文将避开算法原理,而重点分析设计逻辑和应用场景。
主成分分析法(PC A)设计逻辑
回顾一下之前的系统可用性量表SUS(详情请看《浅析用户体验数据化》),它本质上是通过投影的方式,将原本两个维度的数据(可用性与易用性)转化在单个轴上。在多维度数据处理中,其核心也是如此也是将:多维度空间的数据通过投影的方式转化在低纬度中。
线性代数告诉我们,如果是单纯的降维,有无数种方式可以进行,难的是在降维过程中,保持原有数据的特征也就是相关性。若两个因子如可用性,易用性是强相关且是线性相关,先假设可用性越高,易用性越高,那么降低维度后,数据集也应当存在这样的特性,甚至能够保持当可用性提高了X%时,易用性也会提高相应的程度。
这里需要注意:数据降维之后一定会损失一定的信息,这没办法避免。PC A做的就是尽量保留主要特征而减弱冗杂信息,所采用的方式是通过让各个原始数据在转化之后,相距尽量大,也就是差异性最明显。
这里先举一个简单例子。比如我们分别给5个产品做了SUS测试得到了每个产品的可用性,易用性指标,我们将其表示在二维图上。
之后我们在将这个两维数据降成一维的。就是找一条轴,然后得到各个产品指标在这个轴上的投影,且满足投影之后的差异性最大。
例如产品A(1,2)和产品B(1,0)的关系就保留在了这条轴上。但如果我们投影在了y轴,A和B就重叠了,就无法比较出A和B哪个更优,即丧失了易用性的比较。而PC A算法保留了这个特性,我们通过处理后的数据可以方便的比较各个产品的优劣。
理论上原本有几个维度的数据,就有几个特征向量。各个特征向量之间正交。也就是说明,通过特征向量转换后的维度之间是相互独立的。详细的会在后面的实例中说明。
这里需要特别指出,PC A方法不适合用于高阶相关性的数据,而适合用于线性相关。但对于一般的智能产品领域,或App,网页等互联网产品,社会学研究等,PC A已经能应对绝大部分情况了。
PC A实际案例分析
我将以一个实际的作业来分析PC A的使用方法和注意点。(笔者是用 Matlab 写的程序)。当然,最重要的不是程序而是理解PC A是怎么回事。先附上代码。
%data 为输入的数据集,行表示项目,项目之间是并行的例如产品1,产品2或者用户1,用户2,
%各列表示描述项目的维度比如,易用性,可用性,满意度等
data = shishen;
% PCA Template to data
% n 为测量的项目数量,p则表示描述的维度数量
[n,p] = size(data);
% PC A运算过程,这里就不再介绍,有兴趣可以参考《Exploratory Data Analysis with MATLAB》 。我这里将原数据集其降成一维。
datac = data – repmat(sum(data)/n,n,1);
covm = cov(datac);
[eigvec,eigval] = eig(covm);
eigval = diag(eigval);
eigval = flipud(eigval);
eigvec = eigvec(:,p:-1:1);
pervar = 100*cumsum(eigval)/sum(eigval);
g =zeros(1,p);
for k = 1:p
for i = k:p
g(k) = g(k) + 1/i;
end
end
g = g/p;
propvar = eigval/sum(eigval);
avgeig = mean(eigval);
ind = find(eigval > avgeig);
l=length(ind);
%P 控制转换成几个维度,若需要转换成X维,则p= eigvec(:,1:x);
P = eigvec(:,1:1);
%dataP 即是最后我们得到的降维之后的数据集
dataP = datac*P;
原数据说明
这里我们收集了80位用户在使用某款App时候,在各个任务环节上使用的时间和整体任务失败率,以此得到用户在这款产品上的易用性数值。在以同样的方式进行对竞品的分析,以处理后的数据进行比较,期望得到有哪些环节是关键并且需要改进,产品优势等其他重要结论。
数据需要具有线性相关性
线性相关是保证我们可以找到投影基准的根本,详细的可以参考线性代数等相关知识。我这里指出一个小技巧,在前期数据收集的时候,可以尽量将数据好和坏变化统一。例如上述的例子,我们认为在任务上的耗时越长,表示产品越差。因此使用项目失败率做指标而不是项目成功率,因为失败率越高表示产品越差,而成功率越高表示产品越好和前面的数据变化相反了。通过这样的处理,PC A算法得到的差异性会更加明显。
PC A处理结果及其意义
将以上数据集,用PC A方法降维后,我们得到以下数据集,将这5维的数据转化成只有一个维度,经过与元数据的比较和转换基的数值,我们发现这个分数是易用性维度上的比较。
通过分析这个单纯的数据表格,我们至少可以得到以下结论
该App具有一定学习成本,新手导引需要改进,项目分布差值广泛
该App在易用性上存在很大改进空间
在中间过程中,我们得到了以下附属的结果
转化矩阵P
转换矩阵p=[0.0535;-0.9984;-0.015;0.0011;9.9375e-05]。(最大特征向量)。这就是降维转换公式,我们之后再其他产品分析中,用相同的转换矩阵降维就能够像系统可用性量表(SUS)一样进行直观的比较分析了。
那么差值是否具有意义?答案是有意义,这里的差值是可以再次进行运算的。因为转化方程是一致的,所投影的空间也是一致的,可行性单位也是固定的。但是需要注意,经过转换后的数据集是无法再还原到原先的数据集的。因此我们虽然能够比出可行性高低,但是在转换到具体的项目上还需要原来数据的处理。
比如我们在这个项目过程中,通过对最高易用性数值与最低数值原数据集的比较,可以得到各个项目的差异大小。例如得到24号用户达到的易用性数值最高,16号用户易用性最小。然后再原数据中寻找,得到哥哥项目的差是【26,-384,9,-5,0.05】,结合转换矩阵p,我们可以窥视到以下信息:
任务1与任务2在设计上存在冲突,若用户项目A上耗时时间短则在项目B上花费的时间就长。理由是:两者转换值为负相关。
任务2,任务1是关键任务,需要在下一版本中着重设计。项目3,4影响不大,非关键任务,用户犯错率基本稳定。理由是:任务1的1s对应的数值是0.0535的数值变化而任务2中的1s对应的是-0.9984的数值变化。两者对于最后的分数的贡献是不一致的。
数据维度-碎石图
但是以上的转换后的数据有多少可信度呢?理论上,所降维度越低则损失的信息越多。那么如何判断应该降低到几维空间中呢?判断方式就是通过转换矩阵(特征向量)的长度。特征向量长就意味着,在这个维度(例如上述的可用性)上的变化明显,相反,若特征值短就意味着,在这个维度上,数据基本没有差异性因此没有分析价值(大家都一样)。先附上程序。
figure, plot(1:length(eigval),eigval,’ko-‘)
title(‘Scree Plot’)
xlabel(‘Eigenvalue Index – k’)
ylabel(‘Eigenvalue’)
由此看到,这个数据集中只存在一个维度上的变化,这就是主要成分。因此降维之后的信息是具有可信度的,保留了原数据70%~95%的信息。(记住就好)
通过碎石图,我们可以快速的明白数据中有哪些维度需要进行分析。这个k就是碎石图中的拐点,代表了数据需要降低到k维空间中,以保留主要信息。
后记
对于产品经理或者非数据挖掘从业者,了解PC A算法将会使你的分析更加精准有效,使结论更具有说服力,作为初期的用户研究绰绰有余。但本文也只是从用户体验这个侧面展示了这个算法的运用。
通过PC A算法我们可以分析出(不止于此)
项目之间的相关性(冲突还是互利)
项目之间的重要层级和所影响的维度
产品主要维度的构成
这些问题凭借简单的直方图等和肉眼是很难察觉的。因此,毫无疑问,一个掌握数据分析的产品经理所能看到的问题必将更加深刻和现实。
参考文献:
《Exploratory Data Analysis with MATLAB》 Wendy L. Martinez, Angel Martinez, Jeffrey Solka
本文由 @kieran 原创发布于人人都是产品经理。未经许可,禁止转载。
给作者打赏,鼓励TA抓紧创作!赞赏
4人打赏
主成分分析碎石图_用户体验数据的多维度处理:PC A法及碎石图相关推荐
- Markdown mermaid种草(9)_ 用户体验地图
Markdown mermaid种草(9)_ 用户体验地图 文章目录 Markdown mermaid种草(9)_ 用户体验地图 1 用户体验地图 2 用户体验地图举例 1 用户体验地图 User ...
- 浅谈用户体验的 4 个维度
本文为PMCAFF作者 SnowDesign 于社区发布 首先,用户体验的 4 个维度为: IX:Interface Experience,人与界面的交互体验 CX:Content Experienc ...
- 用户体验设计师能为seo做_用户体验设计师可以从产品设计历史中学到什么
用户体验设计师能为seo做 Many things have changed from tool design in the prehistoric era to today's digital pr ...
- 精美网页设计案例_用户体验设计的精美艺术
精美网页设计案例 There are interactive experiences that simply blow you away. You know it's been a positive ...
- 心理学专业转用户体验_用户体验设计心理学
心理学专业转用户体验 重点 (Top highlight) Psychology is integral part of User Experience(UX) design process. Und ...
- 用户体验改善案例_用户体验案例研究:建立更好的体验(重新设计“和平航空”网站)...
用户体验改善案例 by Peace Ojemeh (Perrie) 由Peace Ojemeh(Perrie) 用户体验案例研究:建立更好的体验(重新设计"和平航空"网站) (A ...
- 用户研究方法定性定量_用户体验测试:定性测试
用户研究方法定性定量 什么是定性测试? (What is Qualitative Testing?) Qualitative testing-which can take the form of in ...
- ux体验网站 英国_?? 用户体验(UX)资源和工具的完整列表??
ux体验网站 英国 by Jason Hreha 杰森·赫雷哈(Jason Hreha) ?? 用户体验(UX)资源和工具的完整列表?? (?? The Complete List of User E ...
- 用友邮件撤回怎么操作_用户体验原则——“操作可控”
对于用户的误操作,提供二次确认或者撤销的功能,这样可提高用户的操作可控性.好设计应该是值得信任,也容易被相信的.在要求用户执行某一动作时,尽量帮他们理解为什么这个操作是必要的.每一步都需要借助诚实和清 ...
最新文章
- JS对象转URL参数
- SQL语句导入导出大全
- [转]数据结构:图的存储结构之邻接多重表
- 可以把阿里云上面的一些介绍和视频都看看
- Net WebClient 异步批量下载文件
- Kinect+OpenNI学习笔记之12(简单手势所表示的数字的识别)
- Python-OpenCV 处理视频(二): 视频处理
- AFNetwork作用和用法详解
- DDD领域驱动设计理论篇 - 学习笔记
- curPos和tgtPos
- $python数据分析基础——初识numpy库
- tf.keras CNN网络搭建笔记
- python基础语法中处理一组数据所使用的类型有哪些_python基本数据预处理语法函数(2)...
- 深入理解Magento – 第六章 – 高级Magento模型
- python调用github_Python调用GithubAPI并进行初步的数据分析
- 二叉树三种递归和非递归遍历 层序遍历
- 全套安全从业人员必备工具(建议大家收藏这个帖子)
- Vue之ElementUI导航菜单
- 计算机自动关机命令,电脑自动关机命令是什么?你都知道吗?
- python模拟鼠标拖动_python模拟鼠标拖动教程