大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
基本原理
1.生成关于x1~N(5,3),x2~N(100,10),error~N(0,1)
2.自己定一个实际对线性回归模型,并计算得到真实的y
y = 1.5+0.8x1+1.8x2+error
3.对x1,x2 进行线性拟合,当然这里也可以自写函数用最小二乘法原理,进行参数对估计
4.提取的每一个beta1,beta2
5.计算他的均方误差,计算公式
代码
k = 100000 # 定义实验次数
beta_x1 = c() # 定义空列
beta_x2 = c()
for (i in 1:k) {
beta1 = 0.8 # 设置真实系数
beta2 = 1.8
x1 = rnorm(100,5,3) # 产生随机数
x2 = rnorm(100,100,10)
error = rnorm(100,0,1) # 产生随机误差
y = 1.5+0.8*x1+1.8*x2+error
data1 = data.frame(x1,x2,y) # 构建数据框
res = lm(y~x1+x2,data = data1)
res = summary(res)
beta1_r = (res$coefficients[2]-beta1)^2 # 取估计的系数
beta2_r = (res$coefficients[3]-beta2)^2
beta_x1 = c(beta_x1,beta1_r) # 追加成向量
beta_x2 = c(beta_x2,beta2_r)
}
MSEx1 = sum(beta_x1)/length(beta_x1) # 求MES的公式
MSEx2 = sum(beta_x2)/length(beta_x2)
message('x1的MES为:',MSEx1)
message('x2的MES为:',MSEx2)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187750.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...