いくつか(22?)のサンプルからのデータがありますが、サンプルサイズはかなり異なります。 サンプルが大きいほどパラメーターがより適切に推定されることは理解していますが、それはここで取り上げたい問題ではありません。 それは、サンプルサイズがグループ/サンプル間で異ならないかのように、分布のグラフ化とパラメーターの推定の両方を行いたいということです。 つまり、大きなサンプルは重み付けを解除し、小さなサンプルは重み付けを解除する必要があります。
次のように、「Fit Y by X」でこれを実行しようとしました。グループのサンプルサイズを合計サンプルサイズで割ったものとして、新しい変数WEIGHTを計算しました。 それで、私には4つのグループがあるとしましょう。
グループ1:N1 = 100
グループ2:N1 = 500
グループ3:N1 = 200
グループ4:N1 = 400
また、グループ1と2はタイプ1であり、グループ3と4はタイプ2です。
重量は次のようになります。
グループ1:100/1200
グループ2:500/1200
グループ3:200/1200
グループ4:400/1200
YがDV、Xが「Type」、WeightがWeightである「FitY by X」を実行した場合、「Compare Densities」を使用して、重なり合う密度のプロットを取得すると、正しく表示されます。 ただし、続行してDVの標準偏差を取得すると、これらはどのグループの標準偏差よりもはるかに大きくなります。 これは私が何をしているのか理解していないと私に思わせます。
ヘルプ?
元の投稿に間違いがありましたが、方法がわかれば削除します。 正しいバージョンは次のとおりです。
いくつか(22?)のサンプルからのデータがありますが、サンプルサイズはかなり異なります。 サンプルが大きいほどパラメーターがより適切に推定されることは理解していますが、それはここで取り上げたい問題ではありません。 それは、サンプルサイズがグループ/サンプル間で異ならないかのように、分布のグラフ化とパラメーターの推定の両方を行いたいということです。 つまり、大きなサンプルは重み付けを解除し、小さなサンプルは重み付けを解除する必要があります。
次のように、「Fit Y by X」でこれを実行しようとしました。グループのサンプルサイズを合計サンプルサイズで割ったものとして、新しい変数WEIGHTを計算しました。 それで、私には4つのグループがあるとしましょう。
グループ1:N1 = 100
グループ2:N1 = 500
グループ3:N1 = 200
グループ4:N1 = 400
また、グループ1と2はタイプ1であり、グループ3と4はタイプ2です。
重量は次のようになります。
グループ1:1200/100
グループ2:1200/500
グループ3:1200/200
グループ4:1200/400
YがDV、Xが「Type」、WeightがWeightである「FitY by X」を実行した場合、「Compare Densities」を使用して、重なり合う密度のプロットを取得すると、正しく表示されます。 ただし、続行してDVの標準偏差を取得すると、これらはどのグループの標準偏差よりもはるかに大きくなります。 これは私が何をしているのか理解していないと私に思わせます。
ヘルプ?
私はこの投稿があなたを助けるかもしれないと思います:
解決済み:加重標準偏差-JMPユーザーコミュニティ
そして、おそらく次のスクリプトは、何が起こり得るかを理解するのに役立ちます。
したがって、平均作業のアプローチ計算では、どのような方法(役割の重みまたは頻度)を採用してもかまいません。
私はあなたとは異なる体重の定義をしました、私は体重の合計を1200にしたかったです(あなたは4 * 1200を持っています)。
これは重要ではなく、頻度の役割の重みについては重要ではありませんが、役割の重みの重みについては重要です。 スクリプトを参照してください。
残念ながら、その理由を正確に説明することはできません。小さなデータセットは、合計平均と比較して非常に大きな標準偏差を取得します。 それはおそらく正方形と根のためです...
何が起こっているのかはっきりしないので、私は個人的にあなたのアプローチを使用しません。 グループの要約を行い、次に各グループの平均を1で重み付けします。 そして、その結果をグラフに結合します。
Names Default To Here( 1 );
// about the role of weight and frequency for calculation of mean and stddev
//
// web("https://www.jmp.com/support/help/en/16.1/?os=win&source=application&utm_source=helpmenu&utm_medium=application#page/jmp/summary-statistics.shtml");
//
nelem_lst = {100, 500, 200, 400};
table_lst = {};
For Each( {value, index}, nelem_lst,
Eval(
Eval Expr(
table_lst[index] = New Table( "Table " || Char( index ),
add rows( nelem_lst[index] ),
New Column( "Group", "Character", set each value( "Group " || Char( index ) ) ),
New Column( "Type", "Character", set each value( If( index <= 2, "Type 1", "Type 2" ) ) ),
New Column( "DV", "Continuous", formula( Random Normal( Expr( Mod( index, 2 ) ), Expr( Mod( index, 2 ) + 1 ) ) ) )
)
)
);
Wait( 0.1 );
table_lst[index]:DV << delete formula;
);
Wait( 0 );
dt = table_lst[1] << concatenate( Table Name( "All" ), table_lst[2 :: 4] );
For Each( {value}, table_lst, Close( value, "NoSave" ) );
Summarize( dt, group_lst = by( :group ) );
ngroups = N Items( group_lst );
dt << New Column( "ColMean[Group]", formula( Col Mean( :DV, :group ) ) );
dt << New Column( "ColStd[Group]", formula( Col Std Dev( :DV, :group ) ) );
Eval( Eval Expr( dt << New Column( "weight[Group]", formula( Col Number( :DV ) / Expr( ngroups ) / Col Number( :DV, :group ) ) ) ) );
nw = New Window( "oneway comparison",
H List Box(
Panel Box( "w/o weight",
dt << Oneway( Y( :DV ), X( :Group ), Means and Std Dev( 1 ), Mean Error Bars( 1 ), Std Dev Lines( 1 ) );
),
Panel Box( "weight in role frequency",
dt << dt << Oneway(
Y( :DV ),
X( :Group ),
Freq( :"weight[Group]"n ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
),
Panel Box( "weight in role weight",
dt << dt << Oneway(
Y( :DV ),
X( :Group ),
Weight( :"weight[Group]"n ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
)
)
);
nw = New Window( "Tabulate comparison",
H List Box(
Panel Box( "w/o weight",
dt << Tabulate(
Change Item Label( Grouping Columns( :Type( "All" ), "All" ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Analysis Columns( :"weight[Group]"n ), Statistics( Sum ) ),
Column Table( Analysis Columns( :DV ), Statistics( Mean ) ),
Column Table( Statistics( Std Dev ), Analysis Columns( :DV ) ),
Row Table( Grouping Columns( :Type, :Group ), Add Aggregate Statistics( :Type, :Group ) )
)
)
),
Panel Box( "weight in role frequency",
dt << Tabulate(
Change Item Label( Grouping Columns( :Type( "All" ), "All" ) ),
Freq( :"weight[Group]"n ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Analysis Columns( :"weight[Group]"n ), Statistics( Sum ) ),
Column Table( Analysis Columns( :DV ), Statistics( Mean ) ),
Column Table( Statistics( Std Dev ), Analysis Columns( :DV ) ),
Row Table( Grouping Columns( :Type, :Group ), Add Aggregate Statistics( :Type, :Group ) )
)
)
),
Panel Box( "weight in role weight",
dt << Tabulate(
Change Item Label( Grouping Columns( :Type( "All" ), "All" ) ),
weight( :"weight[Group]"n ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Analysis Columns( :"weight[Group]"n ), Statistics( Sum ) ),
Column Table( Analysis Columns( :DV ), Statistics( Mean ) ),
Column Table( Statistics( Std Dev ), Analysis Columns( :DV ) ),
Row Table( Grouping Columns( :Type, :Group ), Add Aggregate Statistics( :Type, :Group ) )
)
)
)
)
);
dt << Summary( Group( :Group, :Type, :"ColMean[Group]"n, :"ColStd[Group]"n, :"weight[Group]"n ), Freq( "None" ), Weight( "None" ) );