我想做一些非常简单的事情。 为简单起见,假设我有两组,假设第 1 组中的 N=2,000 和第 2 组中的 N=3,000。 我想计算为每个组收集的变量 Y 的总体平均值。 Y 在第 1 组中的平均值为 4,在第 2 组中为 8。 这里的总体平均值是未加权平均值而不是加权平均值——它应该是 6。 我可能认为我应该为“重量”输入以下值:
第 1 组:5,000/2,000
第 2 组:5,000/3,000
但这些并没有产生预期的数字。 您能帮我理解 Analyze:JMP 中的“权重”选项,并告诉我我需要使用什么权重来解决我的问题吗?
除非我误读了您的帖子,否则查找每个组的平均值的一种方法是使用两列构建数据表,“组”作为名义变量,“Y”作为第二列中的连续变量。 然后运行一个简单的分发平台,在 By 窗口中使用“Group”变量,在 Y,columns 窗口中使用“Y”变量,您将获得两个直方图和汇总统计表,一个对应于“Group”列中的每个值. 您无需费心使用“权重”窗口。
首先,重量不是频率。 如果你知道 Freq 做了什么,那么 Weight 会做一些不同的事情,或者额外的事情。
我想指出以下两篇SAS文章:
用我的话来说,只有当你想改变个人观察如何影响你的分析时才使用权重。 例如,在上面的第二篇文章中,人们可能想要缓和异常值对分析的影响。
因此,无论您是否想使用权重,以及如何使用它,您都可能想问问自己,它会如何影响您的分析以及如何解释这种影响。
在您提供的示例中,按照您的描述,我只能想象您有某种汇总数据,然后您想使用 Weight 来“纠正”来自各个组的汇总统计数据的贡献。 但我不知道有任何 JMP 平台被设计用于处理汇总数据,除了 Help>Sample Index 下的一些工具。 如果您的数据是原始形式,则不需要我同事所说的重量。
我想,我明白你想要什么,但不是它需要什么。 我同意上面的答案,重量可能不是正确的方法。
如果你想简单一点,我会使用两步法,首先计算组均值,然后计算均值的均值(忽略频率)。
所以这意味着您希望每个组平均加权,平均值为 6,请参见第二个屏幕截图。
但是 JMP 中的标准是,每一行具有相同的权重,正如其他人已经指出的那样。 如果您真的需要在一个“堆叠表”中执行此操作,您需要以这种方式计算权重,结果就是您想要的,但是使用更多组可能会变得非常复杂和混乱 - 所以我不推荐.
只是为了说明见下面的脚本。


Names Default To Here( 1 );
// generate example table
dt = New Table( "test weight",
add rows( 5000 ),
New Column( "group", formula( If( Row() > 2000, "B", "A" ) ) ),
New Column( "value", formula( If( Row() > 2000, Random Normal( 8, 1 ), Random Normal( 4, 1 ) ) ) ),
New Column( "weight", formula( If( Row() > 2000, 5000 / 6000, 5000 / 4000 ) ) ),
New Column( "mean", formula( Col Mean( :value ) ) ),
New Column( "group mean", formula( Col Mean( :value, :group ) ) )
);
dt << add properties to table(
{new script(
"By Distribution",
Distribution( Stack( 1 ), Continuous Distribution( Column( :value ), Horizontal Layout( 1 ), Vertical( 0 ) ), By( :group ) )
), new script(
"Weighted Distribution",
Distribution( Stack( 1 ), Continuous Distribution( Column( :value ), Horizontal Layout( 1 ), Vertical( 0 ) ), weight( :weight ) )
)}
);
dt_sum = dt << summary( subgroup( :group ), Mean( value ) );
dt_sum << New Column( "all mean", Formula( Mean( :"Mean(value, A)"n, :"Mean(value, B)"n ) ) );