网站流量地址评价是什么意思,wordpress主题lenews,网站的建设与维护有什么作用,诚信宁津建设网站前言
自学笔记#xff0c;分享给语言学/语言教育学方向的#xff0c;但对语言数据处理感兴趣但是尚未入门#xff0c;却需要在论文中用到的小伙伴#xff0c;欢迎大佬们补充或绕道。ps#xff1a;本文最少限度涉及公式讲解#xff08;文科生小白友好体质#xff09;分享给语言学/语言教育学方向的但对语言数据处理感兴趣但是尚未入门却需要在论文中用到的小伙伴欢迎大佬们补充或绕道。ps本文最少限度涉及公式讲解文科生小白友好体质部分讲解会参考知乎等平台
本文重点多元回归模型的建立以及在实际语言学数据的处理
【1.多元回归分析的基本原理】
【2.应用条件】
【3.数据实例以及Python代码】
【4.结果分析】 1.多元回归分析的基本原理 多元线性回归用于估计两个或多个自变量与一个因变量之间的线性关系。
其基本思想是,因变量可以表示为自变量的线性组合,加上一个随机误差项。通过最小二乘法估计回归系数,建立回归方程,可以用于预测和解释变量间的关系。 左侧蓝色框代表多个自变量(X₁, X₂, X₃, ...)右侧橙色框代表因变量(Y)连接线上的β₁、β₂、β₃表示回归系数表示各个自变量对因变量的影响程度底部的回归方程Y β₀ β₁X₁ β₂X₂ β₃X₃ ... ε β₀ 是截距β₁, β₂, β₃ 等是回归系数ε 是误差项
这种关系表明
每个自变量都可能对因变量产生影响影响程度由回归系数β的大小决定所有自变量的影响是综合的、同时存在的模型中包含误差项(ε)表示存在其他未知或未计入的影响因素
2.应用条件
线性关系:因变量与自变量之间存在线性关系。可通过【散点图】初步判断。误差项正态性:随机误差项服从均值为0的正态分布。误差项独立性:随机误差项之间相互独立。方差齐性:不同自变量水平下,因变量的方差相等。自变量间无多重共线性:自变量之间不存在精确的线性关系。
3.数据实例以及Python代码
下面以一个语言教育学的数据为例,探讨多元回归分析的应用。
该数据包含了影响英语成绩的几个因素:学习时间、词汇量、语法能力和阅读理解能力得分。希望建立一个回归模型来预测英语成绩。
数据实例如下随机生成
序号学习时间 (小时/周)词汇量 (个)语法能力 (分)阅读理解 (分)英语成绩 (分)17.49188483.9466.2173.8728.77227392.2272.7786.138.91173185.5167.3777.4749.41215871.5373.8278.5357.99202382.6669.1177.18..................
1.导入必要的包和库
# 导入必要的库
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_squared_error
import matplotlib.pyplot as plt2.数据准备以下数据随机生成自己有数据的情况下直接读取即可读取方法在后面
# 生成模拟数据
np.random.seed(42) # 设置随机种子确保结果可重现
n_students 100 # 生成100名学生的数据# 生成自变量数据
study_time np.random.normal(8, 2, n_students) # 学习时间
vocabulary np.random.normal(2000, 500, n_students) # 词汇量
grammar_score np.random.normal(75, 15, n_students) # 语法能力
reading_score np.random.normal(70, 10, n_students) # 阅读理解#创建因变量英语成绩
english_score (0.3 * study_time 0.25 * vocabulary/100 0.25 * grammar_score 0.2 * reading_score np.random.normal(0, 5, n_students))# 创建数据框
data pd.DataFrame({学习时间: study_time,词汇量: vocabulary,语法能力: grammar_score,阅读理解: reading_score,英语成绩: english_score
})# 查看数据统计信息
print(data.describe()) 输出结果
# 相关性分析
correlation_matrix data.corr()
plt.figure(figsize(10, 8))
sns.heatmap(correlation_matrix, annotTrue, cmapcoolwarm, center0)
plt.title(变量相关性热力图)
plt.tight_layout()
plt.show()
3.回归模型建立
# 准备建模数据如果是从excel/csv文件读取的话需要替换相应的变量名,读取方法参考最后
X data[[学习时间, 词汇量, 语法能力, 阅读理解]]
y data[英语成绩]# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2)# 建立并训练模型
model LinearRegression()
model.fit(X_train, y_train)
这部分将数据划分为训练集和测试集并使用线性回归建立模型。
4.模型评估
# 打印模型系数
print(\n回归系数)
for feature, coef in zip(X.columns, model.coef_):print(f{feature}: {coef:.4f})
print(f截距: {model.intercept_:.4f})# 模型评估
y_pred model.predict(X_test)
r2 r2_score(y_test, y_pred)
mse mean_squared_error(y_test, y_pred)
print(f\n模型评估)
print(fR² 分数: {r2:.4f})
print(f均方误差: {mse:.4f})
这部分展示了每个变量的回归系数以及模型的R²值和均方误差。 输出结果 5.预测示例
# 预测示例
example_student pd.DataFrame({学习时间: [10],词汇量: [2500],语法能力: [85],阅读理解: [80]
})
predicted_score model.predict(example_student)
print(f\n示例预测)
print(f对于学习时间为10小时/周、词汇量2500词、语法85分、阅读理解80分的学生)
print(f预测英语成绩为: {predicted_score[0]:.2f})6.可视化预测结果
# 可视化预测结果
plt.figure(figsize(10, 6))
plt.scatter(y_test, y_pred, alpha0.5)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], r--, lw2)
plt.xlabel(Actual Score)
plt.ylabel(Predicted Score)
plt.title(Predicted vs Actual Scores)
plt.tight_layout()
plt.show() ▷从excel 或者csv文件中读取数据的情况
# 读取Excel文件路径按需修改
excel_data read_excel_file(language_education.xlsx)# 读取CSV文件路径按需修改
csv_data read_csv_file(language_education.csv)# 读取自变量/因变量以excel文件为例
X, y read_variables_by_names(language_education.xlsx,dependent_var英语成绩,independent_vars[词汇量, 语法能力, 阅读理解]
)#之后代码相通记得修改变量名即可 完整代码如下
# 导入必要的库
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_squared_error
import matplotlib.pyplot as plt# 生成模拟数据
np.random.seed(42) # 设置随机种子确保结果可重现# 生成100名学生的数据
n_students 100# 生成自变量数据
study_time np.random.normal(8, 2, n_students) # 平均8小时/周标准差2
vocabulary np.random.normal(2000, 500, n_students) # 平均2000词标准差500
grammar_score np.random.normal(75, 15, n_students) # 平均75分标准差15
reading_score np.random.normal(70, 10, n_students) # 平均70分标准差10# 生成因变量英语成绩
# 设定一些权重来模拟各因素对成绩的影响
english_score (0.3 * study_time 0.25 * vocabulary/100 0.25 * grammar_score 0.2 * reading_score np.random.normal(0, 5, n_students)) # 添加一些随机噪声# 创建数据框
data pd.DataFrame({学习时间: study_time,词汇量: vocabulary,语法能力: grammar_score,阅读理解: reading_score,英语成绩: english_score
})# 查看数据的基本统计信息
print(\n数据基本统计信息)
print(data.describe())# 准备建模数据
X data[[学习时间, 词汇量, 语法能力, 阅读理解]]
y data[英语成绩]# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 建立并训练模型
model LinearRegression()
model.fit(X_train, y_train)# 打印模型系数
print(\n回归系数)
for feature, coef in zip(X.columns, model.coef_):print(f{feature}: {coef:.4f})
print(f截距: {model.intercept_:.4f})# 模型评估
y_pred model.predict(X_test)
r2 r2_score(y_test, y_pred)
mse mean_squared_error(y_test, y_pred)
print(f\n模型评估)
print(fR² 分数: {r2:.4f})
print(f均方误差: {mse:.4f})# 预测示例
example_student pd.DataFrame({学习时间: [10],词汇量: [2500],语法能力: [85],阅读理解: [80]
})
predicted_score model.predict(example_student)
print(f\n示例预测)
print(f对于学习时间为10小时/周、词汇量2500词、语法85分、阅读理解80分的学生)
print(f预测英语成绩为: {predicted_score[0]:.2f})# 可视化预测结果
plt.figure(figsize(10, 6))
plt.scatter(y_test, y_pred, alpha0.5)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], r--, lw2)
plt.xlabel(Actual Score)
plt.ylabel(Predicted Score)
plt.title(Predicted vs Actual Scores)
plt.tight_layout()
plt.show()
4.结果分析
1.回归系数解释
学习时间: 0.1710 含义每增加1小时的学习时间预期英语成绩会增加0.171分影响程度相对较小 词汇量: 0.0050 含义每增加1个词汇量预期英语成绩会增加0.005分看似很小但考虑到词汇量通常以百或千为单位增长实际影响不小例如增加100个词汇量预期成绩增加0.5分 语法能力: 0.2181 含义语法测试分数每提高1分预期英语成绩会增加0.218分影响程度中等 阅读理解: 0.3077 含义阅读理解分数每提高1分预期英语成绩会增加0.308分在所有因素中影响最大
2.模型评估指标解释
R² (R平方) 0.4948 含义模型可以解释约49.48%的英语成绩变异这个R²值表明模型的拟合程度一般还有约50%的变异无法被当前自变量解释说明可能还有其他重要因素影响英语成绩未被纳入模型 MSE均方误差 33.0542 含义预测值与实际值的平均偏差的平方开平方后约为5.75分表示预测值平均偏离实际值约5.75分这个误差相对于英语成绩的总分范围来说中等偏大
3.结论和建议
阅读理解能力对英语成绩的影响最大应优先提升语法能力的影响次之学习时间的效果相对较小可能需要关注学习效率而不仅是时间投入模型的预测能力一般建议 考虑增加其他相关变量如听力能力、口语水平等可能存在非线性关系考虑使用更复杂的模型增加样本量以提高模型稳定性
4.实践意义
教学重点应放在提升阅读理解和语法能力上单纯增加学习时间的收益可能有限在预测学生成绩时需要考虑较大的误差范围 本文展示了多元回归分析的基本实现流程。在实际应用中还可以使用交叉检验评估模型稳定性。
按需更新