R语言多项式线性模型:最大似然估计二次曲线

简介: R语言多项式线性模型:最大似然估计二次曲线

“应用线性模型”中,我们打算将一种理论(线性模型理论)应用于具体案例。通常,我会介绍理论的主要观点:假设,主要结果,并进行示范来直观地解释。这里查看一个真实的案例研究,它包含真实数据,2400个观测值,34个变量。

 

这里只有11个观察值,一个简单的线性模型。让我们对这些数据进行线性回归




plot(base,pch=19,ylim=c(30,180))
abline(lm(y~x,data=base),col="red")

回归线(最大程度地减少误差平方和)是红色曲线





Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)  50.7225    39.3979   1.287     0.23
x             0.4867     0.2747   1.772     0.11

我们可以清楚地看到我们的曲线似乎是凹的,开始时增加,结束时减少,可以进行非参数平滑





scatter.smooth(x, y,

 

我们可以进一步回答“最大数目在哪里吗”,可以建议一个值,找到一个置信区间吗?

我们可以考虑一个二次模型,换句话说,我们的预测将是 抛物线。





lm(y~x+I(x^2),data=base)

我们可以看到,该模型不仅在视觉上看起来更加符合实际,如果我们看一看回归的结果,该模型也更好






Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.255e+02  5.589e+01  -5.824 0.000394 ***
x            6.569e+00  8.744e-01   7.513 6.84e-05 ***
I(x^2)      -2.203e-02  3.143e-03  -7.011 0.000111 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

现在我们可以证明,对于形式为y =β2x2 +β1x +β0的抛物线,最优值以x⋆=θ= −β1 /2β2来获得。那么θ的自然估计量就是θ= −β 1 /2β2,通过最小化误差平方和。但是如何获得该估计量的方差?通过考虑以下因素,我们自然可以尝试Delta方法

 

(渐近)方差在这里

 

然后我们通过用未知量的估计值替换未知值来获得此渐近方差的估计量。





theta=-beta[2]/(2*beta[3])
theta
[1]  149.0676
s2=t(dg) %*% sigma %*% dg
s2
[,1]
[1,] 94.59911
sqrt(s2)
[,1]
[1,] 9.726207

换句话说,如果假设估计量的正态性,我们有以下置信区间





arrows(vx-qt(.975,n-3)*sqrt(s2),vy,

我们还可以尝试另一种策略 。对于我们的二次模型,我们通常在高斯假设下对数似然函数



logL = function(pm){


-sum(log(dnorm (base$y-(b0+b1*base$x+b2*base$x^2)) ,0,b3
}

在这里,第一个方法是引入θ(其中抛物线的最大值是)作为模型参数之一-例如代替β2


logL = function(pm){


-sum(log(dnorm( base$y-b0+b1 base$x-.5*b1/theta base$x^2) ,0,b3

如果我们寻找最大似然函数,我们得到




optim(par=c(-213,3.5,110,2),logL)
$par
[1] -325.5    6.5  149.0   13.6


$value
[1] 44.3

这与我们之前的计算是一致的。第二个方法是分析似然函数:我们说在多元参数中,一个比另一个更重要。在给定θ的情况下,其他函数才最大化。从技术上讲,参数θ的轮廓对数似然是



logL=function(theta){


-sum(log(dnorm( base$y- b0+b1*base$x-.5*b1/theta*base$x^2 ,0,b3)


optim(par )$value

我们可以绘制结果






plot(v1,-v2,type="l",xlim=range(base$x)

在这里达到最大值



opt
$minimum
[1] 149.068

这与我们的计算是一致的。然后,我们可以得到结果的似然比检验。






abline(h=ref,lty=2,col="red")

然后我们可以在初始图中绘制置信区间





points(vx,vy,pch=19,cex=1.5,col="red")
arrows(min(v1[id]),vy,max(v1[id]),vy,code=3,angle=90,

就像大多数统计技术一样,这些都是渐近结果,仅凭11个观察结果无法保证其有效性

另一个解决方案是使用模拟。我们假设观测值是模型,并且是噪声。我们可以将非参数模型(局部平滑)作为模型并假设高斯噪声。为了生成其他样本,我们将观测值保存在x中,另一方面,对于y,我们将使用y +ε,其中ε将根据正态分布绘制




loess.smooth(x = newbase$x, y= newbase$y
lines(reg$x,reg$y


for(i in 1:20) simu(TRUE)
lines(loess.smooth(x = base$x, y= base$y, evaluation = 501)

给定数据的不对称性,我们再次使用非参数模型。并且我们通过数值计算最大值。我们重复10,000次。




hist(V,probability = TRUE
lines(density(V)

在这里,我们有在10,000个模拟样本上观察到的最大值的经验分布。我们可以通过经验分位数来获得置信区间




arrows(quantile(V,.025 ,vy,quantile(V,.975


最受欢迎的见解

相关文章
|
6月前
|
机器学习/深度学习
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析(下)
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
|
6月前
【视频】什么是非线性模型与R语言多项式回归、局部平滑样条、 广义相加GAM分析工资数据|数据分享(上)
【视频】什么是非线性模型与R语言多项式回归、局部平滑样条、 广义相加GAM分析工资数据|数据分享
|
6月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
2月前
|
机器学习/深度学习
R语言模型评估:深入理解混淆矩阵与ROC曲线
【9月更文挑战第2天】混淆矩阵和ROC曲线是评估分类模型性能的两种重要工具。混淆矩阵提供了模型在不同类别上的详细表现,而ROC曲线则通过综合考虑真正率和假正率来全面评估模型的分类能力。在R语言中,利用`caret`和`pROC`等包可以方便地实现这两种评估方法,从而帮助我们更好地理解和选择最适合当前任务的模型。
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为1
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
|
6月前
|
机器学习/深度学习 数据可视化 算法
数据分享|R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可视化
数据分享|R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可视化
116 10
|
6月前
|
算法 Python
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
|
6月前
|
数据挖掘
R语言临床预测模型:分层构建COX生存回归模型STRATIFIED COX MODEL、KM生存曲线、PH假设检验
R语言临床预测模型:分层构建COX生存回归模型STRATIFIED COX MODEL、KM生存曲线、PH假设检验
|
6月前
|
数据可视化 数据库管理
R语言宏观经济学:IS-LM曲线可视化货币市场均衡
R语言宏观经济学:IS-LM曲线可视化货币市场均衡

热门文章

最新文章