有很多因素使 SAS 成为一个理想的工作场所。 对我来说,选择在 SAS 工作时最喜欢的事情很容易:现场托儿服务。 我有两个孩子都在现场托儿所和学前班,老师和设施真的很棒。 另外,只要知道他们整天都在附近就很棒(忽略上下班路上偶尔的崩溃)。 由于我的大女儿刚刚开始上学,我有很多机会来反思我有多喜欢让他们在校园里。
去年,我女儿的一位学前班老师为班上的每个孩子做了一个棋盘游戏。 该游戏非常适合帮助孩子学习玩棋盘游戏:每转一圈,您掷骰子并沿着棋盘移动,直到有人到达终点线。 当然,棋盘上装饰着流行动画人物的贴纸,以帮助吸引学龄前儿童的注意力。 只有一个问题:我似乎总是输。 我可以用吗JMP弄清楚发生了什么? 更好的是,我可以使用一些JMP 14 中的新功能?
I always lose playing this homemade board game. My daughter's hippo has a big early lead on my dolphin here.I always lose playing this homemade board game. My daughter's hippo has a big early lead on my dolphin here.I always lose playing this homemade board game. My daughter's hippo has a big early lead on my dolphin here.I always lose playing this homemade board game. My daughter's hippo has a big early lead on my dolphin here.我总是输掉这个自制的棋盘游戏。 我女儿的河马在这里对我的海豚有很大的领先优势。
数据
为什么我总是输? 我的女儿能更好地掷骰子吗? 让我们希望她没有作弊。 追根究底应该很容易:我们会玩几场比赛,我会为我女儿和我自己记录每一个回合的结果。 数据集中的每一行将记录谁滚动了什么 (1,2,..., 6)。 如果我使用我的数据建立一个模型并且玩家产生了显着的影响,我就会知道有什么事情发生了。
A snapshot of the data.A snapshot of the data.A snapshot of the data.A snapshot of the data.数据快照。收集到我的数据(我们每个人大约 60 转),我只需要为“滚动”构建一个模型作为“玩家”的功能。 由于 Roll 只需要六个离散值(每个值都具有相等的概率......我希望),我可能不应该做一个传统的 ANOVA,它假设响应是正态分布的。 相反,我们可以建立一个有序逻辑回归模型,因为响应具有自然顺序。 幸运的是,JMP 涵盖了我们。 JMP在 Fit Model 中具有 Ordinal Logistic 个性,在 Fit Model 中具有广义回归 (Genreg) 平台JMP 专业版在版本 14 中增加了对序数逻辑回归的支持。 出于本文的目的,我们将专注于 Genreg,因为它提供了一些强大的功能(我们将在后续文章中看到)。
在 Genreg 中构建序数逻辑模型很容易。 在“拟合模型”对话框中,我们将 Roll 指定为响应,将 Player 指定为唯一的模型效果。 然后我们从 Personality 下拉菜单中选择“Generalized Regression”。 由于 Roll 列具有 Ordinal 建模类型,因此模型对话框知道默认情况下使分布 Ordinal Logistic。 如果响应列没有序数类型,我们将无法选择 Ordinal Logistic。
Launch Genreg from the Fit Model dialog in JMP Pro.Launch Genreg from the Fit Model dialog in JMP Pro.Launch Genreg from the Fit Model dialog in JMP Pro.Launch Genreg from the Fit Model dialog in JMP Pro.从 JMP Pro 的拟合模型对话框中启动 Genreg。
结果
那么结果如何呢? 由于序数回归对 JMP 来说并不陌生,因此我不会过多地介绍我们所拟合的模型。 相反,您可以查看JMP 文档或者加州大学洛杉矶分校数字研究与教育研究所网站了解更多信息。 我们在找什么? 如果我女儿的系数是负数并且与零显着不同,我知道我有问题。 这表明我的女儿比我更有可能掷出更大的数字。 查看模型输出,我发现她的系数为负 (-.458),但 p 值 (.31) 在任何合理的测试水平上都不显着。 这意味着在我录制的游戏中,她往往会比我投出更好的数字,但不会超出预期。 预测刻画器是查看模型告诉我们什么的好方法。 概率线是对角线,因为可怜的老爸更有可能掷出 1、2 或 3 等较低的数字。
Ordinal Logistic ResultsOrdinal Logistic ResultsOrdinal Logistic ResultsOrdinal Logistic Results序数逻辑结果
我们的反应有一个明显的顺序:二比一好,三比二好,依此类推。 但是我们可以忽略该信息并将响应视为具有名义建模类型。 Genreg 现在也可以处理这种情况,因为我们添加了对版本 14 的多项分布的支持。 当我们拟合序数模型时,包括玩家效应在内的模型只贡献了一个参数。 对于多项式,玩家效应为我们的模型贡献了五个参数——除了最后一个之外,我们的响应的每个级别都有一个参数。 这使得多项模型比序数模型更灵活,但如果我们开始向模型添加太多效应,模型很快就会变得不稳定。 正如我们在模型输出中看到的那样,多项模型并不表明存在显着的玩家效应。
Multinomial results - still no evidence that my daughter is better with the die.Multinomial results - still no evidence that my daughter is better with the die.Multinomial results - still no evidence that my daughter is better with the die.Multinomial results - still no evidence that my daughter is better with the die.多项结果 - 仍然没有证据表明我的女儿在模具方面做得更好。
如果她不作弊,我为什么一直输?
两种模型都没有表明我的女儿在掷骰子时具有显着优势,那为什么我总是输呢? 在我们家,我们玩游戏有一个规则:最小的玩家先玩。 而且棋盘上只有 22 个空格,谁先走,谁先到达目标就具有相当大的优势。 对于这样一个简单的游戏,很容易编写一个 JSL 程序来模拟游戏并估计第一个玩家获胜的可能性。 对于我们的游戏,看起来第一个玩家有大约 62% 的获胜机会。 所以我会输掉大约三分之二的比赛。 这听起来很对。 出于好奇,我一路走到棋盘上的 100 格,第一个玩家仍然有 55% 左右的可观优势。
Simulated probability that the player who goes first will winSimulated probability that the player who goes first will winSimulated probability that the player who goes first will winSimulated probability that the player who goes first will win先走的玩家获胜的模拟概率
想亲自尝试吗?
获取数据表其中包括用于重现我的结果的脚本和一个模拟获胜概率的模拟脚本。
寻找后续!
我们在JMP 专业版在这里解决一个非常重要的问题:为什么我在女儿的棋盘游戏中输了的谜团。 那么我为什么要使用 Genreg 来分析这些数据呢? 你必须检查我的下一篇文章找出答案。 但这里有一个提示:对于更大的问题,这些模型特别容易过拟合,这使得交互式变量选择工具在 Genreg 中特别有用。