ProbitModelFit[{{x1,y1},{x2,y2},…},{f1,f2,…},x]
各 xiに yiをフィットする
という形の二項プロビット回帰モデルを構築する.
ProbitModelFit[data,{f1,f2,…},{x1,x2,…}]
という形の二項プロビット回帰モデルを構築する.ただし,fiは変数 xkに依存する.
ProbitModelFit[{m,v}]
計画行列 m と応答ベクトル v から二項プロビット回帰モデルを構築する.
ProbitModelFit
ProbitModelFit[{{x1,y1},{x2,y2},…},{f1,f2,…},x]
各 xiに yiをフィットする
という形の二項プロビット回帰モデルを構築する.
ProbitModelFit[data,{f1,f2,…},{x1,x2,…}]
という形の二項プロビット回帰モデルを構築する.ただし,fiは変数 xkに依存する.
ProbitModelFit[{m,v}]
計画行列 m と応答ベクトル v から二項プロビット回帰モデルを構築する.
詳細とオプション
- ProbitModelFitは,プロビット関数(
)の逆関数を使って構築された基底関数の線形結合を使ってデータをモデル化しようとする. - LogitModelFitは,確率値のモデル化のための分類にしばしば使われる.
- ProbitModelFitは,もとの
が確率
のベルヌーイ(Bernoulli)試行の独立した実現であるという仮定のもとに,
の形の一般化された線形モデルを生成する. - 関数
は標準NormalDistributionのCDFである. - ProbitModelFitは,自身が構築したプロビットモデルを表す記号的なFittedModelオブジェクトを返す.モデルの特性と診断は model["property"]で得ることができる.
- 特定の点 x1, …におけるProbitModelFitからの最もよくフィットした関数の値は model[x1,…]で得ることができる.
- 次は,data の可能な形である.
-
{y1,y2,…} {{1,y1},{2,y2},…}という形式に等しい {{x11,x12,…,y1},…} 独立した値 xijと応答 yiのリスト {{x11,x12,…}y1,…} 入力値と応答の間の規則のリスト {{x11,x12,…},…}{y1,y2,…} 入力値のリストと応答の間の規則 {{x11,…,y1,…},…}n 行列の第 n 列をフィットする Tabular[…]name 表形式オブジェクトの列 name をフィットする
のような多変量のデータの場合,座標 xi1, xi2, …の数は変数 xiの数と一致しなければならない.- yiは0から1までの確率である.
- さらに,data は関数と変数を指定せずに計画行列を使って指定することができる.
-
{m,v} 計画行列 m と応答ベクトル v - ProbitModelFit[{m,v}]では,{{f1,f2,…},{f1,f2,…},…}という形のデータ点における基底関数 fiの値から計画行列 m が形成される.応答ベクトル v は応答のリスト{y1,y2,…}である.
- 計画行列 m と応答ベクトル v について,モデルは
である.ただし,
は推定されるパラメータのベクトルである. - 計画行列が使われる場合,基底関数 fiはProbitModelFit[{m,v},{f1,f2,…}]という形式を使って指定することができる.
- ProbitModelFitは,ExponentialFamily->"Binomial"およびLinkFunction->"ProbitLink"でGeneralizedLinearModelFitに等しい.
- ProbitModelFitにはExponentialFamilyとLinkFunctionを除いてGeneralizedLinearModelFitと同じオプションが使える.
例題
すべて開く すべて閉じる例 (1)
data = {{1, 0}, {2, 0}, {2, 0}, {2, 1}, {2, 0}, {3, 0}, {3, 0}, {3, 0}, {3, 1}, {3, 1}, {3, 1}, {4, 1}, {4, 1}, {5, 0}, {6, 1}, {7, 1}};probit = ProbitModelFit[data, x, x]probit[1.5]Show[ListPlot[data, PlotStyle -> PointSize[Medium]], Plot[probit[x], {x, 0, 8}]]スコープ (13)
データ (6)
整数に依存しない値が増加すると仮定して,データを成功確率応答にフィットする:
ProbitModelFit[{1 / 3, 2 / 3, 5 / 5}, x, x]//NormalProbitModelFit[{{1, 1 / 3}, {2, 2 / 3}, {3, 5 / 5}}, x, x]//NormalProbitModelFit[{{1, 1 / 3}, {2, 2 / 3}, {3, 5 / 5}}, x, x, Weights -> {3, 6, 5}]//Normalsfdata = {{1, 0}, {1, 1}, {1, 0}, {2, 0}, {2, 0}, {2, 1}, {2, 1}, {2, 1}, {2, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}};
GroupBy[sfdata, First -> Last]ProbitModelFit[sfdata, x, x] //NormalProbitModelFit[{1 -> 1 / 3, 2 -> 2 / 3, 3 -> 3 / 3}, x, x]ProbitModelFit[{1, 2, 3} -> {1 / 3, 2 / 3, 3 / 3}, x, x]data = {...};fit = ProbitModelFit[data -> 1, {1, x, y}, {x, y}]Show[
Plot3D[fit[x, y], {x, -5, 5}, {y, -5, 5}],
ListPointPlot3D[data[[All, {2, 3, 1}]]],
PlotRange -> All
]dm = {{1, 1}, {1, 2}, {1, 3}, {1, 4}};
resp = {0, 1, 0, 1};ProbitModelFit[{dm, resp}]Normal[%]ProbitModelFit[{dm, resp}, {x, y}]//Normalprobit = ProbitModelFit[RandomReal[1, 10], x, x]probit["Properties"]特性 (7)
データとフィットされた関数 (1)
data = Join[RandomReal[10, {10, 2}], Transpose[{RandomReal[1, 10]}], 2];probit = ProbitModelFit[data, {x, y}, {x, y}]probit["Data"]{fit = probit["BestFit"], Show[Plot3D[fit, {x, 0, 10}, {y, 0, 10}], Graphics3D[{PointSize[0.025], Point[probit["Data"]]}]]}probit["Function"]MatrixForm /@ probit[{"DesignMatrix", "Response"}]残差 (1)
data = Join[RandomReal[10, {100, 2}], Transpose[{RandomReal[1, 100]}], 2];probit = ProbitModelFit[data, {x, y}, {x, y}]{fr, ar, spr} = probit[{"FitResiduals", "StandardizedPearsonResiduals", "AnscombeResiduals"}];ListPlot[fr]アンスコム(Anscombe)の残差と標準化されたピアソン(Pearson)残差をステムプロットで可視化する:
Map[ListPlot[#, Filling -> 0]&, {ar, spr}]//Row分散と逸脱度 (1)
SeedRandom[1];
data = Flatten[Table[{x, y, 1 / (1 + Exp[.2 + .3x + .1y + RandomReal[{-1, 1}]])}, {x, RandomReal[5, 10]}, {y, RandomReal[5, 10]}], 1];probit = ProbitModelFit[data, {x, y}, {x, y}]probit["EstimatedDispersion"]probit["EstimatedDispersion", DispersionEstimatorFunction -> "PearsonChiSquare"]ListPlot[probit["Deviances"], Filling -> 0]probit["DevianceData"]probit["DevianceData"][All, "ResidualDeviance"]//Normalパラメータ推定診断 (1)
SeedRandom[1];
data = Table[{i, RandomInteger[BinomialDistribution[20, .05 + i / 30 + Sin[i] / 10]] / 20}, {i, 1, 20, .2}];
probit = ProbitModelFit[data, {x, Sin[x], Cos[x]}, x];probit["ParameterEstimates"]probit["ParameterEstimates"][All, "ZStatistic"]//Normal影響力の統計量 (1)
data = Table[{i, 1 / 2(1 + Erf[(2 + 4i + RandomReal[]) / Sqrt[2]])}, {i, RandomReal[{1, 10}, 20]}];
data[[{3, 8}, -1]] = 1 - data[[{3, 8}, -1]];
probit = ProbitModelFit[data, x, x]ListPlot[probit["CookDistances"], PlotRange -> {0, All}, Filling -> 0]ハット行列の診断要素をチェックしてフィットの点の影響を見積もる:
ListPlot[probit["HatDiagonal"], PlotRange -> {0, All}, Filling -> 0]予測値 (1)
data = Flatten[Table[{x, y, 1 / (1 + Exp[.3x - .5y + RandomReal[{-1, 1}]])}, {x, RandomReal[5, 3]}, {y, RandomReal[5, 3]}], 1];probit = ProbitModelFit[data, {x, y}, {x, y}]ListPlot[Transpose[probit[{"Response", "PredictedResponse"}]], FrameLabel -> {"observed", "predicted"}, Frame -> True, Axes -> False]適合度尺度 (1)
data = Flatten[Table[{i, j, RandomReal[], 1 / 2(1 + Erf[(.2 + .3i + j + RandomReal[]) / Sqrt[2]])}, {i, RandomReal[1, 5]}, {j, RandomReal[1, 5]}], 1];probit = ProbitModelFit[data, {x, y, z}, {x, y, z}]Grid[Transpose[{#, probit[#]}&[{"AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}]], Alignment -> Left]sub = Table[Join[{i}, ProbitModelFit[data, i, {x, y, z}][{"AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}]], {i, Subsets[{x, y, z}]}]Grid[Join[{{"Model", "AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}}, SortBy[sub, -#[[2]]&]]]一般化と拡張 (1)
probit = ProbitModelFit[Table[{i, RandomReal[{i - 1, i}] / 10}, {i, 10}], x, x]Integrate[probit[x], x]NIntegrate[probit[x], {x, 1, 5}]FindRoot[probit[x] == .5, {x, 5}]オプション (8)
ConfidenceLevel (1)
data = {{0, 1}, {1, 0}, {3, 1}, {5, 0}};probit = ProbitModelFit[data, x, x]probit["ParameterEstimates"][All, "ConfidenceInterval"]//Normalprobit = ProbitModelFit[data, x, x, ConfidenceLevel -> .99]probit["ParameterEstimates"][All, "ConfidenceInterval"]//NormalFittedModel内でレベルを90%に設定する:
probit["ParameterEstimates", ConfidenceLevel -> .9][All, "ConfidenceInterval"]//NormalCovarianceEstimatorFunction (1)
data = {{0, 1}, {1, 0}, {3, 1}, {5, 0}};probit = ProbitModelFit[data, x, x]probit["CovarianceMatrix"]probit["CovarianceMatrix", CovarianceEstimatorFunction -> "ObservedInformation"]DispersionEstimatorFunction (1)
data = {{1, 0}, {1, 1}, {1, 1}, {2, 0}, {2, 0}, {2, 1}, {2, 1}, {2, 1}, {2, 1}};probit = ProbitModelFit[data, x, x]probit["CovarianceMatrix"]probit["CovarianceMatrix", DispersionEstimatorFunction -> "PearsonChiSquare"]IncludeConstantBasis (1)
LinearOffsetFunction (1)
data = {{0, 1}, {1, 0}, {3, 1}, {5, 0}};ProbitModelFit[data, x, x]//Normal既知のSqrt[x]項を持つモデルにデータをフィットする:
ProbitModelFit[data, x, x, LinearOffsetFunction -> (Sqrt[#]&)]//NormalNominalVariables (1)
data = {{a, 0, 0}, {b, 2, 1}, {a, 2, 0}, {b, 0, 1}, {a, 2, 1}, {b, 0, 0}};nom = ProbitModelFit[data, {x, y}, {x, y}, NominalVariables -> x]Normal[nom]ProbitModelFit[data, {x, y}, {x, y}, NominalVariables -> All]//NormalWeights (1)
WorkingPrecision (1)
WorkingPrecisionを使ってより高精度のパラメータ推定を得る:
data = Table[{x, (10 - x) / 10}, {x, 10}]probit = ProbitModelFit[data, x, x, WorkingPrecision -> 25]probit["BestFit"]probit["BestFit", WorkingPrecision -> MachinePrecision]特性と関係 (4)
ProbitModelFitは"ProbitLink"を伴うGeneralizedLinearModelFitからの"Binomial"モデルに等しい:
data = Table[{i, RandomReal[{i - 1, i}] / 10}, {i, 10}];GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Binomial", LinkFunction -> "ProbitLink"]//NormalprobitFit = ProbitModelFit[data, x, x]//NormalLogitModelFitはデフォルトの"LogitLink"を伴うGeneralizedLinearModelFitからの"Binomial"モデルである:
GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Binomial"]//NormallogitFit = LogitModelFit[data, x, x]//NormalProbitModelFitは二項分布した応答を仮定する:
data = Table[{i, RandomReal[{i - 1, i}] / 10}, {i, 10}];pm = ProbitModelFit[data, x, x]NonlinearModelFitは正規分布した応答を仮定する:
nm = NonlinearModelFit[data, 1 / 2(1 + Erf[(a + b x) / Sqrt[2]]), Transpose[{{a, b}, pm["BestFitParameters"]}], x]{Normal[pm], Normal[nm]}Plot[{pm[x], nm[x]}, {x, 1, 5}, PlotRange -> All]ProbitModelFitはTimeSeriesのタイムスタンプを変数として使う:
ts1 = TemporalData[TimeSeries, {{{0.7758532198866042, 0.20426632015371096, 0.2353690565215641,
0.4448009174525732, 0.5081575045542254, 0.5371908040104083, 0.6223323745794831,
0.669522447912184, 0.7204685251554224, 0.7633871517003976}}, {{0, 9, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];ts1["Times"]ProbitModelFit[ts1, x, x]ts2 = TimeSeriesRescale[ts1, {.1, 2}]ts2["Times"]ProbitModelFit[ts2, x, x]ProbitModelFit[ts1["Values"], x, x]ProbitModelFitは,複数の経路のあるTemporalDataについては,経路ごとに作用する:
ProbitModelFit[TemporalData[Automatic, {{{0.009753347177267509, 0.18455899093641098, 0.20260886672737863,
0.37977270854029854, 0.45927203330240407, 0.5010683896315415, 0.6468842072138713,
0.7452632634563319, 0.8683334166368966, 0.9876532168951402},
... 2138713, 0.7452632634563319,
0.8683334166368966, 0.9876532168951402}}, {{0, 9, 1}, {0.1, 2., 0.2111111111111111}}, 2,
{"Continuous", 2}, {"Discrete", 2}, 1,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False, 10.1], x, x]テクニカルノート
-
▪
- 統計モデル解析
テキスト
Wolfram Research (2008), ProbitModelFit, Wolfram言語関数, https://reference.wolfram.com/language/ref/ProbitModelFit.html (2025年に更新).
CMS
Wolfram Language. 2008. "ProbitModelFit." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/ProbitModelFit.html.
APA
Wolfram Language. (2008). ProbitModelFit. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ProbitModelFit.html
BibTeX
@misc{reference.wolfram_2026_probitmodelfit, author="Wolfram Research", title="{ProbitModelFit}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ProbitModelFit.html}", note=[Accessed: 04-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_probitmodelfit, organization={Wolfram Research}, title={ProbitModelFit}, year={2025}, url={https://reference.wolfram.com/language/ref/ProbitModelFit.html}, note=[Accessed: 04-November-2026]}