GeneralizedLinearModelFit[{{x1,y1},{x2,y2},…},{f1,f2,…},x]
构建一个形式为
的广义线性模型,该模型对于每个 xi 都拟合 yi.
GeneralizedLinearModelFit[data,{f1,f2,…},{x1,x2,…}]
构建形式为
的广义线性模型,其中 fi 依赖于变量 xk.
GeneralizedLinearModelFit[{m,v}]
按照设计矩阵 m 和响应向量 v 构建一个广义线性模型.
GeneralizedLinearModelFit
GeneralizedLinearModelFit[{{x1,y1},{x2,y2},…},{f1,f2,…},x]
构建一个形式为
的广义线性模型,该模型对于每个 xi 都拟合 yi.
GeneralizedLinearModelFit[data,{f1,f2,…},{x1,x2,…}]
构建形式为
的广义线性模型,其中 fi 依赖于变量 xk.
GeneralizedLinearModelFit[{m,v}]
按照设计矩阵 m 和响应向量 v 构建一个广义线性模型.
更多信息和选项
- GeneralizedLinearModelFit 尝试用一个由通用可逆函数(链接函数)转换的函数的线性组合对输入数据进行建模.
- 假设原
是独立的观察值,服从均值为
的指数分布族,并且函数
是一个可逆链接函数,则 GeneralizedLinearModelFit 产生形式为
的广义线性模型. - ExponentialFamily 选项控制分布,而 LinkFunction 选项控制
的形式. - GeneralizedLinearModelFit 返回一个符号 FittedModel 对象,表示其构建的广义线性模型. 模型的属性以及诊断信息可以从 model["property"] 得到.
- GeneralizedLinearModelFit 在特定点 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 的数量. - 此外,可以使用设计矩阵来指定 data,而无需指定函数和变量:
-
{m,v} 设计矩阵 m 和响应向量 v - 在 GeneralizedLinearModelFit[m,v] 中,设计矩阵 m 是由数据点上的基函数 fi 的值形成的,形式为 {{f1,f2,…},{f1,f2,…},…}. 响应向量 v 是响应 {y1,y2,…} 的列表.
- 对于设计矩阵 m 和响应向量 v,模型是
,其中
是要计算的参数向量. - 当使用设计矩阵时,基函数 fi 可以用 GeneralizedLinearModelFit[{m,v},{f1,f2,…}] 形式指定.
- GeneralizedLinearModelFit 采用下列选项:
-
AccuracyGoal Automatic 搜索的准确度 ConfidenceLevel 95/100 参数和预测的置信度 CovarianceEstimatorFunction "ExpectedInformation" 参数协方差矩阵的估计方法 DispersionEstimatorFunction Automatic 估计变异参数的函数 ExponentialFamily Automatic y 的指数分布族 IncludeConstantBasis True 是否包含一个常数基函数 LinearOffsetFunction None 线性预测器的已知偏移 LinkFunction Automatic 模型的链接函数 MaxIterations Automatic 使用迭代的最大数量 NominalVariables None 名义变量 PrecisionGoal Automatic 搜索的精度 Weights Automatic 数据元素的权重 WorkingPrecision Automatic 内部计算的精度 - 在 IncludeConstantBasis->False 设置下,
形式的模型是拟合的. - 在 LinearOffsetFunction->h 设置下,形如
的模型是拟合的. - 在 ConfidenceLevel->p 下,对参数和预测区间计算概率 p 的置信区间.
- 在设置 DispersionEstimatorFunction->f 下,普通变异按 f[y,
,w] 估计,其中 y={y1,y2,…} 是观测值列表,
={
,
,…} 是预测值列表, w={w1,w2,…} 是测量 yi 的权重列表. - ExponentialFamily 的可能设置包括:"Gaussian"、"Binomial"、"Poisson"、"Gamma"、 "InverseGaussian" 或 "QuasiLikelihood".
- 用 model["property"] 得到的与数据和拟合函数相关的属性包括:
-
"BasisFunctions" 基函数列表 "BestFit" 拟合函数 "BestFitParameters" 参数估计 "Data" 输入数据或设计矩阵和响应向量 "DesignMatrix" 模型的设计矩阵 "Function" 最佳拟合的纯函数 "LinearPredictor" 拟合线性组合 "Response" 输入数据中的响应值 "Weights" 用于拟合数据的权重 - 与散布和模型变异相关的属性包括:
-
"Deviances" 变异 "DevianceData" 变异表格数据集 "EstimatedDispersion" 估计扩散参数 "NullDeviance" 空模型的变异 "NullDegreesOfFreedom" 空模型的自由度 "ResidualDeviance" 拟合模型的偏差与完全模型偏差之间的差异 "ResidualDegreesOfFreedom" 模型自由度和空自由度之间的差异 - 残差类型包括:
-
"AnscombeResiduals" Anscombe 残差 "DevianceResiduals" 变异残差 "FitResiduals" 实际响应和预测响应的不同 "LikelihoodResiduals" 似然残差 "PearsonResiduals" Pearson 残差 "StandardizedDevianceResiduals" 标准化变异残差 "StandardizedPearsonResiduals" 标准化 Pearson 残差 "WorkingResiduals" 工作残差 - 参数估计的属性和诊断信息包括:
-
"CorrelationMatrix" 渐近的参数相关矩阵 "CovarianceMatrix" 渐近的参数协方差矩阵 "ParameterEstimates" 拟合参数信息表 - 影响度量的属性包括
-
"CookDistances" 库克距离列表 "HatDiagonal" 帽子矩阵的对角元素 - 预测值的属性包括:
-
"PredictedResponse" 数据的拟合值 - 衡量拟合优度的属性包括:
-
"AdjustedLikelihoodRatioIndex" Ben‐Akiva 和 Lerman 似然比指数 "AIC" 赤池信息量准则 "BIC" 贝叶斯信息量准则 "CoxSnellPseudoRSquared" Cox 和 Snell 拟 
"CraggUhlerPseudoRSquared" Cragg 和 Uhler 拟 
"EfronPseudoRSquared" Efron 拟 
"LikelihoodRatioIndex" McFadden 似然比指数 "LikelihoodRatioStatistic" 似然比 "LogLikelihood" 拟合模型的对数似然 "PearsonChiSquare" Pearson
统计 - 也可通过 {"prop",x} 或 {"prop",{x1,x2,…}} 的形式调用属性 "BestFit",以便在特定自变量值处进行计算.
数据
选项
属性
范例
打开所有单元 关闭所有单元基本范例 (1)
data = {{.5, 1}, {1, 0}, {3, 2}, {5, 3}, {8, 20}};glm = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Poisson"]Normal[glm]glm[1.5]Show[ListPlot[data], Plot[glm[x], {x, 0, 8}]]glm["DevianceResiduals"]ListPlot[%, Filling -> Axis]范围 (15)
数据 (8)
GeneralizedLinearModelFit[{0, 1, 2, 3, 5, 5}, x, x]GeneralizedLinearModelFit[{{1, 0}, {2, 1}, {3, 2}, {4, 3}, {5, 5}, {6, 5}}, x, x]data = Flatten[Table[{x, y, 1 / (x + y + RandomReal[])}, {x, 5}, {y, 5}], 1];GeneralizedLinearModelFit[data, {x, y}, {x, y}, ExponentialFamily -> "Gamma"]Normal[%]GeneralizedLinearModelFit[data, {Sin[x], Cos[y]}, {x, y}, ExponentialFamily -> "Gamma"]//NormalGeneralizedLinearModelFit[{.5 -> 1, 1 -> 0, 3 -> 2, 5 -> 3, 8 -> 20}, x, x]GeneralizedLinearModelFit[{.5, 1, 3, 5, 8} -> {1, 0, 2, 3, 20}, x, x]GeneralizedLinearModelFit[(| | |
| -- | --- |
| 1 | 0.5 |
| 0 | 1 |
| 2 | 3 |
| 3 | 5 |
| 20 | 8 |) -> 1, x, x]data = {{a, 1}, {b, 2}, {a, 1.8}, {b, 2.5}};nom = GeneralizedLinearModelFit[data, x, x, NominalVariables -> x, ExponentialFamily -> "InverseGaussian"]nom["DevianceData"]dm = {{1, 1}, {1, 2}, {1, 3}, {1, 4}};
resp = {1, 3, 6, 10};GeneralizedLinearModelFit[{dm, resp}, ExponentialFamily -> "Poisson"]Normal[%]GeneralizedLinearModelFit[{dm, resp}, {x, y}, ExponentialFamily -> "Poisson"]//Normalglm = GeneralizedLinearModelFit[Range[10], x ^ 2, x, ExponentialFamily -> "Gamma"]glm["Properties"]属性 (7)
数据及拟合函数 (1)
data = Block[{i, j}, Table[{i = RandomReal[{1, 5}], j = RandomReal[{1, 5}], RandomReal[InverseGaussianDistribution[1 / Sqrt[5i + 2j], 10]]}, {10}]];glm = GeneralizedLinearModelFit[data, {x, y}, {x, y}, ExponentialFamily -> "InverseGaussian"]glm["Data"]{fit = glm["BestFit"], Show[Plot3D[fit, {x, 1, 5}, {y, 1, 5}], Graphics3D[{PointSize[0.025], Point[glm["Data"]]}]]}glm["Function"]MatrixForm /@ glm[{"DesignMatrix", "Response"}]残差 (1)
SeedRandom[1];
glm = GeneralizedLinearModelFit[RandomReal[10, {100, 3}], {x, y}, {x, y}, ExponentialFamily -> "Gamma"]{fr, ar, spr} = glm[{"FitResiduals", "StandardizedPearsonResiduals", "AnscombeResiduals"}];ListPlot[fr]在图形中,可视化显示 Anscombe 残差和标准化的 Pearson 残差:
Map[ListPlot[#, Filling -> 0]&, {ar, spr}]//Row散布和异常 (1)
SeedRandom[1];
data = Flatten[Table[{x, y, 1 / (1.2 + 3.7x + 4.1y + RandomReal[{-2, 2}])}, {x, RandomReal[{1, 5}, 10]}, {y, RandomReal[{1, 5}, 10]}], 1];glm = GeneralizedLinearModelFit[data, {x, y}, {x, y}, ExponentialFamily -> "Gamma"]glm["EstimatedDispersion"]ListPlot[glm["Deviances"], Filling -> 0]glm["DevianceData"]glm["DevianceData"][All, "ResidualDeviance"]//Normal参数估计诊断 (1)
SeedRandom[1];
data = Table[{i, RandomInteger[BinomialDistribution[20, .05 + i / 30 + Sin[i] / 10]] / 20}, {i, 1, 20, .2}];
glm = GeneralizedLinearModelFit[data, {x, Sin[x], Cos[x]}, x, ExponentialFamily -> "Binomial"];glm["ParameterEstimates"]glm["ParameterEstimates"][All, "ZStatistic"]//Normal影响度量 (1)
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]];
glm = GeneralizedLinearModelFit[data, {x, Log[x]}, x, ExponentialFamily -> "Binomial"]ListPlot[glm["CookDistances"], PlotRange -> {0, All}, Filling -> 0]ListPlot[glm["HatDiagonal"], PlotRange -> {0, All}, Filling -> 0]预测值 (1)
data = Flatten[Table[{x, y, 1 / Sqrt[1 + .3x + .5y + RandomReal[]]}, {x, RandomReal[5, 3]}, {y, RandomReal[5, 3]}], 1];glm = GeneralizedLinearModelFit[data, {x, y}, {x, y}, ExponentialFamily -> "InverseGaussian"]ListPlot[Transpose[glm[{"Response", "PredictedResponse"}]], FrameLabel -> {"observed", "predicted"}, Frame -> True, Axes -> False]拟合优度度量 (1)
data = Flatten[Table[{i, j, RandomReal[5], RandomInteger[PoissonDistribution[Exp[-.3i - 2j]]]}, {i, RandomReal[5, 5]}, {j, RandomReal[5, 5]}], 1];glm = GeneralizedLinearModelFit[data, {x, y, z}, {x, y, z}, ExponentialFamily -> "Poisson"]Grid[Transpose[{#, glm[#]}&[{"AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}]], Alignment -> Left]sub = Table[Join[{i}, GeneralizedLinearModelFit[data, i, {x, y, z}, ExponentialFamily -> "Poisson"][{"AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}]], {i, Subsets[{x, y, z}]}]Grid[Join[{{"Model", "AIC", "BIC", "LikelihoodRatioIndex", "PearsonChiSquare"}}, SortBy[sub, -#[[2]]&]]]推广和延伸 (1)
data = Table[{i, 1 / Sqrt[RandomReal[{i - 1, i}]]}, {i, 10}];
glm = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "InverseGaussian"]Integrate[glm[x], x]NIntegrate[glm[x], {x, 1, 5}]FindRoot[glm[x] == .5, {x, 5}]选项 (10)
ConfidenceLevel (1)
data = {{0, 1}, {1, 1.5}, {3, 2}, {5, 4}};glm = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "InverseGaussian"]glm["ParameterEstimates"][All, "ConfidenceInterval"]//Normalglm = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "InverseGaussian", ConfidenceLevel -> .99]glm["ParameterEstimates"][All, "ConfidenceInterval"]//Normal在 FittedModel 中设置级别为 90%:
glm["ParameterEstimates", ConfidenceLevel -> .9][All, "ConfidenceInterval"]//NormalCovarianceEstimatorFunction (1)
data = {{0, 1}, {1, 1.5}, {3, 2}, {5, 4}};glm = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "InverseGaussian"]glm["CovarianceMatrix"]glm["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 = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Binomial"]logit["CovarianceMatrix"]logit["CovarianceMatrix", DispersionEstimatorFunction -> "PearsonChiSquare"]ExponentialFamily (1)
data = {{0, 1}, {1, 1.5}, {3, 2}, {5, 4}};GeneralizedLinearModelFit[data, x, x]//NormalGeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Gamma"]//NormalGeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "InverseGaussian"]//NormalIncludeConstantBasis (1)
LinearOffsetFunction (1)
data = {{0, 1}, {1, 1.5}, {3, 2}, {5, 4}};GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Gamma"]//Normal拟合有已知 Sqrt[x] 项的一个伽玛回归模型:
GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Gamma", LinearOffsetFunction -> (Sqrt[#]&)]//NormalLinkFunction (1)
data = {{0, 1}, {1, 0}, {3, 2}, {5, 4}};拟合标准 Log 链接的泊松模型:
GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Poisson"]//NormalGeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Poisson", LinkFunction -> "IdentityLink"]//Normal用一个位移 Sqrt 链接的纯函数:
GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Poisson", LinkFunction -> (Sqrt[#1 + 1]&)]//NormalNominalVariables (1)
data = {{a, 0, 1}, {b, 2, 2}, {a, 2, 1.8}, {b, 0, 2.5}};nom = GeneralizedLinearModelFit[data, {x, y}, {x, y}, NominalVariables -> x, ExponentialFamily -> "Gamma"]Normal[nom]GeneralizedLinearModelFit[data, {x, y}, {x, y}, NominalVariables -> All, ExponentialFamily -> "Gamma"]//NormalWeights (1)
WorkingPrecision (1)
用 WorkingPrecision 在参数估计中得到更高的精度:
data = Table[{x, 1 / (x + x ^ 2)}, {x, 10}]glm = GeneralizedLinearModelFit[data, x, x, ExponentialFamily -> "Gamma", WorkingPrecision -> 25]glm["BestFit"]glm["BestFit", WorkingPrecision -> MachinePrecision]应用 (2)
data = BlockRandom[SeedRandom[1];RandomReal[{.8, 1}, 20]Table[(x - 1) / (1 + x), {x, 20}]];models = Map[Tooltip[Normal[GeneralizedLinearModelFit[data, {x, x ^ 2}, x, ExponentialFamily -> "Binomial", LinkFunction -> #]]]&, {"LogitLink", "ProbitLink", "LogLogLink", "LogComplementLink", "ComplementaryLogLogLink", "OddsPowerLink"}];Show[ListPlot[data, PlotRange -> All], Plot[models, {x, 1, 20}]]data = {{groupA, agree, 15}, {groupA, disagree, 66}, {groupB, agree, 63}, {groupB, disagree, 90}, {groupC, agree, 92}, {groupC, disagree, 46}};model = GeneralizedLinearModelFit[data, {var1, var2}, {var1, var2}, NominalVariables -> All, ExponentialFamily -> "Poisson"];Style[Grid[Join[{{"", "Agree", "Disagree"}}, Join[{{"Group A"}, {"Group B"}, {"Group C"}}, Partition[Map[Column[#, Alignment -> "."]&, Transpose[model[{"Response", "PredictedResponse", "StandardizedPearsonResiduals"}]]], 2], 2]], Dividers -> All], "DialogStyle"]属性和关系 (5)
DesignMatrix 用 GeneralizedLinearModelFit 构建设计矩阵:
data = Table[{i, RandomReal[]}, {i, 5}]DesignMatrix[data, x, x]//MatrixFormglm = GeneralizedLinearModelFit[data, x, x];glm["DesignMatrix"]//MatrixForm默认情况下 GeneralizedLinearModelFit 和 LinearModelFit 拟合相等模型:
data = Table[{i, RandomReal[{i - 1, i}]}, {i, 10}];GeneralizedLinearModelFit[data, x, x]LinearModelFit[data, x, x]默认的 "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]//NormalGeneralizedLinearModelFit 会使用 TimeSeries 的时间戳作为变量:
ts1 = TemporalData[TimeSeries, {{{1.102448341846048, 6.331833897009389, 7.5843632999043455,
44.59969789743589, 98.76273258351092, 150.00729051003992, 644.7367359379259,
1724.3968817536402, 5903.697723461762, 19468.09340765025}}, {{0, 9, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];ts1["Times"]GeneralizedLinearModelFit[ts1, x, x, ExponentialFamily -> "Gamma"]ts2 = TimeSeriesRescale[ts1, {.1, 2}]ts2["Times"]GeneralizedLinearModelFit[ts2, x, x, ExponentialFamily -> "Gamma"]GeneralizedLinearModelFit[ts1["Values"], x, x, ExponentialFamily -> "Gamma"]GeneralizedLinearModelFit 按路径逐条应用于多重路径 TemporalData:
GeneralizedLinearModelFit[TemporalData[Automatic, {{{1.102448341846048, 6.331833897009389, 7.5843632999043455,
44.59969789743589, 98.76273258351092, 150.00729051003992, 644.7367359379259,
1724.3968817536402, 5903.697723461762, 19468.09340765025},
{1.1024483418 ... 7359379259, 1724.3968817536402, 5903.697723461762,
19468.09340765025}}, {{0, 9, 1}, {0.1, 2., 0.2111111111111111}}, 2, {"Continuous", 2},
{"Discrete", 2}, 1, {ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1], x, x, ExponentialFamily -> "Gamma"]技术笔记
-
▪
- 统计模型分析
文本
Wolfram Research (2008),GeneralizedLinearModelFit,Wolfram 语言函数,https://reference.wolfram.com/language/ref/GeneralizedLinearModelFit.html (更新于 2025 年).
CMS
Wolfram 语言. 2008. "GeneralizedLinearModelFit." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/GeneralizedLinearModelFit.html.
APA
Wolfram 语言. (2008). GeneralizedLinearModelFit. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/GeneralizedLinearModelFit.html 年
BibTeX
@misc{reference.wolfram_2026_generalizedlinearmodelfit, author="Wolfram Research", title="{GeneralizedLinearModelFit}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/GeneralizedLinearModelFit.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_generalizedlinearmodelfit, organization={Wolfram Research}, title={GeneralizedLinearModelFit}, year={2025}, url={https://reference.wolfram.com/language/ref/GeneralizedLinearModelFit.html}, note=[Accessed: 03-November-2026]}