LogitModelFit[{{x1,y1},{x2,y2},…},{f1,f2,…},x]
の形式の,各 xiに yiをフィットする二項ロジスティック回帰モデルを構築する.
LogitModelFit[data,{f1,…},{x1,x2,…}]
の形式の二項ロジスティック回帰モデルを構築する.ただし,fiは変数 xkに依存する.
LogitModelFit[{m,v}]
計画行列 m と応答ベクトル v から二項ロジスティック回帰モデルを構築する.
LogitModelFit
LogitModelFit[{{x1,y1},{x2,y2},…},{f1,f2,…},x]
の形式の,各 xiに yiをフィットする二項ロジスティック回帰モデルを構築する.
LogitModelFit[data,{f1,…},{x1,x2,…}]
の形式の二項ロジスティック回帰モデルを構築する.ただし,fiは変数 xkに依存する.
LogitModelFit[{m,v}]
計画行列 m と応答ベクトル v から二項ロジスティック回帰モデルを構築する.
詳細とオプション
- LogitModelFitは,ロジスティックシグモイド関数によって構築された基底関数の線形結合を使ってデータをモデル化しようとする.
- LogitModelFitは,通常,確率値をモデル化するために分類で使われる.
- LogitModelFitは,もとの
は確率
のベルヌーイ(Bernoulli)試行の独立した実現であるという仮定のもとに,
という形式の一般化された線形モデルを生成する. - 関数
はLogisticSigmoidである. - LogitModelFitは,自身が構築したロジスティックモデルを表す記号的なFittedModelオブジェクトを返す.モデルの特性と診断は model["property"]で得ることができる.
- 特定の点 x1, …におけるLogitModelFitからの最もよくフィットした関数の値は 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 - LogitModelFit[{m,v}]では,{{f1,f2,…},{f1,f2,…},…}という形のデータ点における基底関数 fiの値から計画行列 m が形成される.応答ベクトル v は応答のリスト{y1,y2,…}である.
- 計画行列 m と応答ベクトル v について,モデルは
である.ただし,
は推定されるパラメータのベクトルである. - 計画行列が使われる場合,基底関数 fiはLogitModelFit[{m,v},{f1,f2,…}]という形式を使って指定することができる.
- LogitModelFitは,ExponentialFamily->"Binomial"およびLinkFunction->AutomaticでGeneralizedLinearModelFitに等しい.
- LogitModelFitには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}};logit = LogitModelFit[data, x, x]logit[1.5]Show[ListPlot[data, PlotStyle -> PointSize[Medium]], Plot[logit[x], {x, 0, 8}]]スコープ (13)
データ (6)
整数に依存しない値が増加すると仮定して,データを成功確率応答にフィットする:
LogitModelFit[{1 / 3, 2 / 3, 5 / 5}, x, x]//NormalLogitModelFit[{{1, 1 / 3}, {2, 2 / 3}, {3, 5 / 5}}, x, x]//NormalLogitModelFit[{{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]LogitModelFit[sfdata, x, x] //NormalLogitModelFit[{1 -> 1 / 3, 2 -> 2 / 3, 3 -> 3 / 3}, x, x]LogitModelFit[{1, 2, 3} -> {1 / 3, 2 / 3, 3 / 3}, x, x]data = {...};fit = LogitModelFit[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};LogitModelFit[{dm, resp}]Normal[%]LogitModelFit[{dm, resp}, {x, y}]//Normallogit = LogitModelFit[RandomReal[1, 10], x, x]logit["Properties"]特性 (7)
データとフィットされた関数 (1)
data = Join[RandomReal[10, {10, 2}], Transpose[{RandomReal[1, 10]}], 2];logit = LogitModelFit[data, {x, y}, {x, y}]logit["Data"]fit = logit["BestFit"]Show[Plot3D[fit, {x, 0, 10}, {y, 0, 10}], Graphics3D[{PointSize[0.025], Point[logit["Data"]]}]]logit["Function"]MatrixForm /@ logit[{"DesignMatrix", "Response"}]残差 (1)
data = Join[RandomReal[10, {100, 2}], Transpose[{RandomReal[1, 100]}], 2];logit = LogitModelFit[data, {x, y}, {x, y}]{fr, ar, spr} = logit[{"FitResiduals", "StandardizedPearsonResiduals", "AnscombeResiduals"}];ListPlot[fr]ステムプロットでアンスコム(Anscombe)残差と標準化されたピアソン(Pearson)残差を可視化する:
Map[ListPlot[#, Filling -> 0]&, {ar, spr}]分散と逸脱度 (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];logit = LogitModelFit[data, {x, y}, {x, y}]logit["EstimatedDispersion"]logit["EstimatedDispersion", DispersionEstimatorFunction -> "PearsonChiSquare"]ListPlot[logit["Deviances"], Filling -> 0]logit["DevianceData"]logit["DevianceData"][All, "ResidualDeviance"]//Normalパラメータ推定診断 (1)
SeedRandom[1];
data = Table[{i, RandomInteger[BinomialDistribution[20, .05 + i / 30 + Sin[i] / 10]] / 20}, {i, 1, 20, .2}];
logit = LogitModelFit[data, {x, Sin[x], Cos[x]}, x];logit["ParameterEstimates"]logit["ParameterEstimates"][All, "ZStatistic"]//Normal影響力の統計量 (1)
SeedRandom[3];data = Table[{i, 1 / (1 + Exp[2 + 4i - Log[i] + RandomReal[]])}, {i, RandomReal[{1, 10}, 20]}];
data[[{3, 8}, -1]] = 1 - data[[{3, 8}, -1]];ListPlot[data]logit = LogitModelFit[data, {x, Log[x]}, x]ListPlot[logit["CookDistances"], PlotRange -> {0, All}, Filling -> 0]ハット行列の診断要素をチェックしてフィットの点の影響を見積もる:
ListPlot[logit["HatDiagonal"], PlotRange -> {0, All}, Filling -> 0]予測値 (1)
SeedRandom[3];data = Flatten[Table[{x, y, 1 / (1 + Exp[.3x - .5y + RandomReal[{-1, 1}]])}, {x, RandomReal[5, 3]}, {y, RandomReal[5, 3]}], 1];logit = LogitModelFit[data, {x, y}, {x, y}]ListPlot[Transpose[logit[{"Response", "PredictedResponse"}]], FrameLabel -> {"observed", "predicted"}, Frame -> True, Axes -> False]適合度尺度 (1)
SeedRandom[3];data = Flatten[Table[{i, j, RandomReal[10], 1 / (1 + Exp[30i - 10j + RandomReal[5]])}, {i, RandomReal[10, 5]}, {j, RandomReal[10, 5]}], 1];logit = LogitModelFit[data, {x, y, z}, {x, y, z}]Grid[Transpose[{#, logit[#]}&[{"AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}]], Alignment -> Left]sub = Table[Join[{i}, LogitModelFit[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)
logit = LogitModelFit[Table[{i, RandomReal[{i - 1, i}] / 10}, {i, 10}], x, x]Integrate[logit[x], x]NIntegrate[logit[x], {x, 1, 5}]FindRoot[logit[x] == .5, {x, 5}]オプション (8)
ConfidenceLevel (1)
data = {{0, 1}, {1, 0}, {3, 1}, {5, 0}};logit = LogitModelFit[data, x, x]logit["ParameterEstimates"][All, "ConfidenceInterval"]//Normallogit = LogitModelFit[data, x, x, ConfidenceLevel -> .99]logit["ParameterEstimates"][All, "ConfidenceInterval"]//NormalFittedModelでレベルを90%に設定する:
logit["ParameterEstimates", ConfidenceLevel -> .9][All, "ConfidenceInterval"]//NormalCovarianceEstimatorFunction (1)
data = {{0, 1}, {1, 0}, {3, 1}, {5, 0}};logit = LogitModelFit[data, x, x]logit["CovarianceMatrix"]logit["CovarianceMatrix", CovarianceEstimatorFunction -> "ObservedInformation"]DispersionEstimatorFunction (1)
data = {{1, 0}, {1, 1}, {1, 1}, {2, 0}, {2, 0}, {2, 1}, {2, 1}, {2, 1}, {2, 1}};logit = LogitModelFit[data, x, x]logit["CovarianceMatrix"]logit["CovarianceMatrix", DispersionEstimatorFunction -> "PearsonChiSquare"]IncludeConstantBasis (1)
LinearOffsetFunction (1)
data = {{0, 1}, {1, 0}, {3, 1}, {5, 0}};LogitModelFit[data, x, x]//Normal既知のSqrt[x]項でデータをモデルにフィットする:
LogitModelFit[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 = LogitModelFit[data, {x, y}, {x, y}, NominalVariables -> x]Normal[nom]LogitModelFit[data, {x, y}, {x, y}, NominalVariables -> All]//NormalWeights (1)
WorkingPrecision (1)
WorkingPrecisionを使ってより高精度のパラメータ推定を得る:
data = Table[{x, (10 - x) / 10}, {x, 10}]logit = LogitModelFit[data, x, x, WorkingPrecision -> 30]logit["BestFit"]logit["BestFit", WorkingPrecision -> MachinePrecision]特性と関係 (4)
デフォルト設定でのGeneralizedLinearModelFitからの"Binomial"モデルは LogitModelFitのモデルに等しい:
data = Table[{i, RandomReal[{i - 1, i}] / 10}, {i, 10}];GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Binomial"]//NormalLogitModelFit[data, x, x]//NormalProbitModelFitは"ProbitLink"を伴った"Binomial"モデルに等しい:
GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Binomial", LinkFunction -> "ProbitLink"]//NormalProbitModelFit[data, x, x]//NormalLogitModelFitは二項分布された応答を仮定する:
data = Table[{i, RandomReal[{i - 1, i}] / 10}, {i, 10}];lm = LogitModelFit[data, x, x]NonlinearModelFitは正規分布された応答を仮定する:
nm = NonlinearModelFit[data, 1 / (1 + Exp[a + b x]), {a, b}, x]{Normal[lm], Normal[nm]}Plot[{lm[x], nm[x]}, {x, 1, 5}]LogitModelFitは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"]LogitModelFit[ts1, x, x]ts2 = TimeSeriesRescale[ts1, {.1, 2}]ts2["Times"]LogitModelFit[ts2, x, x]LogitModelFit[ts1["Values"], x, x]LogitModelFitは,複数の経路のあるTemporalDataについては,経路ごとに作用する:
LogitModelFit[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), LogitModelFit, Wolfram言語関数, https://reference.wolfram.com/language/ref/LogitModelFit.html (2025年に更新).
CMS
Wolfram Language. 2008. "LogitModelFit." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/LogitModelFit.html.
APA
Wolfram Language. (2008). LogitModelFit. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LogitModelFit.html
BibTeX
@misc{reference.wolfram_2026_logitmodelfit, author="Wolfram Research", title="{LogitModelFit}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/LogitModelFit.html}", note=[Accessed: 16-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_logitmodelfit, organization={Wolfram Research}, title={LogitModelFit}, year={2025}, url={https://reference.wolfram.com/language/ref/LogitModelFit.html}, note=[Accessed: 16-July-2026]}