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 尝试使用由逻辑 S 型函数组成的基函数的线性组合来对数据建模.
- LogitModelFit 通常在分类中使用,用来模拟概率值.
- LogitModelFit 给出形为
的通用线性模型,假定原始的
是概率为
的伯努利试验的独立实现. - 函数
为 LogisticSigmoid. - LogitModelFit 返回一个符号 FittedModel 对象,表示构建的逻辑模型. 模型的属性和诊断可以从 model["property"] 得到.
- LogitModelFit 在特定点 x1、… 的最佳拟合函数的值可以从 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}] 中,设计矩阵 m 根据在点 {{f1,f2,…},{f1,f2,…},…} 的基函数 fi 形成. 响应向量 v 是响应列表 {y1,y2,…}.
- 对于一个设计矩阵 m 和响应向量 v,模型是
,其中
是估计参数的向量. - 当使用一个设计矩阵,基函数 fi 可以用形式 LogitModelFit[{m,v},{f1,f2,…}] 指定.
- LogitModelFit 等价于 GeneralizedLinearModelFit,其中 ExponentialFamily->"Binomial" 和 LinkFunction->Automatic.
- LogitModelFit 采用和 GeneralizedLinearModelFit 相同的选项,除了 ExponentialFamily 和 LinkFunction.
范例
打开所有单元 关闭所有单元基本范例 (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"]//Normal在 FittedModel 中设置级别为 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]对于多路径 TemporalData,LogitModelFit 按路径分别处理:
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 语言. 2008. "LogitModelFit." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/LogitModelFit.html.
APA
Wolfram 语言. (2008). LogitModelFit. Wolfram 语言与系统参考资料中心. 追溯自 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: 03-November-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: 03-November-2026]}