广义线性回归模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:glm被用于拟合广义线性模型,特别是通过给出对线性预测子的符号描述以及对误差分布的描述

一、广义线性回归模型

glm(formula, family = gaussian, data, weights, subset,
    na.action, start = NULL, etastart, mustart, offset,
    control = list(...), model = TRUE, method = "glm.fit",
    x = FALSE, y = TRUE, contrasts = NULL, ...)

formula	数据关系/模型的描述,举例:group~性别+年龄+体重+身高+吸烟定性+饮酒定性,Y:group,X:性别,年龄,体重,身高,吸烟定性,饮酒定性
family	响应变量(因变量/Y)的分布类型,需要自己根据响应变量分布情况在参数里定义
family 种类(默认连接函数)

binomial(link = "logit")#响应变量服从二项分布,连接函数为logit,即logistic回归
binomal(link=’probit’) #响应变量服从二项分布,连接函数为probit
gaussian(link = "identity")
Gamma(link = "inverse")
inverse.gaussian(link = "1/mu^2")
poisson(link = "log")#响应变量服从泊松分布,即泊松回归
quasi(link = "identity", variance = "constant")
quasibinomial(link = "logit")
quasipoisson(link = "log")

data	 可选择数据库,列表等
weights	 是一个可选择向量,在模型拟合过程中可以“优化权重”,应该设置成NULL或者一列数字向量
subset	 是一个可选择的向量,具体化在拟合过程的观察亚组
na.action	 指示缺失值处理
start	 线性预测子参数的起始值
etastart	 线性预测子的起始值
mustart	  均数向量的起始值
offset	可以被用来在拟合过程中具体化要被纳入线性预测子的优先已知部分,应该设置为NULL或者长度和案例一样的数字向量。
control	 控制拟合过程参数的列表
model	 指示model frame模型框是否应该被包含返回值的部分的逻辑变量
a logical value indicating whether model frame should be included as a component of the returned value.
method	用于拟合模型的方法,默认方法是"glm.fit": 迭代重新加权最小二重法iteratively reweighted least squares (IWLS),选择"model.frame"返回模型框并且不会拟合。
x, y	逻辑值指示被用于拟合过程的反应向量和模型矩阵是否应该被作为返回值的部分
contrasts	 一个可选择的列表
intercept	  逻辑,截距是否应该被包括在空模型里
object	可以从 "glm"类型里继承的对象
type	特征和偏好匹配被允许,从被拟合模型对象里提取出的权重类型,可以缩写

提示:以下是本篇文章正文内容,下面案例可供参考

二、数据集简介

示例数据来自同上文随机森林一样来源于网上比较流行的股票交易回报数据。下面是该数据集的说明:

The variables are:

Year: The year that the observation was recorded
Lag1: Percentage return for previous week
Lag2: Percentage return for 2 weeks previous
Lag3: Percentage return for 3 weeks previous
Lag4: Percentage return for 4 weeks previous
Lag5: Percentage return for 5 weeks previous
Volume: Volume of shares traded (average number of daily shares traded in billions)
Today: Percentage return for this week
Direction: A factor with levels Down and Up indicating whether the market had a positive or negative return on a given week

三、使用步骤

1.引入库和读入数据

代码如下(示例):

library(ISLR)
library(broom)
library(tidyverse)
library(ggplot2)
library(MASS)
library(class)
library(caret)
library(e1071)
data <- read.csv('weekly.csv')

2.简单分析

代码如下(示例):

#描述性统计分析
summary(data)
      Year           Lag1               Lag2               Lag3         
 Min.   :1990   Min.   :-18.1950   Min.   :-18.1950   Min.   :-18.1950  
 1st Qu.:1995   1st Qu.: -1.1540   1st Qu.: -1.1540   1st Qu.: -1.1580  
 Median :2000   Median :  0.2410   Median :  0.2410   Median :  0.2410  
 Mean   :2000   Mean   :  0.1506   Mean   :  0.1511   Mean   :  0.1472  
 3rd Qu.:2005   3rd Qu.:  1.4050   3rd Qu.:  1.4090
### 广义线性回归模型 (GLR) 的原理 广义线性回归是一种扩展的线性回归模型,能够处理非正态分布的响应变量。该模型通过引入链接函数和指定一个分布族来描述响应变量与预测变量之间的关系[^2]。 #### 链接函数的作用 在广义线性回归中,链接函数用于建立线性预测器(即自变量的线性组合)与期望值之间的映射关系。这种映射使得即使因变量不是正态分布的情况下也能应用线性方法进行拟合。例如,在泊松回归中使用的自然对数作为链接函数可以很好地适应计数数据的特点;而在逻辑回归里采用logit函数则适用于二元分类问题[^3]。 #### 分布族的选择 为了更灵活地应对不同类型的数据特征,广义线性回归允许选择不同的概率分布家族来定义随机误差项的概率密度形式。常用的有高斯分布(对应于标准线性回归),伯努利分布(适合二分法目标), 泊松分布以及伽玛分布等。每种分布都假设了特定类型的方差结构,并且影响着估计参数的方法及其解释方式[^4]。 ```python from pyspark.ml.regression import GeneralizedLinearRegression glr = GeneralizedLinearRegression(family="gaussian", link="identity", maxIter=10, regParam=0.3) model = glr.fit(trainingData) # Make predictions. predictions = model.transform(testData) ``` 此代码片段展示了如何利用 PySpark 中 `GeneralizedLinearRegression` 类创建并训练一个基于高斯分布族的身份链接函数下的广义线性回归模型实例[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值