求解最佳拟合多项式并绘制下拉线

2023-12-30

我在 Windows 10 上使用 R 3.3.1(64 位)。我有一个 x-y 数据集,已与二阶多项式拟合。我想求解 x 在 y=4 处的最佳拟合多项式,并绘制从 y=4 到 x 轴的下拉线。

这将在数​​据帧 v1 中生成数据:

v1 <- structure(list(x = c(-5.2549, -3.4893, -3.5909, -2.5546, -3.7247, 
-5.1733, -3.3451, -2.8993, -2.6835, -3.9495, -4.9649, -2.8438, 
-4.6926, -3.4768, -3.1221, -4.8175, -4.5641, -3.549, -3.08, -2.4153, 
-2.9882, -3.4045, -4.6394, -3.3404, -2.6728, -3.3517, -2.6098, 
-3.7733, -4.051, -2.9385, -4.5024, -4.59, -4.5617, -4.0658, -2.4986, 
-3.7559, -4.245, -4.8045, -4.6615, -4.0696, -4.6638, -4.6505, 
-3.7978, -4.5649, -5.7669, -4.519, -3.8561, -3.779, -3.0549, 
-3.1241, -2.1423, -3.2759, -4.224, -4.028, -3.3412, -2.8832, 
-3.3866, -0.1852, -3.3763, -4.317, -5.3607, -3.3398, -1.9087, 
-4.431, -3.7535, -3.2545, -0.806, -3.1419, -3.7269, -3.4853, 
-4.3129, -2.8891, -3.0572, -5.3309, -2.5837, -4.1128, -4.6631, 
-3.4695, -4.1045, -7.064, -5.1681, -6.4866, -2.7522, -4.6305, 
-4.2957, -3.7552, -4.9482, -5.6452, -6.0302, -5.3244, -3.9819, 
-3.8123, -5.3085, -5.6096, -6.4557), y = c(0.99, 0.56, 0.43, 
2.31, 0.31, 0.59, 0.62, 1.65, 2.12, 0.1, 0.24, 1.68, 0.09, 0.59, 
1.23, 0.4, 0.36, 0.49, 1.41, 3.29, 1.22, 0.56, 0.1, 0.67, 2.38, 
0.43, 1.56, 0.07, 0.08, 1.53, -0.01, 0.12, 0.1, 0.04, 3.42, 0.23, 
0, 0.34, 0.15, 0.03, 0.19, 0.17, 0.2, 0.09, 2.3, 0.07, 0.15, 
0.18, 1.07, 1.21, 3.4, 0.8, -0.04, 0.02, 0.74, 1.59, 0.71, 10.64, 
0.64, -0.01, 1.06, 0.81, 4.58, 0.01, 0.14, 0.59, 7.35, 0.63, 
0.17, 0.38, -0.08, 1.1, 0.89, 0.94, 1.52, 0.01, 0.1, 0.38, 0.02, 
7.76, 0.72, 4.1, 1.36, 0.13, -0.02, 0.13, 0.42, 1.49, 2.64, 1.01, 
0.08, 0.22, 1.01, 1.53, 4.39)), .Names = c("x", "y"), class = "data.frame", row.names = c(NA, 
-95L))

下面是绘制 y 与 x、绘制最佳拟合多项式并在 y=4 处画一条线的代码。

> attach(v1)
> # simple x-y plot of the data
> plot(x,y, pch=16)
> # 2nd order polynomial fit
> fit2 <- lm(y~poly(x,2,raw=TRUE))
> summary(fit2)
> # generate range of numbers for plotting polynomial
> xx <- seq(-8,0, length=50)
> # overlay best fit polynomial
>lines(xx, predict(fit2, data.frame(x=xx)), col="blue")
> # add horizontal line at y=4
> abline(h=4, col="red")
>

从图中可以明显看出,y=4,x 约为 -2 和 -6.5,但我想实际求解这些值的回归多项式。

理想情况下,我想要从红蓝线交叉点下降到 x 轴的线(即绘制终止于两个 y=4 解的垂直 ablines)。如果这是不可能的,我会很高兴使用旧的垂直 ablines,它们一直延伸到图上,只要它们处于正确的 x 解值。

该图表示当 y>4 时将不符合规格的零件,因此我想使用下拉线突出显示将生成符合规格零件的 x 值的范围。


您可以使用二次公式来计算值:

betas <- coef(fit2)    # get coefficients
betas[1] <- betas[1] - 4    # adjust intercept to look for values where y = 4

# note degree increases, so betas[1] is c, etc.
betas
##             (Intercept) poly(x, 2, raw = TRUE)1 poly(x, 2, raw = TRUE)2 
##               8.7555833               6.0807302               0.7319848 

solns <- c((-betas[2] + sqrt(betas[2]^2 - 4 * betas[3] * betas[1])) / (2 * betas[3]), 
           (-betas[2] - sqrt(betas[2]^2 - 4 * betas[3] * betas[1])) / (2 * betas[3]))

solns
## poly(x, 2, raw = TRUE)1 poly(x, 2, raw = TRUE)1 
##               -1.853398               -6.453783 

segments(solns, -1, solns, 4, col = 'green')    # add segments to graph

更简单(如果你能找到它)是polyroot:

polyroot(betas)
## [1] -1.853398+0i -6.453783+0i

由于它返回一个复杂的向量,因此您需要将其包装在as.numeric如果你想把它传递给segments.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

求解最佳拟合多项式并绘制下拉线 的相关文章

  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • kmeans 对分组数据进行聚类

    目前 我尝试在分组数据中找到簇的中心 通过使用示例数据集和问题定义 我能够创建kmeans每个组内的集群 然而 当涉及到给定组的集群的每个中心时 我不知道如何获取它们 https rdrr io cran broom man kmeans
  • 如何在 R 中只为直方图的一个标签着色?

    我有一个像这样的数据框 CellLines ZEB1 600MPE 2 8186 AU565 2 783 BT20 2 7817 BT474 2 6433 BT483 2 4994 BT549 3 035 CAMA1 2 718 DU447
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • 如何从R中的日期中提取月份

    我正在使用lubridate封装并应用month从日期中提取月份的函数 我在日期字段上运行了 str 命令 得到了 Factor w 9498 levels 01 01 1979 01 01 1980 5305 1 1 1 1 1 1 1
  • 访问 R 工作区中的数据[重复]

    这个问题在这里已经有答案了 我是自学 R 的 可能有一些非常基本的东西我可能不熟悉 如果是这样我道歉 我正在尝试访问外部来源提供给我的数据 它作为一个工作空间出现 我的流程如下 gt ls 1 2003OHT HR gt attach 20
  • rpart是自动剪枝吗?

    Is rpart自动修剪 生成的决策树rpart比具有自动修剪功能的 Oracle Data Mining 生成的级别要多得多 否 但拟合函数的默认值可能会 提前 停止分割 对于 早期 的某些定义 See rpart control对于您可
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 Date lt as POSIXct c 2018 03 20 11 52 25 2018 03 22 12 01 44 2018 03 20 12 05 25 2018 03 20 12 10
  • 将日期时间字符串转换为 Date 类

    我有一个带有日期时间字符列的数据框 当我使用as Date 除了少数实例之外 我的大多数字符串都被正确解析 下面的示例有望向您展示发生了什么 my attempt to parse the string to Date uses the s
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • ggplot 图例标签内的希腊字母、符号和换行符

    我在尝试着 有换行符 自动或强制 对齐文本 左对齐或左右对齐 有希腊字母和百分号 在 gglot 图例标签内 我尝试了几种方法 但我似乎无法将我读到的所有技巧结合起来 我可以通过插入来换行 n进入标签 但这似乎不适用于希腊字母 不适用于图例
  • pandas 中连续数据的平行坐标图

    pandas 的 parallel coordinates 函数非常有用 import pandas import matplotlib pyplot as plt from pandas tools plotting import par
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • 改进R中从google获取股票新闻数据的功能

    我已经编写了一个函数来从 Google 获取和解析给定股票代码的新闻数据 但我确信有一些方法可以改进它 对于初学者来说 我的函数返回一个 GMT 时区的对象 而不是用户当前的时区 如果传递的数字大于 299 它就会失败 可能是因为 goog
  • 在`rmarkdown`中,如何在句子中添加图标?

    In rmarkdown 如何在句子中添加图标 例如如下 如何添加markdown icon单词 Markdown 和 is 之间 有一个很好的 R 包 可以轻松下载 RMarkdown 文档并将图标添加到其中 icons https gi
  • 在 R 中导入 csv 文件时如何保留前导零?

    当我写一个 csv来自 R 的文件 其中我的组名称以前导零值开头 前导零被保留 但是当我导入 csv前导零被删除 组名称被转换为整数 当我导入一个组时 如何保留组名称中的前导零 csvR 中的文件 Example df lt data fr
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • dplyr 中的标准评估:全局环境中的函数出现“无法找到函数”错误

    我试图在 dplyr 中对全局环境中的函数使用标准评估 但出现 无法找到函数 错误 这是一些代码 create data frame df lt data frame x rnorm 10 y rnorm 10 define arbitra
  • 在 Lavaan 生长曲线模型中提取个体轨迹

    我已经使用 R 的 Lavaan 包中的 Growth 函数成功地对一项研究的纵向数据进行了建模 我找不到任何关于如何提取每个参与者的预测轨迹的记录 我只能找到整个组的预测轨迹 在摘要输出的 拦截 部分下给出 使用 lavPredict m
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p

随机推荐

  • 如何在GIT中将一个分支合并到另一个分支?

    让我详细解释一下这个问题 我有一个主 git 分支 在上面创建了一个新的侧分支 bug10101010 现在我不想将 bug10101010 合并到主分支 到目前为止一切都很好 现在我有同一产品的不同分支 名为legacy 我不想将 bug
  • 如何使用 Apache HttpClient 启用 SSLv3?

    Apache 中禁用了 SSLv3Http客户端 https hc apache org从 4 3 6 版本开始 但我使用的是 4 5 版本 这开发人员写道 https hc apache org news html 希望继续使用 SSLv
  • Android 中的视频录制格式(.3gp 或 mp4)?

    我用Intent MediaStore ACTION VIDEO CAPTURE视频录制方法 默认情况下 录制的视频存储为 3gp文件 我想将视频录制并存储为 mp4 file 这可能吗 Yes Set the MediaRecorder
  • 将触摸焦点转移到另一个视图

    这个问题问得有点尴尬 是否可以将一个视图的触摸焦点转移到另一个视图 基本上 假设您有一个选择第一个的视图ACTION DOWN触摸事件 然后立即想要将所有触摸事件的焦点转移到另一个视图来处理它onTouchEvent MotionEvent
  • 将分配器添加到 C++ 类模板以创建共享内存对象

    简而言之 我的问题是 如果你有课 MyClass
  • jQuery:使用预定义函数添加更改事件处理程序

    所以我有以下内容 var change handler function element do some fancy stuff 现在 我想将其附加到一个元素 哪种方法更好 最好或更正确 element selector change ch
  • Maven 3.3.1 ECLIPSE:未设置-Dmaven.multiModuleProjectDirectory 系统属性

    我刚刚在 Mac OS X 上安装了 Maven 3 3 1 并且使用 Eclipse 构建 Maven 项目时出现以下错误 Dmaven multiModuleProjectDirectory system property is not
  • 在哪里设置 celery 任务的task_id?

    我无法找到使用我自己的 task id 设置 task id 的任何示例 沿着这些思路的东西 def testview1 request for i in xrange 0 1000 result add delay i 4 task id
  • Win32 中消息队列如何工作?

    我读了一些关于 Win32 以及消息循环如何工作的内容 但有一些东西我仍然不清楚 消息队列中到底存储了什么 对应于消息的整数值 WM COMMAND WM CREATE等 或指向MSG包含消息整数值和其他内容的结构 例如wParam lPa
  • Google Drive API 中缩略图的永久链接

    我正在使用 Google Drive API PHP 将一些照片上传到我的云端硬盘 当文件上传时 会出现一个Google DriveFile响应中返回对象以确认传输成功 它包括一个名为thumbnailLink 可通过getThumbnai
  • 安装 scrapy 时出现 gcc failed 错误

    当我安装 scrapy 时 我收到以下错误 命令 gcc 失败 退出状态为 1 我正在使用 Centos 是的 我安装了最新版本的 gcc 但我不确定为什么会收到此错误 我尝试用谷歌搜索但找不到解决方案 OpenSSL crypto cry
  • UIViewController 中的插座 viewdidload 中为零

    我有一个带有 tableView 出口的 UIViewController IBOutlet weak var tableView UITableView 当我尝试访问 tableView 变量时viewDidload它抛出一个错误 说 t
  • 表单提交错误后如何保留文件输入值?

    我有一个似乎相当基本的问题 想确认如何最好地处理它 我有一个带有多个输入的表单 其中一个是文件输入 提交表单时 PHP 中会进行许多验证检查 以确认所有必需的字段均已按应填写的方式填写 如果没有 则通知用户填写其余部分并再次向他们显示表单而
  • 使用 JavaScript 计算文本宽度

    我想使用 JavaScript 来计算字符串的宽度 是否可以在不使用等宽字体的情况下实现这一点 如果它不是内置的 我唯一的想法是为每个字符创建一个宽度表 但这非常不合理 特别是支持Unicode http en wikipedia org
  • 检查点在 Apache Spark 上有什么作用?

    检查点对 Apache Spark 有何作用 它是否会影响 RAM 或 CPU 来自 Apache 流媒体文档 http spark apache org docs latest streaming programming guide ht
  • 小型 Ajax JavaScript 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个非常小的 单行 Ajax JavaScript 库来添加到小脚本的第一行来发出一些请求 我已经尝试过 jx http www
  • 如何在一个云形成到另一个云形成模板之间传递参数

    如何在aws中将一个云形成模板文件之间的参数传递到另一个云形成模板文件 我不是在谈论嵌套模板 因为我知道它们只是一个 CFT 内的单独资源块 如果我错了 请纠正我 查看跨堆栈参考的官方文档 https docs aws amazon com
  • 尽管开放 API 规范 ASP.NET 将每个属性视为强制属性

    我通常直接生成服务器代码https swagger io https swagger io 在线服务 接下来 我决定添加更多自动化功能 因此我决定使用 CLI 工具aspnetcore发电机 https openapi generator
  • 在 Vagrantfile 中设置“半虚拟化接口”

    VirtualBox 5 公开了一个名为 半虚拟化接口 https www virtualbox org manual ch10 html gimproviders这可以提高某些特定来宾操作系统的性能 有没有办法在 a 中设置此选项Vagr
  • 求解最佳拟合多项式并绘制下拉线

    我在 Windows 10 上使用 R 3 3 1 64 位 我有一个 x y 数据集 已与二阶多项式拟合 我想求解 x 在 y 4 处的最佳拟合多项式 并绘制从 y 4 到 x 轴的下拉线 这将在数 据帧 v1 中生成数据 v1 lt s