R语言建模线性回归

一、

a.

R 复制代码
# 给定的 (x, y) 数据
x <- c(2, 9, 10, 7)
y <- c(3, 13, 12, 11)

# 线性回归模型 y = a + bx
model1 <- lm(y ~ x)
summary(model1)  # 查看回归结果

# 提取系数 a 和 b
a <- coef(model1)[1]
b <- coef(model1)[2]

# 预测值
y_pred <- predict(model1)

# 计算 RMSE
rmse <- sqrt(mean((y - y_pred)^2))
cat("RMSE for model 1:", rmse, "\n")

# 计算 R²
r_squared <- summary(model1)$r.squared
cat("R² for model 1:", r_squared, "\n")

b.

R 复制代码
# b
# 给定的 (x, y) 数据
x <- c(2, 9, 10, 7)
y <- c(3, 13, 12, 11)
# 定义 z = log(x)
z <- log(x)

# 拟合 z 的线性回归模型
model_log <- lm(y ~ z)

# 打印模型参数 a 和 b
summary(model_log)

# 计算预测值
y_pred_log <- predict(model_log)

# 计算 RMSE
rmse_log <- sqrt(mean((y - y_pred_log)^2))
cat("RMSE (log):", rmse_log, "\n")

# 计算 R^2
r_squared_log <- summary(model_log)$r.squared
cat("R-squared (log):", r_squared_log, "\n")

c.

二、

a.

题目给出了三组数据点 (x_{11}, x_{12}, y_1), (x_{21}, x_{22}, y_2), (x_{31}, x_{32}, y_3):

• (x_{11}, x_{12}, y_1) = (0, 1, 1)

• (x_{21}, x_{22}, y_2) = (3, -2, 9)

• (x_{31}, x_{32}, y_3) = (-1, 4, -2)

问题 a 要求估计多元线性回归模型的 R^2 ,但是不需要进行计算。

R^2 是决定系数,表示模型解释的方差比例。 R^2 = 1 表示模型完美拟合数据,而 R^2 = 0 表示模型无法解释任何方差。

因为只有 3 个数据点,而我们有两个自变量 x_1 和 x_2 ,意味着回归模型将完美拟合这些数据点。因此,在这种情况下,模型的 R^2 值将是 1,因为我们可以通过回归完全解释数据的变化。

b.

R 复制代码
# 构造 X 矩阵和 y 向量
X <- matrix(c(1, 1, 1, 1,   # 截距项
              0, 3, -1, 2,  # x1
              1, -2, 4, 2), # x2
            nrow=4, byrow=TRUE)

y <- c(1, 9, -2, 2)

# 计算回归系数
beta <- solve(t(X) %*% X) %*% t(X) %*% y
beta
相关推荐
LawrenceLan10 小时前
Flutter 零基础入门(十一):空安全(Null Safety)基础
开发语言·flutter·dart
txinyu的博客10 小时前
解析业务层的key冲突问题
开发语言·c++·分布式
码不停蹄Zzz10 小时前
C语言第1章
c语言·开发语言
WJSKad123510 小时前
Mask R-CNN托盘完整性检测与分类实战指南_3
分类·r语言·cnn
行者9611 小时前
Flutter跨平台开发在OpenHarmony上的评分组件实现与优化
开发语言·flutter·harmonyos·鸿蒙
阿蒙Amon11 小时前
C#每日面试题-Array和ArrayList的区别
java·开发语言·c#
SmartRadio11 小时前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码
c语言·开发语言·c++·esp32·ble
且去填词11 小时前
Go 语言的“反叛”——为什么少即是多?
开发语言·后端·面试·go
知乎的哥廷根数学学派12 小时前
基于生成对抗U-Net混合架构的隧道衬砌缺陷地质雷达数据智能反演与成像方法(以模拟信号为例,Pytorch)
开发语言·人工智能·pytorch·python·深度学习·机器学习
yeziyfx12 小时前
kotlin中 ?:的用法
android·开发语言·kotlin