R语言一元线性回归案例
时间: 2023-11-27 22:05:54 浏览: 79
以下是一个基于R语言的一元线性回归案例:
假设我们有一组数据,其中x表示广告费用,y表示销售额。我们想要建立一个线性回归模型,来预测广告费用对销售额的影响。
首先,我们需要导入数据集并进行可视化分析:
```R
# 导入数据集
data <- read.csv("data.csv")
# 绘制散点图
plot(data$x, data$y, main="Scatterplot", xlab="Advertising Cost", ylab="Sales")
```
接下来,我们可以使用lm()函数来拟合线性回归模型:
```R
# 拟合线性回归模型
model <- lm(y ~ x, data=data)
# 输出模型摘要
summary(model)
```
模型摘要将会输出模型的各项指标,包括R-squared值、系数估计值、标准误差、t值、p值等等。
最后,我们可以使用predict()函数来进行预测:
```R
# 进行预测
newdata <- data.frame(x=100)
predict(model, newdata)
```
这里我们预测了广告费用为100时的销售额。
相关问题
一元线性回归模型 数据案例
### 关于一元线性回归模型的数据案例
在一元线性回归分析中,当研究对象仅涉及一个自变量和一个因变量,并且两者间的关系能够通过一条直线近似表达时,即构成了一元线性回归分析[^2]。
#### 示例数据集及应用案例:房价预测
考虑一个简单的应用场景——基于房屋面积来预测其售价。这里假定房价主要受居住面积的影响,在此条件下构建了一个简单的一元线性回归模型用于预测特定大小住宅的价格[^4]。
```python
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
# 假设给定一些已知的训练样本点 (X_train, y_train),其中 X 表示房子面积(单位:平方英尺),y 则代表对应的价格(单位:美元)
areas = [[100], [200], [300], [400], [500], [600]] # 训练集中各房型对应的建筑面积列表
prices = [8000, 9000, 10000, 11000, 12000, 13000] # 各户型相应市场成交价数组
# 创建并拟合一元线性回归模型
model = LinearRegression()
model.fit(areas, prices)
# 预测新输入值的结果
new_area = [[700]]
predicted_price = model.predict(new_area)[0]
print(f'根据现有模型估计,{new_area[0][0]} 平方英尺的房子预计售价约为 ${int(predicted_price)}')
# 绘制图表展示原始数据分布与最佳拟合直线
plt.scatter(areas, prices, color='blue', label="实际观测值")
plt.plot(np.linspace(min(areas), max(areas)),
model.coef_[0]*np.linspace(min(areas), max(areas)) + model.intercept_,
linestyle="--", color="red", linewidth=2, label="最优拟合曲线")
plt.xlabel('House Area (sq ft)')
plt.ylabel('Price ($)')
plt.title('One Variable Linear Regression Model')
plt.legend(loc='upper left')
plt.show()
```
上述代码片段展示了如何利用 `sklearn` 库中的 `LinearRegression()` 函数快速搭建起一个基本的一元线性回归模型,并借助该模型完成对未来未知情况下的价格预估工作。同时,还运用了 Matplotlib 工具包绘制出了直观反映整体趋势变化规律的最佳拟合直线图形。
基于机器学习线性回归模型案例(包含一元线性回归,多元线性回归和pca降维)的python代码
好的,下面是一个基于机器学习线性回归模型案例(包含一元线性回归,多元线性回归和pca降维)的Python代码:
一元线性回归:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义训练数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])
# 计算均值
x_mean = np.mean(x)
y_mean = np.mean(y)
# 计算斜率和截距
numerator = 0 # 分子
denominator = 0 # 分母
for i in range(len(x)):
numerator += (x[i] - x_mean) * (y[i] - y_mean)
denominator += (x[i] - x_mean) ** 2
k = numerator / denominator
b = y_mean - k * x_mean
# 计算预测值
y_pred = k * x + b
# 绘图
plt.scatter(x, y)
plt.plot(x, y_pred)
plt.show()
```
多元线性回归:
```python
import numpy as np
from sklearn.linear_model import LinearRegression
# 定义训练数据
X = np.array([[1, 2], [2, 4], [3, 6], [4, 8], [5, 10]])
y = np.array([3, 5, 7, 9, 11])
# 训练模型
model = LinearRegression()
model.fit(X, y)
# 预测
X_pred = np.array([[6, 12]])
y_pred = model.predict(X_pred)
print('预测值:', y_pred)
```
PCA降维:
```python
import numpy as np
from sklearn.decomposition import PCA
# 定义训练数据
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
# PCA降维
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)
print('降维后的数据:', X_reduced)
```
阅读全文