R中的lm拟合曲线遵守的是最小二乘法曲线拟合准则吗

最小二乘法线性回归拟合——R软件
已有 1550 次阅读
|个人分类:|系统分类:|关键词:学术,R软件,线性回归,最小二乘法
最小二乘法线性回归拟合library(BSDA) &#调用BSDA库,目的是为了调用后面的数据attach(Gpa) & #Gpa数据&head(Gpa) & & #显示前六行数据## & HSGPA CollGPA&## 1 & 2.7 & & 2.2&## 2 & 3.1 & & 2.8&## 3 & 2.1 & & 2.4&## 4 & 3.2 & & 3.8&## 5 & 2.4 & & 1.9&## 6 & 3.4 & & 3.5Y &-CollGPA &x &-HSGPAplot(x, Y, col=&blue&,&main=&Scatterplot of College Versus High School GPA&,&xlab=&High School GPA&,ylab=&College GPA&,xlim=c(0,5)) &##做散点图#线性拟合model&-lm(Y~x,data=Gpa)abline(model)summary(model)## ## Call:&## lm(formula = Y ~ x, data = Gpa)&## ## Residuals:&## & & &Min & & & 1Q & Median & & & 3Q & & &Max ## -0.473 -0.065 &0.54817 ## ## Coefficients:&## & & & & & & Estimate Std. Error t value Pr(&|t|) & ## (Intercept) &-0.9504 & & 0.8318 &-1.143 &0.28625 & ## x & & & & & & 1.3470 & & 0.3027 & 4.449 &0.00214 **&## ---&## Signif. codes: &0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1&## ## Residual standard error: 0.4333 on 8 degrees of freedom&## Multiple R-squared: &0.7122, Adjusted R-squared: &0.6762 ## F-statistic: &19.8 on 1 and 8 DF, &p-value: 0.002141##拟合方程是:Y=1.4, R方为 0.7122&总结感悟: R软件的线性拟合采用最小二乘法进行线性拟合&上面过程采用RSutio的Knitr完成,Knitr的解释和安装方法见下文。Knitr解释:knitr是中一个用来动态生成报告的包,用户可以在报告中嵌入数据分析的源代码,通过knitr编译直接生成一份报告,而无需复制粘贴结果,所有结果由knitr执行源代码动态生成。knitr可以结合、、、以及文档使用。它的设计范式源于,目的是促进可重复的科学研究。它是开源软件,许可证为。knitr的编写受到影响,但模块化程度更高,扩展方便,支持文档类型也更多(Sweave主要用于LaTeX文档)。例如它支持R Markdown格式,RPubs网站是一个很好的应用示例。其它扩展包括:缓存、图形、多语言支持(如、、和等)。目前支持knitr的编辑器有、和/ESS。——http://zh.wikipedia.org/wiki/Knitr&Knitr安装方法:有兴趣的朋友可以尝试玩玩,如有不懂的地方,可以联系,请注明来自人人小站,谢谢!& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &Mcr & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &于国科大
转载本文请联系原作者获取授权,同时请注明本文来自宓春荣科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:1
评论 ( 个评论)
扫一扫,分享此博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &R语言线性拟合之最小二乘法 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 0时,
依赖包:ggplot2 (画图用)
最小二乘法的R语言时限,适用于所有平台.
代码片段(2)
1.&[图片] Rplot01.png&&&&
2.&[代码]运行截图&&&&
library(ggplot2)
Leastsquares &- function(x,y) {
rm(list=ls())
lenx &- length(x)
leny &- length(y)
if (lenx != leny)
stop("length(x) != length(y)")
avgx &- mean(x)
avgy &- mean(y)
for(i in 1:lenx) {
s &- s + (x[i]-avgx)*(y[i]-avgy)
t &- t + (x[i] - avgx)^2
t &- avgy - s*avgx
f&-function(a) {s*a+t}
base&-qplot(x,y,colour="red",size=2)
base + stat_function(fun=f,colour="blue",size=1)
//调用代码
x=c(208,152,113,227,137,238,178,104,191,130)
y = c(21.6,15.5,10.4,31.0,13.0,32.4,19.0,10.4,19.0,11.8)
Leastsquares(x,y)
开源中国-程序员在线工具:
相关的代码(26)
5回/10039阅
33回/3906阅
2回/3969阅
0回/3700阅
0回/3450阅
1回/3129阅
1回/2533阅
0回/2284阅
7回/2088阅
0回/2113阅
山寨一个,
开源从代码分享开始
Injection的其它代码下次自动登录
现在的位置:
& 综合 & 正文
最小二乘曲线拟合matlab实现
曲线拟合[1]是一种常用的模型拟合方法,经常用在相机标定或其它传感器标定上。对于加性高斯噪声,最小二乘通常是一种最优的估计方法(PS:当外点存在时,通常可以采用其它robust estimator 或者采用ransac进行拟合)。本文演示最小二乘曲线拟合技术,所有可从点击下载。
对如下图所示的加噪声曲线,如何进行曲线拟合呢?
我们可以采用d阶多项式去逼近它:
系数到则由最小二乘确定。在本文,d取1,3,5.
随机数据的产生如下:
function [y_truth,y_observed] = unknown_model1(x)
0.001*x.^4 + x.^3-5*x.^2+0.5*x;  %4阶的数据
y_observed = y_truth + randn(length(x),1)';
%观测到的数据包含单位高斯噪声
整个演示如下:
x_all = 0:0.1:10;
[y_truth_all,y_all]=unknown_model1(x_all);
N = length(x_all);
%use the first half for training
x = x_all(1:N/2);
y = y_all(1:N/2);
y_truth = y_truth_all(1:N/2);
plot(x,y_truth,'g-x','LineWidth',1.5);
plot(x,y,'m-x','LineWidth',1.5);
legend('model truth','observation');
title('training');
%% curve fitting, try linear model
X = [x;ones(1,length(x))]';
lambda1 = (X'*X)\X'*Y; %最小二乘拟合 (least-square fitting)% evaluate the esimated model
ye1 = X*lambda1;
plot(x,ye1,'c-o','LineWidth',1.5);
%% curve fitting, try order-3 order polynomial
X = [x.^3;x.^2;x;ones(1,length(x))]';
lambda2 = (X'*X)\X'*Y;%最小二乘拟合
% evaluate the esimated model
ye2 = X*lambda2;
plot(x,ye2,'r-o','LineWidth',1.5);
%% curve fitting, try order-5 order polynomial
X = [x.^5;x.^4;x.^3;x.^2;x;ones(1,length(x))]';
lambda3 = (X'*X)\X'*Y;%最小二乘拟合
% evaluate the esimated model
ye3 = X*lambda3;
plot(x,ye3,'b-o','LineWidth',1.5);
plot(x,y,'g-x',x,ye1,'c-o',x,ye2,'r-o',x,ye3,'b-o','LineWidth',1.5);
legend('model truth', 'order-1','order-3', 'order-5');
以上是训练的代码。由图可见,3阶和5阶与真实模型最为接近,一阶的误差较大。
下面根据估计的模型对未来未知的数据进行预测,比较各模型与真实模型的误差大小%% show future trendsX = [x_ones(1,length(x_all))]';
ye1 = X*lambda1;
X = [x_all.^3;x_all.^2;x_ones(1,length(x_all))]';
ye2 = X*lambda2;
X = [x_all.^5;x_all.^4;x_all.^3;x_all.^2;x_ones(1,length(x_all))]';
ye3 = X*lambda3;
plot(x_all,y_truth_all,'g-x',x_all,y_all,'m-x',x_all,ye1,'c-o',x_all,ye2,'r-o',x_all,ye3,'b-o','LineWidth',1.5);
legend('model truth','observation', 'order-1 poly fitting','order-3 poly fitting', 'order-5 poly fitting');
title('testing');
由图可见,3阶模型与真实模型最为接近,而原来在训练中比较接近的5阶模型对未知数据有较大的误差,即存在所谓的过拟合现象(overfitting)[2].
参考资料:
&&&&推荐文章:
【上篇】【下篇】 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
采用归一化最小均方误差准则的LM-BP算法
下载积分:2000
内容提示:采用归一化最小均方误差准则的LM-BP算法,算法,LM,帮助,归一化,最小均方误差,归一化均方误差,归一化算法,归一化处理
文档格式:PDF|
浏览次数:10|
上传日期: 14:42:05|
文档星级:
该用户还上传了这些文档
采用归一化最小均方误差准则的LM-BP算法
官方公共微信

我要回帖

更多关于 matlab最小二乘法拟合 的文章

 

随机推荐