加重カッパこんにちは。2 人の評価者が 50 項目の品質を 1 ~ 4 のスケールで評価する調査があります。私たちは JMP で加重カッパを実行したいと考えていました。データを入力し、データ型を順序として設定しましたが、Y を X で当てはめて一致統計を確認すると、JMP は単純なカッパしか生成しないようです。
JMP は加重カッパを計算できますか?
前もって感謝します!
Re: 加重カッパ本当に分割表を取得していますか?テーブルで X と Y を指定しているようではありません。次のコードは私のシステム (V17.2.0、Windows 10) で動作します。
Names Default To Here( 1 );
Include("Weighted Kappa Function.jsl" );
dt = Open( "$SAMPLE_DATA/Prime Minister Ratings.jmp" );
CT = dt << Contingency(
Y( :Second Survey ),
X( :First Survey ),
Freq( :Count ),
Tests( 0 ),
Agreement Statistic( 1 )
);
WeightedKappa(CT);
Re: 加重カッパ最初はそれを試しましたが、うまくいきませんでした。それがスクリプトの名前だったので、機能なしに変更しました。 Weighted Kappa Function.jsl と一致するようにスクリプトを変更しましたが、まだ機能しません。同じエラーが発生します
重み付けされた Kappa.jsl は、閉じたパスを通じてそれ自体をインクルードします。
'Include' のアクセスまたは評価における加重 Kappa.jsl、
Include/*###*/("加重カッパ関数.jsl")
これが関数に入れている私のコードです:
Names Default to Here(1);
dt = open("Subset of Data for Kappa index.jmp");
Include("Weighted Kappa Function.jsl" );
CT = dt << Contingency(
Contingency Table(
Count( 1, Format( "Fixed Dec", 8, 0 ) ),
Total %( 1, Format( "Fixed Dec", 8, 2 ) ),
Col %( 1, Format( "Fixed Dec", 8, 2 ) ),
Row %( 1, Format( "Fixed Dec", 8, 2 ) ),
Expected( 1, Format( "Best", 8 ) ),
Deviation( 0, Format( "Best", 8 ) ),
Cell Chi Square( 0, Format( "Fixed Dec", 8, 4 ) ),
Col cumulative( 0, Format( "Fixed Dec", 8, 0 ) ),
Col cumulative %( 0, Format( "Fixed Dec", 8, 2 ) ),
Row cumulative( 0, Format( "Fixed Dec", 8, 0 ) ),
Row cumulative %( 0, Format( "Fixed Dec", 8, 2 ) )
),
Agreement Statistic( 1 )
);
WeightedKappa(CT);
Re: 加重カッパあなたは言う必要があります
include("Weighted Kappa Function.jsl");
Re: 加重カッパ申し訳ありませんが、Mac で JMP Pro 17.0.0 を使用しています。あなたが持っていたものを試してみましたが、パスが複製され続けました。そこで、次のように変更しました。
dt = open("Subset of Data for Kappa index.jmp");
Include("Weighted Kappa.jsl" );これでファイルは開きます(最初にここでファイルを試していますが、私のものはもう少し複雑で、ここのファイルで動作することを確認したかったのです)が、次のようなエラーが発生します。
重み付けされた Kappa.jsl は、閉じたパスを通じてそれ自体をインクルードします。
'Include' のアクセスまたは評価における加重 Kappa.jsl、
Include/*###*/("加重 Kappa.jsl")
Re: 加重カッパ添付ファイルを参照してください
Re: 加重カッパ@lcmaley ,
それ以来、自分の脚本を何年も見ていなかったので、錆を落とす必要がありました。
使用している JMP のバージョンを常に言及する必要があります。そうは言っても、2021 年に投稿された@ghartelのソリューションを使用することをお勧めします。
@ghartel の投稿で提供されている Weighted Kappa Function.jsl をダウンロードし、スクリプト用のドライブに保存します。
加重カッパ関数ソリューションには、標準誤差と信頼限界、および By 変数が含まれていることに注意してください。私のスクリプトではそうではありませんでした。 @ghartelのソリューションははるかに優れたソリューションです。
以下は、元のスクリプトで提供されたサンプル テーブルの加重カッパ関数を実行するために使用した JSL です。 JMP テーブル slide58.jmp の結果の添付スクリーンショットを参照してください。
注記:
- Udir には任意のドライブを指定でき、データ テーブルと関数は別のディレクトリに置くことができます。
- デフォルトが設定されている可能性が高いため、緊急事態の各オプションを呼び出す必要はありません。ただし、Counts と Expected は、Contingency Platform オプションに含めるか、スクリプトで呼び出す必要があります。
素晴らしい機能を備えた@ghartelに敬意を表します!
Names Default to Here(1);
Udir ="C:\temp";
dt = open(Udir || "\slide58.jmp");
Include( Udir || "\Weighted Kappa Function.jsl" );
CT = dt << Contingency(
Y( :Y ),
X( :X ),
Freq( :n ),
Contingency Table(
Count( 1, Format( "Fixed Dec", 8, 0 ) ),
Total %( 1, Format( "Fixed Dec", 8, 2 ) ),
Col %( 1, Format( "Fixed Dec", 8, 2 ) ),
Row %( 1, Format( "Fixed Dec", 8, 2 ) ),
Expected( 1, Format( "Best", 8 ) ),
Deviation( 0, Format( "Best", 8 ) ),
Cell Chi Square( 0, Format( "Fixed Dec", 8, 4 ) ),
Col Cum( 0, Format( "Fixed Dec", 8, 0 ) ),
Col Cum %( 0, Format( "Fixed Dec", 8, 2 ) ),
Row Cum( 0, Format( "Fixed Dec", 8, 0 ) ),
Row Cum %( 0, Format( "Fixed Dec", 8, 2 ) )
),
Agreement Statistic( 1 )
);
WeightedKappa(CT);
Re: 加重カッパ私はあなたのスクリプトを使用しようとしています、これを最後に置きます、
dt0 = Current Data Table();
CT = dt0 << Contingency(
Contingency Table( Expected( 1 )), Agreement Statistic( 1 ), Tests(0) );
WeightedKappa( CT );
そして、それは機能せず、何も追加されません。私の何が間違っているのでしょうか?
分割表ではないというエラーが表示され、何も追加されません。提案はありますか?
Re: 加重カッパこんにちは、みんな、
このスクリプトをそのまま実行することはできず、とにかくインタラクティブなものではなくスクリプト内で使用する関数が欲しかったので、このコードを調整して関数を作成しました。標準誤差と漸近信頼区間の計算、BY 変数の処理も追加しました。
これを使用するには、それをスクリプトに組み込み、偶発事象分析を実行して変数に代入し、それを関数に渡すだけです。この関数は、線形および二次の加重カッパを与える各カッパ テーブルにアウトライン項目を追加します。間違いを発見したらお知らせください。
Include( Udir || "\Weighted Kappa Function.jsl" );
CT = Contingency( Y( :Comparison ), X( :Reference ), Contingency Table(), Tests( 0 ) );
CT2 = Contingency( by( :Rater), Y( :Comparison ), X( :Reference ), Contingency Table(), Tests( 0 ) );
WeightedKappa(CT);
WeightedKappa(CT2);s
Re: 加重カッパありがとうございます@gzmorgan0 、
行ごとに実行することはできますが、関数としては実行できません。それが大きな驚きです。いずれにせよ、実際の数値を生成することはできました。これを何度も行う必要はないので、問題ありません。
どうもありがとう、
ロン
Re: 加重カッパこんにちは、ロン、 @ron_horne 。
返事が遅れて申し訳ありません。サブセット テーブルが現在のデータ テーブルであるときに、重み付けされた Kappa スクリプトを実行しました。 BP1 を Y に、BP2 を X に指定しました。結果は .jrn ファイルとして添付されます。以下は抜粋です。

スクリプトを実行すると、次のようになります。
- 分割表には Total %、Col %、Row %、Expected が含まれていますか?
- 分割表から作成された表を削除するスクリプトの 88 行目をコメントアウトすることをお勧めします。次に、スクリプトを実行します。テーブルが作成され、次のようになりますか?

報告されたエラーは、cmat = dt[idx,ccols]; を実行できないようです。 idx は Cell == "Count" 以降の "Expected" である行のインデックスであり、ccols はリスト {"0"、"0.25"、"0.5"、"0.75"、"1"} である必要がある連続列です。セル名が同じでない場合は、余分なスペースやスクリプトが実行されなくなる可能性があります。より堅牢な解決策は、where Contains(:Cell, "Count") を使用することです。
ここでは推測にすぎません。
Re: 加重カッパ@gzmorgan0
たとえば、このデータセット。各列には、同じスケールの異なる評価があります。
スクリプトを使用して実行できた場合は、ぜひお知らせください。
どうもありがとう、
ロン
Re: 加重カッパ@gzmorgan0 ,
これはサンプル ファイル Slide58 を使用して得たものであり、私自身のデータではありません。 JMP11 と JMP 15 でも同じエラーが発生します。
私がやったことは、ファイルを開いてスクリプトを実行することだけでした。
ありがとう、
ロン
Re: 加重カッパ@ron_horne,
具体的にはJMP PROを使用しています。 JMP PRO 13.2.1 でテストしましたが、同じ結果が得られました。
Re: 加重カッパ@ron_horne さん、こんにちは。
私はJMP 14.3を使用しています。匿名化されたデータテーブルの例を送っていただけますか。バージョンの問題だと断定する前に、確認しておきたいと思います。私のスクリプトにはいくつかのチェックが含まれていましたが、まれなケースを見逃していた可能性があります。
Re: 加重カッパスクリプトを提供してくれた@gzmorgan0に感謝します。
何らかの理由で、スクリプトを実行するとエラーが発生します。 JMP14.2を使用しています。
それを修正する方法はありますか?

Re: 加重カッパあなたの質問に対する組み込みの解決策は見つかりませんでした。もちろん、JMP は機能しますが、スクリプトが必要です (JMP 開発者のいずれかが代替ソリューションを持っていない限り)。
JMP のバージョンと使用しているオペレーティング システムが報告されていないため、これがうまくいくかどうかはわかりません。 JMP 12、13、および 14 でテストしたスクリプトを添付します。このスクリプトは、JMP12 との下位互換性を保つためのメソッドを使用しています。それ :
- 現在のデータ テーブルで実行し、偶発性分析を呼び出します。つまり、JMP UI を使用します。
- このスクリプトは、1 つの偶発事象レポート、つまり 1 つの Y 順序変数と 1 つの X 順序変数用に作成されます。
- スクリプト エラーの複雑さ (およびリスク) を軽減するために、分割表に含める期待値を指定します。
- 分割表から表を作成します。
- そこから、観察された確率と期待される確率が作成されます。
- 重み行列が恒等行列である標準カッパを計算します。線形重み 1-abs(i - j)/(k-1);二次重みは 1 - square( (ij)/(k-1) ) です。スクリプト内で報告されている参照を参照してください。
- k、kL、kQ の値は JMP レポートに追加されます (以下を参照)。
- 計算されたカッパは、JMP によって報告されたカッパと一致する必要があるため、チェックとしてレポートされます。
- このスクリプトでは、重み付け誤差と信頼区間は計算されません。
これは、将来の JMP バージョンのウィッシュリスト項目になる可能性があります。重み付きカッパのリファレンスの中には、順序カテゴリに対する線形重みや二次重み以外のものも含まれているため、このウィッシュ リスト項目でカスタム重みを許可するかどうかを指定する必要があります。
スクリプトと、列n を頻度として使用するサンプル データ セットが添付されています。 slide58.jmp は、3 番目に報告された参考文献 (58 ページ) の要約表です。これは、スクリプトのテストに使用される 10 個のテーブルのうちの 1 つです。これがお役に立てば幸いです。
Re: 重み付けされたカッパすみません、旅行中でした。この方法では分割表は作成されません。XとYを指定して試してみましたが、結果は同じでした。XとYを削除したので、どの表でも使えるようになりました。XとYを入力するためのダイアログボックスが表示されるだけです。
dt = Open( "Subset of Data for Kappa index.jmp" );
Include( "Weighted Kappa Function.jsl" );
CT = dt << Contingency(
Contingency Table(
Y( :BP1),
X( :BP2 ),
Count( 1, Format( "Fixed Dec", 8, 0 ) ),
Total %( 1, Format( "Fixed Dec", 8, 2 ) ),
Col %( 1, Format( "Fixed Dec", 8, 2 ) ),
Row %( 1, Format( "Fixed Dec", 8, 2 ) ),
Expected( 1, Format( "Best", 8 ) ),
Deviation( 0, Format( "Best", 8 ) ),
Cell Chi Square( 0, Format( "Fixed Dec", 8, 4 ) ),
Col cumulative( 0, Format( "Fixed Dec", 8, 0 ) ),
Col cumulative %( 0, Format( "Fixed Dec", 8, 2 ) ),
Row cumulative( 0, Format( "Fixed Dec", 8, 0 ) ),
Row cumulative %( 0, Format( "Fixed Dec", 8, 2 ) )
),
Agreement Statistic( 1 )
);
WeightedKappa( CT );
これを実行すると分割表は取得されますが、何も追加されません。
dt0 = Current Data Table();
tsub = Subscribe to Data Table List( , On Open( WeightedKappa ) );
reportc = Contingency(
Contingency Table( Expected( 1 ) ),
Agreement Statistic( 1 ),
<
<MAKE into="" data="https://community.jmp.com/" table=""></MAKE>
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lcmaley_0-1710247375077.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="lcmaley_0-1710247375077.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="lcmaley_0-1710247375077.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="lcmaley_0-1710247375077.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/62115i2A7C53339B71665F/lcmaley_0-1710247375077.png" role="button" title="lcmaley_0-1710247375077.png" alt="lcmaley_0-1710247375077.png" /></span></SPAN></SPAN></SPAN>
<BR /><BR />
Re: 重み付けされたカッパまったく同じコードを試したところ、分割表のレポートまでは機能しましたが、「次元が間違っています」と表示され、重み付けカッパが計算されませんでした。(JMP18.01、Win11)
Re: 重み付けされたカッパJMPの言語の問題のようです。スクリプト内の「Cell」を日本語に修正したら、問題なく動作しました。素晴らしい仕事をしていただき、ありがとうございます。