R语言与函数估计学习笔记(函数模型的参数估计)

本文是R语言与函数估计的学习笔记,重点探讨了函数模型的参数估计,包括指数模型、含常数项的指数模型及分段函数模型的实例。通过nls函数进行拟合,并对比了最小二乘法的效果,强调了nls函数在处理复杂连续函数时的优势。
摘要由CSDN通过智能技术生成

R语言与函数估计学习笔记

毫无疑问,函数估计是一个比参数估计要复杂得多的问题,当然也是一个有趣的多的问题。这个问题在模型未知的实验设计的建模中十分的常见,也是我正在学习的内容的一部分。
关于函数估计我想至少有这么几个问题是我们关心的:1、我知道函数的一个大概的模型,需要估计函数的参数;2、我不知道它是一个什么模型,但是我想用一个不坏的模型刻画它;3、我不知道它是一个什么模型,我也不太关心它的显式表达是什么,我只想知道它在没观测到的点的取值。这三个问题第一个是拟合或者叫参数估计,第二个叫函数逼近,第三个叫函数插值。从统计的角度来看,第一个是参数问题,剩下的是非参数的问题。

函数模型的参数估计

这类的问题有很多,一个比较典型的例子是柯布-道格拉斯函数\( Y=L^\alpha k^\beta \mu \)。我们要估计参数常用的就是最小化残差平方和,如果是密度函数或者分布函数常用的办法在加上矩估计与似然估计(MLE)两种办法。
我们在这里介绍一下R中的用于函数拟合的函数nls(),其调用格式如下:

nls(formula, data, start, control, algorithm, trace, subset, weights, na.action, model, lower, upper, …)

其用法与线性回归函数lm()用法类似,这里就不作过多介绍了,我们来看几个例子来说明函数的用法:

情形一:指数模型

模拟模型\( y=x^\beta+\varepsilon \),这里假设\( \beta=3 \)

len <- 24
x <- runif(len, 0.1, 1)
y <- x^3 + rnorm(len, 0, 0.06)
ds <- data.frame(x = x, y = y)
str(ds)
## 'data.frame':    24 obs. of  2 variables:
##  $ x: num  0.238 0.482 0.787 0.145 0.232 ...
##  $ y: num  0.0154 0.12048 0.56788 0.10287 -0.00321 ...
plot(y ~ x, main = "Known cubic, with noise")
s <- seq(0, 1, length = 100)
lines(s, s^3, lty = 2, col = "green")

plot of chunk unnamed-chunk-1

使用函数nls估计参数\( \beta \)

m <- nls(y ~ I(x^power), data = ds, start = list(power = 1), trace = T)
## 1.637 :  1
## 0.2674 :  1.847
## 0.07229 :  2.464
## 0.06273 :  2.656
## 0.06264 :  2.677
## 0.06264 :  2.678
## 0.06264 :  2.678
summary(m)
## 
## Formula: y ~ I(x^power)
## 
## Parameters:
##       Estimate Std. Error t value Pr(>|t|)    
## power    2.678      0.117    22.9   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '
  • 10
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值