建立广义线性回归模型
使用双向交互模型,建立吸烟概率作为年龄、体重和性别函数的逻辑二项式模型。
加载医院
数据集数组。
负载医院dsa =医院;
使用允许年龄、体重和性别变量之间双向交互的公式指定模型。吸烟者是反应变量。
modelspec ='吸烟者~年龄*体重*性别-年龄:体重:性别';
符合逻辑二项模型。
mdl = fitglm(dsa,modelspec,'分配',“二项式”)
MDL =广义线性回归模型:分对数(吸烟)〜1个+性别*年龄+性别*重量+年龄*分子量分布=二项式估计系数:估计SE TSTAT p值___________ _________ ________ _______(截距)-6.0492 19.749 -0.3063 0.75938 Sex_Male -2。2859 12.424 -0.18399 0.85402 Age 0.11691 0.50977 0.22934 0.81861 Weight 0.031109 0.15208 0.20455 0.83792 Sex_Male:Age 0.020734 0.20681 0.10025 0.92014 Sex_Male:Weight 0.01216 0.053168 0.22871 0.8191 Age:Weight -0.00071959 0.0038964 -0.18468 0.85348 100 observations, 93 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 5.07, p-value = 0.535
所有的p值(下p值
)大。这意味着没有一个系数是重要的。大
-值用于模型的检验,0.535,表明该模型在统计上可能与常数模型没有差异。
用20个预测器创建示例数据,使用只有三个预测器,以及泊松响应,以及常数。
rng (“默认”)%的再现性X = randn(100,7);亩= EXP(X(:[4; 0.2; 0.3],[1 3 6])* + 1);Y = poissrnd(亩);
利用泊松分布拟合一个广义线性模型。
mdl = fitglm (X, y,'线性','分配',“泊松)
MDL =广义线性回归模型:日志(y)的〜1 + X1 + X2 + X3 + X4 + X5 + X6 + X7分布=泊松估计系数:估计SE TSTAT p值_________ ________ __________(截距)0.88723 0.070969 12.502 7.3149e-3.6 x1 0.44413 0.052337 8.4858 2.1416e-17 x2 0.0083388 0.056527 0.14752 0.88272 x3 0.21518 0.063416 3.3932 0.00069087 x4 -0.058386 0.065503 -0.89135 0.37274 x5 -0.060824 0.073441 -0.8282 0.40756 x6 0.34267 0.056778 6.0352 1.5878e-09 x7 0.04316 0.06146 0.70225 0.48252 100 observations, 92 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 119, p-value = 1.55e-22
的p
-值2.14e-17、0.00069、1.58e-09表示变量的系数X1
,X3
, 和X6
统计学意义。
资源描述
- - - - - -输入数据输入数据,包括预测器和响应变量,指定为表或数据集数组。预测变量和响应变量可以是数字、逻辑、分类、字符或字符串。只有在以下情况下,响应变量才可以具有非数字类型的数据类型'分配'
是“二项式”
.
默认情况下,fitglm
将最后一个变量作为响应变量和其他变量作为预测变量。
要将不同的列设置为响应变量,请使用响应官员
名称-值对的论点。
要使用列的子集作为预测器,请使用预测orvars
名称-值对的论点。
要定义模型规范,请设置Modelspec.
使用公式或术语矩阵的参数。公式或术语矩阵指定使用哪些列作为预测器或响应变量。
表中的变量名不一定是有效的MATLAB®身份标识。但是,如果名称是无效的,你不能当你适应或调整模型中使用的公式;例如:
您不能指定Modelspec.
使用公式。
你不能用一个公式来指定的条款中添加或当您使用删除addTerms
函数或removeterms.
函数,分别。
您可以验证变量名资源描述
通过使用isvarname
函数。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makeValidName
函数。
X
- - - - - -预测变量预测变量,指定为n——- - - - - -p矩阵,n是观测值的数量和p为预测变量的数量。每一列的X
表示一个变量,每一行表示一个观察。
默认情况下,模型中存在一个常量术语,除非您显式删除它,因此不包含1S的列X
.
数据类型:单身的
|双
y
- - - - - -反应变量响应变量,指定为向量或矩阵。
如果'分配'
不是“二项式”
,然后y
必须是一个n×1向量,其中n为观察次数。中的每个条目y
对应一行的响应是X
.数据类型必须为单或双。
如果'分配'
是“二项式”
,然后y
可以是一个n1的向量或n- × 2矩阵,列1和BinomialSize
在第2列。
数据类型:单身的
|双
|逻辑
|分类
Modelspec.
- - - - - -模型规格'线性'
(默认)|字符矢量或字符串标量命名模型|t————(p+ 1)术语矩阵|字符向量或字符串标量公式的形式“y ~条款”
模型规范,指定为其中一个值。
命名模型的字符向量或字符串标量。
价值 | 模型类型 |
---|---|
'持续的' |
模型仅包含一个常数(截距)术语。 |
'线性' |
模型包含每个预测器的截距和线性项。 |
“互动” |
模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。下载188bet金宝搏 |
“purequadratic” |
模型包含每个预测器的截距项和线性和平方术语。 |
“二次” |
模型包含一个截距项,线性和对每个预测平方项,以及对不同的预测器的所有产品。下载188bet金宝搏 |
'Poly. |
模型是一种多项式,所有条款均可获得程度我 第一个预测因子是程度j 在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,“poly13” 有一个截距x1,x2,x22,x23.,x1*x2, 和x1*x22条款,x1和x2分别是第一和第二预测因素。 |
一个t————(p+ 1)矩阵,或者术语矩阵,在模型中指定项,其中t是多少项和p为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。
字符矢量或字符串标量公式在表单中
“y ~条款”
,
在哪里术语
在Wilkinson表示法.公式中的变量名必须是资源描述
或指定的可变名称Varnames
.此外,变量名称必须是有效的MATLAB标识符。
该软件通过使用中术语的顺序来确定拟合模型中术语的顺序资源描述
或者X
.因此,模型中的术语顺序可以与指定公式中的术语顺序不同。
例子:“二次”
指定可选的逗号分隔的对名称,值
参数。姓名
参数名和价值
是相应的价值。姓名
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
'分配', '正常', '链接', '概率', '排除',[23,59]
指定响应的分布是正常的,并指示fitglm
使用probit链接函数并从拟合中排除第23和59个观测值。
BinomialSize
- - - - - -二项分布的试验次数二项分布的试验次数,即样本容量,指定为逗号分隔对组成“BinomialSize”
变量名资源描述
,数字标量或与响应相同长度的数字矢量。这是参数n
对于拟合的二项分布。BinomialSize
仅适用于分布
参数是“二项式”
.
如果BinomialSize
是标量值,这意味着所有观察结果都有相同数量的试验。
作为一种替代BinomialSize
,您可以将响应指定为一个两列矩阵,在第1列和中包含计数BinomialSize
在第2列。
数据类型:单身的
|双
|字符
|细绳
B0
- - - - - -系数估计的初始值系数估计的初始值,指定为数字向量。默认值是源自输入数据的初始拟合值。
数据类型:单身的
|双
CategoricalVars
- - - - - -分类变量列表分类变量列表,指定为逗号分隔的配对组成“CategoricalVars”
以及在表或数据集数组中包含分类变量名的字符向量的字符串数组或单元格数组资源描述
,或指示哪些列是分类列的逻辑或数字索引向量。
如果数据在表或数据集数组中资源描述
,那么默认情况下,fitglm
将所有分类值、逻辑值、字符数组、字符串数组和字符向量的单元格数组视为分类变量。
如果数据在矩阵中X
,则为的默认值“CategoricalVars”
是一个空矩阵[]
.也就是说,没有一个变量是绝对的,除非你指定它为绝对的。
例如,您可以使用以下任意一种方法指定六个变量中的第二个和第三个变量为分类变量:
例子:“CategoricalVars”,[2,3]
例子:'CategoricalVars',逻辑([0 1 1 0 0 0])
数据类型:单身的
|双
|逻辑
|细绳
|细胞
DispersionFlag
- - - - - -计算色散参数的指示器假
为“二项式”
和“泊松
分布(默认)|真的
用于计算色散参数的指标“二项式”
和“泊松
分布,指定为逗号分隔对组成'DispersionFlag'
下面是其中之一。
真的 |
在计算标准误差时估计一个离散参数。估计的色散参数值是皮尔逊残差的平方和除以误差自由度(DFE)。 |
假 |
违约。计算标准误差时,使用理论值1。 |
拟合功能始终估计用于其他分布的色散。
例子:“DispersionFlag”,真的
分布
- - - - - -响应变量的分布“正常”
(默认)|“二项式”
|“泊松
|“伽马”
|'逆高斯'
响应变量的分布,指定为逗号分隔对组成'分配'
下面是其中之一。
“正常” |
正态分布 |
“二项式” |
二项分布 |
“泊松 |
泊松分布 |
“伽马” |
伽马分布 |
'逆高斯' |
逆高斯分布 |
例子:“分布”、“伽马”
排除
- - - - - -观察排除要从匹配中排除的观察值,指定为由逗号分隔的对组成“排除”
以及逻辑或数字索引向量,指示要从拟合中排除哪些观测值。
例如,您可以使用下面的任何一个示例排除6个观察值中的2个和3个。
例子:“排除”,[2,3]
例子:'排除',逻辑([0 1 1 0 0])
数据类型:单身的
|双
|逻辑
截距
- - - - - -指示器常数项真的
(默认)|假
适应度中的常数项(截距)指示符,指定为逗号分隔的对组成“拦截”
,要么真的
包括或假
从模型中移除常数项。
用“拦截”
仅当使用字符向量或字符串标量指定模型时,而不是使用公式或矩阵。
例子:“拦截”,假的
链接
- - - - - -链接功能用于代替规范链接功能的链接功能,指定为逗号分隔对组成“链接”
下面是其中之一。
LINK功能名称 | 链接功能 | 意味着(逆)函数 |
---|---|---|
'身份' |
f(μ)=μ | μ=Xb |
“日志” |
f(μ)=日志(μ) | μ= exp(Xb) |
分对数的 |
f(μ)=日志(μ/(1-μ)) | μ= exp(Xb)/(1个+ EXP(Xb)) |
'概率' |
f(μ)=φ.-1(μ),其中Φ为标准正态分布的累积分布函数。 | μ=Φ(Xb) |
'comploglog' |
f(μ)=日志(-log(1 -μ)) | μ= 1 - exp( -Xb)) |
“互惠” |
f(μ)= 1 /μ | μ= 1 / (Xb) |
p (数量) |
f(μ)=μp | μ=Xb1 /p |
|
f(μ)=S.Link (μ) |
μ=S.Inverse (Xb) |
链接函数定义的关系f(μ)=X*b平均响应之间μ以及预测因子的线性组合X*b.
有关规范链接功能的更多信息,请参阅规范链接功能.
例子:'链接','probit'
数据类型:字符
|细绳
|单身的
|双
|结构体
选项
- - - - - -优化选项statset ('fitglm
”)
(默认)|结构体优化选项,指定为结构。该参数确定迭代算法的控制参数fitglm
用途。
创建'选项'
使用该功能的值statset
或通过创建包含在该表中描述的字段和值的结构阵列。
字段名 | 价值 | 默认值 |
---|---|---|
展示 |
算法显示的信息量
|
“关闭” |
麦克斯特 |
允许的最大迭代次数,指定为正整数 |
100. |
TolX |
参数的终止公差,指定为正标量 |
1E-6 |
你也可以输入statset ('
在命令窗口中查看字段的名称和默认值fitglm
”)fitglm
接受的'选项'
名称-值参数。
例子:'选项',statset('显示','final','maxiter',1000)
指定显示迭代算法结果的最终信息,并将允许的最大迭代次数更改为1000。
数据类型:结构体
抵消
- - - - - -抵消变量在配合偏移变量,指定为逗号分隔的一对组成的'抵消'
变量名资源描述
或者一个与响应长度相同的数字向量。
fitglm
使用抵消
作为一个系数值固定为1的附加预测器。换句话说,拟合公式为
f(μ)=抵消+X*b
,
在哪里f是链接功能,μ平均值是多少X*b是预测因子的线性组合吗X.的抵消
预测了系数1
.
例如,考虑泊松回归模型。假设是著名的理论依据计数的数量是成正比的预测一个
.通过使用日志链接函数和指定日志(一)
作为补偿,您可以强制模型满足这个理论约束。
数据类型:单身的
|双
|字符
|细绳
预测orvars
- - - - - -预测变量要在适合的情况下使用的预测变量,指定为逗号分隔对组成“PredictorVars”
以及表或数据集数组中变量名的字符向量的字符串数组或单元格数组资源描述
,或逻辑或数字索引向量,指示哪些列是预测变量。
中的名称应包含字符串值或字符向量资源描述
或者使用您使用的名称“VarNames”
名称-值对的论点。
默认是所有的变量X
,或所有变量资源描述
除了响应官员
.
例如,您可以使用以下任意一个示例指定第二个和第三个变量作为预测变量。
例子:“PredictorVars”,[2,3]
例子:'PredictorVars',逻辑([0 1 1 0 0])
数据类型:单身的
|双
|逻辑
|细绳
|细胞
响应官员
- - - - - -反应变量资源描述
(默认)|包含变量名的字符向量或字符串标量|逻辑或数字索引矢量响应变量要在适合中使用,指定为逗号分隔对组成'ResponseVar'
以及在表或数据集数组中包含变量名的字符向量或字符串标量资源描述
,或逻辑或数字索引向量,指示哪一列是响应变量。你通常需要使用'ResponseVar'
当拟合表或数据集数组时资源描述
.
例如,您可以指定第四个变量收益率
作为响应了6个变量,通过以下方式之一。
例子:“ResponseVar”、“收益”
例子:“ResponseVar”,[4]
例子:'ResponseVar',逻辑([0 0 0 1 0 0])
数据类型:单身的
|双
|逻辑
|字符
|细绳
VarNames
- - - - - -变量的名字{x1, x2,…,‘xn’,‘y’}
(默认)|字符串数组|字符向量的单元阵列变量的名称,指定为逗号分隔的配对组成“VarNames”
以及字符向量的字符串数组或单元格数组,其中包括的列的名称X
首先是响应变量的名称y
最后的。
“VarNames”
不适用于表或数据集数组中的变量,因为这些变量已经有了名称。
变量名不必是有效的MATLAB标识符。但是,如果名称是无效的,你不能当你适应或调整模型中使用的公式;例如:
你不能用一个公式来指定的条款中添加或当您使用删除addTerms
函数或removeterms.
函数,分别。
在指定之前VarNames, VarNames
,您可以验证变量名称varNames
通过使用isvarname
函数。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makeValidName
函数。
例子:'VarNames',{ '马力', '加速', 'Model_Year', 'MPG'}
数据类型:细绳
|细胞
权重
- - - - - -观察权重的(n, 1)
(默认)|n非负标量值的-乘1向量观察权值,指定为逗号分隔的对,由“重量”
和一个n非负标量值的-by-1向量,其中n为观察次数。
数据类型:单身的
|双
MDL.
-广义线性回归模型GeneralizedLinearModel
对象广义线性回归模型,指定为GeneralizedLinearModel
对象创建使用fitglm
或者挺身油
.
一个条件矩阵T
是A.t————(p+ 1)指定模型中的项的矩阵,其中t是项的个数,p为预测变量的个数,+1表示响应变量。的价值T (i, j)
是变量的指数吗j
术语我
.
例如,假设输入包括三个预测变量X1
,X2
, 和X3
以及响应变量y
的顺序X1
,X2
,X3
, 和y
.每一行的T
代表一个术语:
[0 0 0 0]
-常数项或截距
[0 1 0 0]
- - - - - -X2
;同样,x1 ^ 0 * x2 ^ 1 * x3 ^ 0
[1 0 1 0]
- - - - - -X1 X3 *
[2 0 0 0]
- - - - - -x1 ^ 2
[0 1 2 0]
- - - - - -X2 *(×3 ^ 2)
的0
在每个期限结束表示响应变量。通常,在一个方面矩阵的零的列向量表示响应变量的位置。如果你在一个矩阵列向量预测和响应变量,那么你就必须包括0
对于每行的最后一列中的响应变量。
模型规范的公式是这种形式的字符向量或字符串标量'
.y
~术语
'
y
是响应名称。
术语
表示使用Wilkinson表示法的模型中的预测术语。
要表示预测器和响应变量,请使用表输入的变量名资源描述
或使用指定的变量名VarNames
.的默认值VarNames
是{x1, x2,…,‘xn’,‘y’}
.
例如:
'Y〜X1 + X2 + X3'
指定一个带有截距的三变量线性模型。
'y〜x1 + x2 + x3 - 1'
指定一个无截距的三变量线性模型。注意,默认情况下,公式包含一个常量(截距)项。要从模型中排除常数项,必须包含-1
在公式。
一个公式包含一个常数项,除非你明确地用-1
.
威尔金森表示法描述了模型中的术语。这个符号与模型中的项相关,而不是这些项的乘数(系数)。
威尔金森表示法使用这些符号:
+
方法包括下一个变量。
- - - - - -
意味着不包括下一个变量。
:
定义一个交互,它是术语的产物。
*
定义交互和所有低阶项。
^
将预测器提升到一个指数,就像*
重复,所以^
也包括低阶项。
()
群体条款。
该表显示了威尔金森表示法的典型例子。
Wilkinson表示法 | 标准符号术语 |
---|---|
1 |
常数(拦截) |
x1 ^ k ,在那里k 为正整数 |
X1 ,X12 ,...,X1k |
x1 + x2 |
X1 ,X2 |
X1 * X2 |
X1 ,X2 ,X1 * X2 |
x1:x2 |
X1 * X2 只有 |
-x2 |
不包括X2 |
x1 * x2 + x3 |
X1 ,X2 ,X3 ,X1 * X2 |
X1 + x2 + x3 + X1:x2 |
X1 ,X2 ,X3 ,X1 * X2 |
X1 * X2 * X3 - X1:X2:X3 |
X1 ,X2 ,X3 ,X1 * X2 ,X1 X3 * ,x2 * x3 |
x1 * (x2 + x3) |
X1 ,X2 ,X3 ,X1 * X2 ,X1 X3 * |
有关详细信息,请参阅Wilkinson表示法.
广义线性模型的默认链接函数为规范的链接功能.
分布 | 规范链接功能名称 | 链接功能 | 意味着(逆)函数 |
---|---|---|---|
“正常” |
'身份' |
f(μ)=μ | μ=Xb |
“二项式” |
分对数的 |
f(μ)=日志(μ/(1 -μ)) | μ= exp(Xb)/(1个+ EXP(Xb)) |
“泊松 |
“日志” |
f(μ)=日志(μ) | μ= exp(Xb) |
“伽马” |
-1 |
f(μ)= 1 /μ | μ= 1 / (Xb) |
'逆高斯' |
-2 |
f(μ)= 1 /μ2 | μ= (Xb)-1/2 |
广义线性模型MDL.
是一个标准的线性模型吗分布
名称-值对。
对于以下方法plotResiduals
或者devianceTest
的属性GeneralizedLinearModel
对象,参见GeneralizedLinearModel
.
在训练模型之后,您可以生成C/ c++代码来预测对新数据的响应。生成C/ c++代码需要MATLAB编码器™.有关详细信息,请参见介绍代码生成.
fitglm
处理分类预测器,如下所示:
一个有绝对预测器的模型l级别(类别)包括l- 1指示器变量。该模型使用第一类作为参考级别,因此它不包括参考级别的指示灯。如果分类预测器的数据类型是分类
,则可以使用类别
并通过使用reordercats
自定义参考级别。有关创建指示器变量的更多详细信息,请参阅虚拟变量的自动创建.
fitglm
对待一组l- 1指示器变量作为一个单独的变量。如果您想将指示器变量视为不同的预测变量,可以使用dummyvar
.然后在拟合模型时,使用除分类变量参考水平对应的指标变量外的其他指标变量。对于绝对预测器X
如果您指定的所有列dummyvar(X)
和截距项作为预测,则设计矩阵变成秩亏。
连续预测器和分类预测器之间的交互项l层次由元素的乘积组成l- 1带有连续预测器的指标变量。
有两个分类预测变量之间的相互作用方面l和M级别包括(l- 1) * (M- 1)指标变量包括两个分类预测水平的所有可能组合。
不能为绝对预测器指定高阶项,因为指示器的平方等于它本身。
fitglm
认为南
,”
(空字符向量),""
(空字符串),< >失踪
, 和<定义>
价值资源描述
,X
, 和Y
丢失值。fitglm
不使用缺少匹配值的观测值。的ObservationInfo
拟合模型的性质表明是否fitglm
使用在配合每个观测。
用挺身油
自动选择型号规格。用步
,addTerms
, 或者removeterms.
调整拟合模型。
[1] Collett D。建模二进制数据.纽约:查普曼与霍尔出版社,2002年出版。
多布森广义线性模型导论.纽约:查普曼与霍尔出版社,1990。
P. McCullagh和J. A. Nelder。广义线性模型.纽约:查普曼与霍尔出版社,1990。
对于内存不足的数据,这个函数金宝app支持高数组,但有一些限制。
如果有任何输入参数fitglm
是一个高大的阵列,那么所有其他输入也必须是高阵列。这包括提供的非空变量“重量”
,“排除”
,'抵消'
, 和“BinomialSize”
名称-值对。
默认的迭代次数是5次。属性可以更改迭代次数'选项'
在选项结构中传递的名称-值对。使用。创建选项结构statset
指定不同的值麦克斯特
.
对于高数据,fitglm
返回一个CompactGeneralizedLinearModel
对象,该对象包含与GeneralizedLinearModel
目的。主要的区别是,该紧凑目的是内存需求很敏感。紧凑的对象不包括属性包括该数据,或包括相同大小的数据的数组。紧凑的对象不包含这些GeneralizedLinearModel
属性:
诊断
安装
抵消
ObservationInfo
ObservationNames
残差
步骤
变量
您可以直接从返回的Compact对象中计算残差GLM = fitglm(X,Y)
使用
res = y - 预测(glm,x);s = sqrt(glm.sse / glm.dfe);直方图(Res,Linspace(-3 * s,3 * s,51)))
有关更多信息,请参见用于内存不足数据的高数组.
该功能完全支持GPU阵列。金宝app有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
您已经有了geänderte版本死亡Beispiels。Möchten您是谁? Änderungen öffnen?
SIE haben奥夫einen链接geklickt,DER diesem MATLAB的Befehl entspricht:
Führensieden befehl Durch Eingabe在Das Matlab-Befehlsfenster Aus。WebBrowserUnterstützenKeineMatlab-Befehle。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。