十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SPSS实例PDF复现:相关性聚类、数据分拆与Python对拍

SPSS实例PDF复现:相关性聚类、数据分拆与Python对拍 简介这是一份面向社会科学、市场研究、健康科学与教育等领域学习者与从业者的SPSS实战资料适合具备基础统计概念、希望把软件操作与真实分析流程打通的初中级用户。内容围绕数据导入与预处理、描述性统计、t检验与方差分析、线性与逻辑回归、K-means与层次聚类、判断树与随机森林、时间序列分析等典型任务展开逐例演示从缺失值处理、异常值检查到建模与结果解读的完整链路帮助读者把统计方法落到实际决策与课题研究中。资源包为pdf格式共1个文件压缩包约11.92MB单册文档便于在电脑或平板上连续阅读与检索无需额外安装配套素材即可对照练习。目前已有4079人学习下载说明其在同类工具书中有一定参考度书中的实例导向写法能帮读者建立规范的分析习惯理解结果如何服务于政策制定与企业发展并在动手过程中积累可迁移的排错与建模思路。1. 一份实例详解 PDF 最值钱的地方不是菜单路径很多人拿到一份 SPSS 数据分析实例详解 PDF第一反应是照着截图点菜单结果第二步就卡住示例数据是自带的还是要自己造菜单名字跟手头版本对不上跑出来几页表格密密麻麻看不出哪一行才是结论。这份材料真正的价值在于把统计思维落到具体业务问题上——一个电商场景里它解释了为什么先做描述统计再谈相关性分析为什么聚类之前必须标准化为什么 p 值小于 0.05 不等于这个变量值得写进结论。IT 从业者接手数据分析需求时缺的通常不是工具操作而是这条判断链路。下面按「把示例还原成能跑的数据 → 复现相关性分析与聚类分析 → 用数据分拆文件扩展到多分组场景 → 用 Python 对拍复核」走一遍每一步都给能直接抄的语法和参数。2. 从 SPSS 实例 PDF 到可运行数据集导入、变量视图与测量尺度校准一份 PDF 里的示例通常是「表格截图 结论描述」没有附带数据文件。要复现第一步就是把这些表格还原成结构化数据第二步是在变量视图里把测量尺度定对。这两步做错后面的相关性分析、聚类分析全是白跑。2.1 用 pdfplumber 把 PDF 里的示例表还原成 CSVPDF 解析表格有两条路表格带明显框线的用 pdfplumber 的 extract_tables只有空白对齐、没有框线的得退化成按坐标切列。多数实例详解 PDF 属于前者因为它本身就是从 Word 或 LaTeX 排版出来的。import pdfplumber import pandas as pd records [] with pdfplumber.open(spss_cases.pdf) as pdf: # 只处理带示例数据的那几页避免把结论表也混进来 for page in pdf.pages[12:20]: for table in page.extract_tables( table_settings{ vertical_strategy: lines, # 用框线定位列 horizontal_strategy: lines, snap_tolerance: 3, } ): records.extend(table) header, body records[0], records[1:] df pd.DataFrame(body, columnsheader) df df.dropna(howall) # 丢掉纯空行 df.columns [c.strip().replace(\n, ) for c in df.columns] df.to_csv(cases.csv, indexFalse, encodingutf-8-sig) print(df.shape, df.dtypes.to_dict())逻辑说明extract_tables返回的是「页 → 表 → 行 → 单元格」四层嵌套直接摊平成一维行列表再把第一行当表头。vertical_strategy改用text会按字符间距猜列边界表格没框线时才用得上代价是数字和文字容易串列。参数上snap_tolerance控制多近的线段算同一条线PDF 缩放比例不同要微调一般 3 到 5。输出用utf-8-sig是为了让 Excel 直接双击打开不乱码。提示还原出来的数字列默认是字符串「1,234」「12.5%」这类格式要显式清洗否则导入 SPSS 后整列变成名义变量。2.2 变量视图里测量尺度怎么定决定后面能跑哪些分析SPSS 的「测量」列只有三个取值名义、有序、标度。它不是标签而是直接决定哪些过程能调用这个变量——聚类分析只吃标度变量卡方检验只吃名义或有序变量把标度错设成名义K-Means 会直接把它排除在外。2.2.1 名义、有序、标度的判定顺序判定顺序建议固定成三步能不能比大小 → 差值有没有意义 → 零点有没有意义。只能分类不能排序的渠道、性别、城市是名义能排序但差值不可解释的满意度五级、信用等级是有序差值和比值都能解释的金额、件数、时长是标度。2.2.2 李克特量表被当成标度是最高频的误判实例 PDF 里最常见的坑是把「非常不满意到非常满意」的 1~5 分直接按标度变量丢进相关性分析。单个题项严格来说是有序变量用 Pearson 系数是有争议的实务里如果量表是多个题项加总或取均值得到的综合分可以按标度处理单个题项则优先用 Spearman。这条规则写进变量视图的备注里下次别人接手不会踩同样的坑。变量名业务含义数据类型测量尺度常见误判channel销售渠道字符串名义编码成 1/2/3 后当数值算均值satisfaction单题满意度数值有序直接跑 Pearsonamount订单金额数值标度未剔除负数退款单repurchase是否复购数值 0/1名义当标度算相关系数freq月购买频次数值标度未检查极端值2.3 用语法建数据字典别靠鼠标一个个点数据字典包括变量标签、值标签、缺失值定义三块。鼠标点一遍能跑但换台机器、换批数据就得重点一次。用语法把这三块固化下来几十行的东西后续所有分析都建立在同一套定义上。GET DATA /TYPEXLSX /FILED:\data\cases.xlsx /SHEETname Sheet1 /CELLRANGEfull /READNAMESon /ASSUMEDSTRWIDTH32767. EXECUTE. VARIABLE LABELS channel 销售渠道 amount 订单金额(元) satisfaction 满意度(1-5) freq 月购买频次. VALUE LABELS channel 1 自营App 2 小程序 3 第三方平台. MISSING VALUES amount satisfaction freq (LO THRU -1). VARIABLE LEVEL channel (NOMINAL) repurchase (NOMINAL) /satisfaction (ORDINAL) amount freq (SCALE). EXECUTE.逻辑说明/READNAMESon表示首行当变量名/ASSUMEDSTRWIDTH32767给字符串列留足宽度避免长渠道名被截断。VARIABLE LEVEL就是前面说的测量尺度设置写在语法里比在变量视图里点更不容易漏。MISSING VALUES ... (LO THRU -1)把负数统一当缺失这条规则尤其适合电商数据——退款、冲正、测试单经常用负数表示不处理会直接污染均值和聚类中心。3. SPSS 相关性分析与聚类分析的实例复现菜单能做的语法更好复现相关性分析和聚类分析几乎是每份实例 PDF 的固定组合。前者用来筛变量后者用来分客群。难点不在点哪个菜单而在参数默认值往往不是你要的那个。3.1 相关性分析三个必调参数双尾、成对剔除、散点图CORRELATIONS /VARIABLESamount freq satisfaction /PRINTTWOTAIL NOSIG /MISSINGPAIRWISE /MATRIXOUT(*). GRAPH /SCATTERPLOT(MATRIX)amount freq satisfaction /MISSINGLISTWISE.逻辑说明与参数/PRINTTWOTAIL双尾检验是默认行为做探索性筛选时保持双尾只有当业务上明确只关心单向关系时才换ONETAIL。/MISSINGPAIRWISE成对剔除每一对变量只用两者都非缺失的样本算系数。默认的LISTWISE是整行剔除只要有一个变量缺失就丢掉整条记录样本量掉得很快。但要注意成对剔除会让相关系数矩阵的各格基于不同样本做后续矩阵运算比如因子分析时可能出非正定矩阵这时必须换回LISTWISE。/MATRIXOUT(*)把相关矩阵输出成数据集方便后续在 Python 里对拍。NOSIG是不打印显著性标记做正式报告时反而要去掉这个选项保留显著性标记。注意相关系数对异常值极度敏感一个把金额多打两个零的订单就能把 Pearson 系数从 0.3 拉到 0.8。跑之前先看箱线图和 Z 分数|Z| 大于 3 的记录单独确认。3.2 聚类分析先系统聚类定簇数再 K-Means 落地实例 PDF 里常见的做法是直接 K-Means 里填个 3 或 4这个数字往往没有依据。更稳的流程是两步先用系统聚类看树状图判断合理簇数再用 K-Means 做正式划分。* 第一步标准化聚类前必须做否则金额的量纲会压死频次。 DESCRIPTIVES VARIABLESamount freq satisfaction /SAVE /STATISTICSMEAN STDDEV MIN MAX. * 第二步Ward 法系统聚类看谱系图定簇数。 CLUSTER Zamount Zfreq Zsatisfaction /METHOD WARD /MEASURESEUCLID /PRINT SCHEDULE /PLOT DENDROGRAM /SAVE CLUSTER(2 5). * 第三步K-Means 正式划分并保存距离用于评估。 QUICK CLUSTER Zamount Zfreq Zsatisfaction /MISSINGLISTWISE /CRITERIACLUSTER(4) MXITER(50) CONVERGE(0) /METHODKMEANS(NOUPDATE) /SAVE CLUSTER DISTANCE /PRINT ID(amount) INITIAL ANOVA.逻辑说明/SAVE在 DESCRIPTIVES 里会把 Z 分数存成新变量命名规则是原变量名前加 Z所以后面直接引用Zamount。CLUSTER的/METHOD WARD是最小方差法倾向于产出大小相近的簇适合业务分群/MEASURESEUCLID是欧氏距离平方配合 Ward 使用。/SAVE CLUSTER(2 5)一次性保存 2 到 5 簇的解后面用交叉表比较哪种划分更可解释。QUICK CLUSTER里的CONVERGE(0)表示收敛判据取默认值NOUPDATE是迭代过程中不更新簇中心速度快但结果依赖初始中心数据量大时用UPDATE牺牲时间换稳定。/SAVE DISTANCE保存每个样本到所属簇中心的距离这是后面算轮廓系数的原料。3.3 输出表怎么看别只看 p 值输出内容该看什么常见误读相关矩阵系数符号、绝对值、星号只看星号忽略 0.15 这种「显著但无意义」谱系图纵轴距离突增的位置把最长那根枝当成唯一答案ANOVA 表各变量 F 值是否都大F 值小的变量其实没参与区分最终簇中心中心在原始量纲下的含义拿 Z 分数直接向业务解释系统聚类的谱系图看的是「合并距离跳变」不是看谁排在上面。如果从 3 簇合并到 2 簇时距离突然翻倍3 是合理选择。K-Means 输出的 ANOVA 表里如果某个变量的 F 值很小说明这个变量在各簇之间几乎没有差异它对分群的贡献可以忽略考虑把它从模型里拿掉重新跑。4. SPSS 数据分拆文件的正确用法让一份实例覆盖多个渠道分组同一套分析要按渠道、地区、客群分别出一遍重复点菜单点到手酸。SPSS 的数据分拆文件Split File就是干这个的但它的行为跟很多人想的不一样。4.1 SORT CASES SPLIT FILE 是固定组合SORT CASES BY channel (A). SPLIT FILE LAYERED BY channel. DESCRIPTIVES VARIABLESamount freq satisfaction /STATISTICSMEAN STDDEV MIN MAX. SPLIT FILE OFF. EXECUTE.逻辑说明SORT CASES必须在拆分之前执行因为分层拆分要求数据按拆分变量排好序否则同一渠道的记录会被切成好几段输出里出现重复的层。SPLIT FILE LAYERED BY是把各分组的统计量放在同一张表的上下层便于横向比较SPLIT FILE SEPARATE BY则是每个分组单独出一张表适合导出给不同业务方。SPLIT FILE OFF一定要写不然拆分状态会一直挂着后面所有分析都被悄悄分组这是新手最常犯的错误之一。关键字输出形态适用场景LAYERED BY同一张表分层堆叠组间对比、写进同一份报告SEPARATE BY每组独立表格分发给不同业务方OFF取消拆分后续全局分析前必写4.2 分组描述统计与交叉表分拆状态下的交叉表是最能体现价值的输出。渠道和是否复购的关系一次性把卡方检验、行百分比、期望频数都带出来。CROSSTABS /TABLESchannel BY repurchase /STATISTICSCHISQ PHI /CELLSCOUNT ROW COLUMN EXPECTED /COUNT ROUND CELL.逻辑说明CHISQ输出皮尔逊卡方和似然比卡方PHI输出列联系数用来衡量关联强度。/CELLS里EXPECTED期望频数必加因为卡方检验的前提是每个格子期望频数不小于 5低于这个值检验结果不可靠需要合并类别。ROUND CELL控制小数位。4.3 拆分状态下的三个坑第一拆分叠加其他筛选条件时空组会被跳过输出层数和预期不一致排查时先用FREQUENCIES单独确认每个渠道的样本量。第二拆分状态下新建的变量比如SAVE出来的 Z 分数是按组内计算的不是在全体样本上算的——这通常是你想要的但如果后续要做跨组比较必须先SPLIT FILE OFF重新算一遍。第三拆分状态忘记关闭接着跑的相关性分析就变成「每个渠道内部的相关性」样本量骤减系数波动很大却没人注意到。5. 用 Python 对拍 SPSS 结果顺带解决 PDF 图表的中文字体SPSS 的结果要拿去做报告就得能被人复核。最省事的复核方式是把同一份数据丢给 Python 算一遍两边对上再发结论。5.1 相关系数与 K-Means 的对拍脚本import pandas as pd from scipy import stats from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans df pd.read_csv(cases.csv) sub df[[amount, freq, satisfaction]].dropna() # 皮尔逊系数逐对计算对应 SPSS 的 PAIRWISE for a, b in [(amount, freq), (amount, satisfaction)]: r, p stats.pearsonr(sub[a], sub[b]) print(f{a}-{b}: r{r:.4f}, p{p:.4f}) # K-Means 对拍随机种子固定才能复现 X StandardScaler().fit_transform(sub) km KMeans(n_clusters4, n_init10, random_state42).fit(X) print(pd.Series(km.labels_).value_counts().sort_index())逻辑说明pearsonr在 scipy 里默认就是逐对剔除跟 SPSS 的PAIRWISE对齐前提是喂进去的sub已经去掉了缺失行。StandardScaler对应 SPSS 里的 Z 分数均值和标准差算法一致结果能对上小数点后三位。random_state固定后 K-Means 可复现但簇编号和 SPSS 不一定相同比较的是各簇中心和簇大小不是标签值本身。5.2 结果对不上时的排查顺序现象优先排查处理相关系数差很多缺失值处理方式统一成整行剔除再比系数差在小数点后数值精度或舍入两边都保留 6 位再比簇大小完全不同标准化口径确认是按全体还是按组标准化簇数对不上初始中心用 SPSS 输出的初始中心喂给 Python5.3 图表导出 PDF 的中文乱码与字体嵌入SPSS 图表导出成 PDF 时中文偶尔变成方框或问号根因是导出时没有嵌入中文字体。常见做法是在导出对话框的 Chart Export 选项里指定字体选一个系统里确定存在的中文字体思源黑体、微软雅黑这类并勾选字体嵌入如果走的是「打印成 PDF」的路径就把打印驱动里的字体替换关掉避免驱动把中文字体替换成 Helvetica。验证方法很简单导出后用 PDF 阅读器搜一下中文关键字搜不到就说明字体只是被画成了图形后续别人复制文字会用不了。导出前把语法文件、CSV 数据和导出的 PDF 放在同一个目录命名带上日期。同一份分析三个月后要改口径重跑直接改语法里的两三行参数就行比重新翻 PDF 截图快得多。本文还有配套的精品资源点击获取
返回列表