スチューデントt分布変換の逆変換こんにちは、みんな、
変数をスチューデント t 分布に変換する必要がありましたが、JMP で分析 << 分布 << を使用して変数を選択し、赤い矢印をクリックして連続適合選択を使用すると、逆変換も同様に簡単ですか? これを実現するための正しいメニュー選択について説明してくれる人はいますか。
ありがとう
基本的なデータ分析とモデリングRe: スチューデントt分布変換の逆変換こんにちは@Mickyboy : 変換は実行されていません。指定したオプション (「分析 << 分布 << 変数を選択して赤い矢印をクリックし、連続適合選択を使用する」) は、データを変換するものではなく、選択した分布 (この場合は t 分布) がデータの親母集団として妥当かどうかを確認するだけです。それとも、質問を誤解していますか?
Re: スチューデントt分布変換の逆変換こんにちは、MRB3855さん。
返信ありがとうございます。少し誤解されていますが、それは私が説明している方法、つまり上記からの変換方法である可能性があります。連続適合選択では、分布を比較し、最も適合する分布を取得します。この場合は学生のtとしましょう。正規にチェックマークを付け、適合した正規分布に移動して赤い矢印をクリックし、列の保存を選択すると、変数の簡単な学生のt変換が得られます。とても簡単です。学生のt変換から簡単に変換できる方法があるかどうか疑問に思っています。これがより理解しやすいことを願っています。rに精通している場合は、変換を識別し、簡単に変換できるemmeansと呼ばれる手順があります。
Re: スチューデントt分布変換の逆変換こんにちは@Mickyboy : emmeansについて調べてみたところ、見つけたドキュメント( https://aosmith.rbind.io/2019/03/25/getting-started-with-emmeans/#back-transforming-results )にはこう書いてありました
「対数変換を使用したので、結果を元の(データ)スケールの中央値の乗法差として表現できます。
We can always back-transform estimates and CI limits by hand, but in emmeans() we can use the type argument for this. Using type = "response" will return results on the original scale. This works when the transformation is explicit in the model (e.g., log(resp)) and works similarly for link functions in generalized linear models."
詳細はこちら: https://cran.r-project.org/web/packages/emmeans/emmeans.pdf
それで... t 分布関数 (pdf または cdf ?) を何らかの線形モデルの "Y" の変換として使用していますか? そして、信頼区間を逆変換してネイティブ スケールに戻したいのですか? それが正しい場合、その変換を使用する理由は何ですか? 実際にあなたが考えていることを実行しているかどうかが私にはよくわからないので、質問します。変換は通常、従来の線形モデルの正規性仮定を満たすために使用されます。まだ誤解している場合は申し訳ありません...
Re: スチューデントt分布変換の逆変換こんにちは@MRB3855 、
再度、ご返信ありがとうございます。変換の内容や理由にこだわらないでください。上記の変換手順と同じくらい簡単な、逆変換の簡単な方法があるかどうかを知りたいのです。以下を参照してください。以下の理由で学生の t を使用しましたが、以下に示す変換のいずれかを使用することもできます。この変数を変換するのは、上記の手順に従って簡単でよいので、変数を変換して必要な操作を行うことができます。たとえば、中央値、GMT、標準誤差、平均値の周りの信頼区間、予測区間が必要な場合、理論的には、これらを変換された値のリストの一番下に追加して、簡単な方法があればすべてを逆変換できます。再度、これは一般的な質問ですが、逆変換に変換するのと同じくらい簡単で簡単な手順がある場合 (これもどの変換にも固有ではありません)。

Re: スチューデントt分布変換の逆変換こんにちは@Mickyboy : わかりました。あなたが何をしているのかよく理解していないのではないかとまだ心配しています。しかし、あなたは「変換が何であるか、なぜ変換するか」にこだわりたくないので、その点はそのままにしておきます。
一般的に、逆変換を行う場合は、必要な解を得るために代数操作を行う必要があります。t 分布の場合、使用する関数によって異なります。CDF または PDF (PDF は密度式、CDF は分布式です)。

PDF の場合は、x の密度 (以下のリンク) を手動で解決する必要があります。
https://en.wikipedia.org/wiki/Student%27s_t-distribution#Location-scale_transformation
https://www.jmp.com/support/help/en/18.0/#page/jmp/statistical-details-for-continuous-fit-distributions.shtml#ww1161929
遭遇する問題は、PDF が位置パラメータを中心に対称であるため、1 対 1 関数 ( https://en.wikipedia.org/wiki/Injective_function ) ではないことです。つまり、PDF の特定の値に対して、x の解が 2 つ存在することになります。たとえば、位置 = 100 とします。すると、[110-位置]^2 = [90-位置]^2 = 100 となります。つまり、PDF の 90 の値は 110 の値と同じになります。では、PDF から x に戻すときに、この 2 つをどのように選択すればよいのでしょうか。
CDF の場合は、t について PDF の積分 (-無限大から t まで) を解く必要があります。この場合、「t 分位数」関数を使用できます。
t Quantile( p, df ) * scale + location
Re: スチューデントt分布変換の逆変換私は過去に、元の変換式を使用して逐次近似法を使用して逆変換を計算しました。これは、新しい分布の平均を元のデータ値に戻す逆変換の例です。
Names Default To Here( 1 );
dt =
// Open Data Table: Semiconductor Capability.jmp
// → Data Table( "Semiconductor Capability" )
Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
theColumn = "NPN1";
Distribution(
Continuous Distribution(
Column( as column(theColumn) ),
Process Capability( Use Column Property Specs ),
Fit Student's t(save distribution formula)
),
SendToReport(
Dispatch( {"NPN1"}, "Process Capability", OutlineBox, {Close( 1 )} )
)
);
// Find the back transform of the calculated mean of the transformed distribution
theTargetCol = Column( dt, N Cols( dt ) ) << get name;
theFormula = Char( As Column( dt, theTargetCol ) << get formula );
theTarget = Col Mean( Column( dt, theTargetCol ) );
// Change the reference to the original column used in the transformation to _X_
// so it can be used in the back transform
Substitute Into( theFormula, ":"|| theColumn, "_X_" );
// The formula needs to create a memory variable to allow for comparison.
// Add the resulting variable name to be the resulting variable when the
// formula is executed
theFormula = "theResult = " || theFormula || ";";
// Successive Approximation will be used to get the back transform
// Use the min and max of the original column to start the approximations
theMax = Col Max(as column(theColumn) );
theMin = Col Min( as column(theColumn) );
// Loop through the approximations for up to 100 loops to find the value
For( i = 1, i <= 100, i++,
_X_ = Mean( theMax, theMin );
Eval( Parse( theFormula ) );
If(
theResult > theTarget, theMax = _X_,
theResult < theTarget, theMin = _X_,
Break()
);
);
// Display the findings in the log
Show( theTarget, theResult, _X_, i );Re: スチューデントt分布変換の逆変換@txnelsonと@MRB3855に感謝します。
@txnelsonこのスクリプトを本当にありがとう、素晴らしいです、今後たくさん使います。
@MRB3855 、私がその質問をした理由は、前回の投稿で JMP からの比較分布の出力について説明したためです。Johnson Su、SHASH、Cauchy、Gamma、Weibull など、これらの分布についてはあまり聞いたことがありませんでした。変数を正規分布に近づくものに変換するのは 1 つの方法で、上で強調したように JMP では非常に簡単に実行できますが、どのように逆変換するのでしょうか。私が知らなかった、逆変換を行う簡単で優れた方法があるかもしれないと思っただけです。
お時間を割いてご回答いただきありがとうございました
Re: スチューデントt分布変換の逆変換こんにちは@Mickyboy : わかりました... 明確に説明できていなかったり、議論を交わしているように聞こえたりしたら申し訳ありません。ここでの私の唯一の意図は、役立つと思われるガイダンスを提供することです。そうは言っても、上記のコメントに返信します。「... 変数を正規分布に近づくものに変換するのは 1 つの方法だと思いました。これは、上で強調したように JMP で簡単に実行できますが、逆変換するにはどうすればよいでしょうか。」
はい、変数をほぼ正規分布に変換する十分な理由があります。その通りです。しかし、これらの分布関数のいずれかを使用すると、定義上、それが実現されるわけではありません。
あなたの場合、変数(ここでは X と呼びます)に PDF または CDF(上記の私の投稿を参照)関数のいずれかを適用しました。
1. PDF を使用した場合: これによって作成されるのは、t 分布曲線 (下の図の青い線) だけです。したがって、この関数を適用すると、各 X (x 軸) に対して青い曲線上の点 (y 軸) が得られます。

2. CDF を使用した場合: これは PDF の曲線の下の面積 (確率) を計算するだけです。以下の例では、X=65.104 の青い線の下の面積は 0.439265 です。したがって、X が t 分布を持つ場合 (場所、スケール、DF の値が与えられている場合)、Prob(X<65.104) = 0.439265 となります。したがって、この関数を適用すると、各 X に対して確率が得られます。

したがって、PDF または CDF のどちらの関数を選択しても、正規分布 (または t 分布) は得られません。データが t 分布からのものであると想定し、曲線を生成したり、確率を計算したりするだけです。実際、CDF (X の分布が何であっても) は均一分布 (ベータ分布の特殊なケース、 a = b =1) になりますが、これは別のトピックなので、別の日に説明します。
https://en.wikipedia.org/wiki/Inverse_transform_sampling
https://math.stackexchange.com/questions/1564584/prove-uniform-distribution#:~:text=Proof%3A%20In%20the%20case%20that,X%20for%20x%E2%88%88R.