在R中线性回归分析的函数是lm()

本文介绍了在R语言中进行一元线性回归分析的方法。使用lm()函数拟合直线,通过分析回归结果中的回归系数、t值、P值和R - squared判断回归效果。本例回归效果显著,得出回归直线。还可使用predict()函数根据给定x值求出Y值概率为0.95的相应区间。

在R中线性回归分析的函数是lm()。

(1)一元线性回归

我们可以根据以上数据来分析合金的强度是否与碳含量有关系。

首用以下命令把数据读取到R中:

x <- c(seq(0.10,0.18,by = 0.01),0.20,0.21,0.23)
y <- c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0)
plot(x,y)

通过画图得到想x,y两个变量之间存在某种线性关系

所以,就可以用lm()函数来拟合直线,通过回归函数lm()得到如下结果:

lm.sol <- lm(y~1+x)  ##lm()函数返回拟合结果的对象,可以用summary()函数查看其内容。
summary(lm.sol)

回归结果:

Call:
lm(formula = y ~ 1 + x)

Residuals:
Min 1Q Median 3Q Max 
-2.0431 -0.7056 0.1694 0.6633 2.2653 

Coefficients:
Estimate Std. Error t value Pr(>|t|)  
(Intercept) 28.493 1.580 18.04 5.88e-09 ***
  x           130.835 9.683 13.51 9.50e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.319 on 10 degrees of freedom
Multiple R-squared: 0.9481, Adjusted R-squared: 0.9429 
F-statistic: 182.6 on 1 and 10 DF, p-value: 9.505e-08

结果分析:

其中,两个回归系数分别是28.493和130.835,结果里面还有t值,以及两个P值,P值越小,回归效果越显著,并且后面星级越高。

倒数第二行R-squared数字越接近于1,回归效果越好。

所以,本例回归分析效果显著,回归直线为:y=28.493+130.835x。

做完回归分析之后还可以进行做预测,也就是说给定一个x值,可以求出Y值的概率为0.95的相应区间。在R中可以用predict()函数实现:

> new <- data.frame(x = 0.16)     ##注意,一个值也要写出数据框的形式。
> lm.pred <- predict(lm.sol,new,interval = "prediction",level = 0.95)   ##加上interval = "prediction",表示同时给出相应的预测区间。
> lm.pred
    fit          lwr    upr
1  49.42639 46.36621 52.48657

### 关于 `sklearn` 中线性回归函数 #### 函数定义与参数解释 在 `sklearn` 的 `linear_model` 模块下提供了 `LinearRegression` 类,用于实现普通的最小二乘法线性回归。该类的主要初始化参数如下[^3]: - **fit_intercept**: 布尔值,默认为 True。表示是否计算此模型的截距项。如果设置为 False,则不计算截距。 - **normalize**: 布尔值,默认为 False。当 fit_intercept 设置为 True 时有效;如果设为 True,在回归前会自动将自变量标准化。 - **copy_X**: 布尔值,默认为 True。指明是否会复制 X 数据还是对其进行覆盖操作。 - **n_jobs**: 整数或 None,默认为 None。指定运行算法时使用的并行作业数量。 #### 使用方法及示例代码 为了展示如何利用 `sklearn` 进行线性回归建模,下面给出了一段完整的 Python 示例程序,涵盖了数据准备、模型创建、拟合以及预测的过程[^2]: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.datasets import make_regression import numpy as np # 创建模拟数据集 X, y = make_regression(n_samples=100, n_features=1, noise=0.1) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化线性回归对象 regressor = LinearRegression() # 训练模型 regressor.fit(X_train, y_train) # 输出系数和截距 print('Coefficients:', regressor.coef_) print('Intercept:', regressor.intercept_) # 预测新样本的结果 predictions = regressor.predict(X_test) ``` 上述例子展示了怎样快速构建一个基于给定特征矩阵 \(X\) 和目标向量 \(y\) 的简单线性回归模型,并进行了基本的数据分割以便后续验证模型性能。 #### 性能评估 对于建立好的线性回归模型来说,通常采用决定系数 (\(R^2\)) 来衡量其优劣程度。\(R^2\) 越接近于 1 表现越好,意味着更多的方差被模型所解释。当然也可以根据具体应用场景选用其他合适的评价指标[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值