- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想拟合一个线性平台 (nls) 模型,该模型将高度描述为年龄的函数,并且我想测试区域间模型的任何参数是否存在显着差异。
这是我目前所拥有的:
# Create data
df1 <- cbind.data.frame (height = c (0.5, 0.6, 0.9, 1.3, 1.5, 1.6, 1.6,
0.6, 0.6, 0.8, 1.3, 1.5, 1.6, 1.5,
0.6, 0.8, 1.0, 1.4, 1.6, 1.6, 1.6,
0.5, 0.8, 1.0, 1.3, 1.6, 1.7, 1.6),
age = c (0.5, 0.9, 3.0, 7.3, 12.2, 15.5, 20.0,
0.4, 0.8, 2.3, 8.5, 11.5, 14.8, 21.3,
0.5, 1.0, 5.1, 11.1, 12.3, 16.0, 19.8,
0.5, 1.1, 5.5, 10.2, 12.2, 15.4, 20.5),
region = as.factor (c (rep ("A", 7),
rep ("B", 7),
rep ("C", 7),
rep ("D", 7))))
> head (df1)
height age region
1 0.5 0.5 A
2 0.6 0.9 A
3 0.9 3.0 A
4 1.3 7.3 A
5 1.5 12.2 A
6 1.6 15.5 A
# Create linear-plateau function
lp <- function(x, a, b, c){
ifelse (x < c, a + b * x, a + b * c)
} # Where 'a' is the intercept, 'b' the slope and 'c' the breakpoint
# Fit the model ignoring region
m1 <- nls (height ~ lp (x = age, a, b, c),
data = df1,
start = list (a = 0.5, b = 0.1, c = 13))
> summary (m1)
Formula: height ~ lp(x = age, a, b, c)
Parameters:
Estimate Std. Error t value Pr(>|t|)
a 0.582632 0.025355 22.98 <2e-16 ***
b 0.079957 0.003569 22.40 <2e-16 ***
c 12.723995 0.511067 24.90 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.07468 on 25 degrees of freedom
Number of iterations to convergence: 2
Achieved convergence tolerance: 5.255e-09
我想拟合相同的模型,但考虑到 region
,并测试 a
、b
和 c
> 不同地区的估计不同。
我相信this post可能有用,但我不知道如何将它应用于此数据/函数。
这是数据的样子:
也欢迎不使用 nls 的解决方案
最佳答案
用相同的参数为每个区域拟合模型,给出 fm1 并再次用不同的参数给出 fm2,并使用方差分析来测试差异。
我们对 fm1 使用 plinear
算法,因为它不需要线性参数的起始值。在这种情况下,RHS 应该是一个矩阵,其第一列乘以截距,第二列乘以斜率。这两个线性参数将被命名为 .lin1
和 .lin2
。我们使用重复 4 次的 fm1 的系数作为 fm2 拟合的起始值。
fm1 <- nls(height ~ cbind(1, pmin(age, c)), df1, start = list(c = mean(df1$age)),
algorithm = "plinear")
co <- as.list(coef(fm1))
fm2 <- nls(height ~ a[region] + b[region] * pmin(age, c[region]), df1,
start = list(a = rep(co$.lin1, 4), b = rep(co$.lin2, 4), c = rep(co$c, 4)))
anova(fm1, fm2)
给予:
Analysis of Variance Table
Model 1: height ~ cbind(1, pmin(age, c))
Model 2: height ~ a[region] + b[region] * pmin(age, c[region])
Res.Df Res.Sum Sq Df Sum Sq F value Pr(>F)
1 25 0.13944
2 16 0.11895 9 0.020483 0.3061 0.9617
因此我们不能拒绝跨区域参数相同的假设。
如果我们希望测试不同的 c 值但我们可以使用常见的截距和斜率
fm3 <- nls(height ~ cbind(1, pmin(age, c[region])), df1,
start = list(c = rep(co$c, 4)), algorithm = "plinear")
anova(fm1, fm3)
虽然我们不能拒绝 c 的值在下面的视觉区域中相同的假设,但我们看到高原值的截止年龄看起来确实有些不同,所以我们可能想要使用 fm3,即使它与 fm1 没有显着差异.我们可能希望以与此处的应用程序相关的其他因素为指导,而不仅仅是适合。
下面我们展示了 fm2 的个体拟合和 fm1 的整体拟合。
library(ggplot2)
df1$Everything <- "Everything"
ggplot(df1, aes(age, fitted(fm2), col = region)) +
geom_line() +
geom_point() +
geom_line(aes(age, fitted(fm1), col = Everything), lty = 2, lwd = 2)
关于r - 用分类变量拟合 nls 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62720110/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to nest OR statements in JavaScript? 有没有办法做到这一点:
在 JavaScript 中有没有办法让一个变量总是等于一个变量?喜欢var1 = var2但是当var2更新,也是var1 . 例子 var var1 = document.getElementBy
我正在努力理解这代表什么 var1 = var2 == var3 我的猜测是这等同于: if (var2 == var3): var1 = var2 最佳答案 赋值 var1 = var2
这个问题已经有答案了: What does the PHP error message "Notice: Use of undefined constant" mean? (2 个回答) 已关闭 8
我在临时表中有几条记录,我想从每条记录中获取一个值并将其添加到一个变量中,例如 color | caption -------------------------------- re
如何将字符串转为变量(字符串变量--> $variable)? 或者用逗号分隔的变量列表然后转换为实际变量。 我有 2 个文件: 列名文件 行文件 我需要根据字符串匹配行文件中的整行,并根据列名文件命
我有一个我无法解决的基本 php 问题,我也想了解为什么! $upperValueCB = 10; $passNodeMatrixSource = 'CB'; $topValue= '$uppe
这可能吗? php $variable = $variable1 || $variable2? 如果 $variable1 为空则使用 $variable2 是否存在类似的东西? 最佳答案 PHP 5
在 Perl 5.20 中,for 循环似乎能够修改模块作用域的变量,但不能修改父作用域中的词法变量。 #!/usr/bin/env perl use strict; use warnings; ou
为什么这不起作用: var variable; variable = variable.concat(variable2); $('#lunk').append(variable) 我无法弄清楚这一点
根据我的理解,在32位机器上,指针的sizeof是32位(4字节),而在64位机器上,它是8字节。无论它们指向什么数据类型,它们都有固定的大小。我的计算机在 64 位上运行,但是当我打印包含 * 的大
例如: int a = 10; a += 1.5; 这运行得很完美,但是 a = a+1.5; 此作业表示类型不匹配:无法从 double 转换为 int。所以我的问题是:+= 运算符 和= 运算符
您好,我写了这个 MySQL 存储过程,但我一直收到这个语法错误 #1064 - You have an error in your SQL syntax; check the manual that
我试图在我的场景中显示特定的奖牌,这取决于你的高分是基于关卡的目标。 // Get Medal Colour if levelHighscore goalScore { sc
我必须维护相当古老的 Visual C++ 源代码的大型代码库。我发现代码如下: bIsOk = !!m_ptr->isOpen(some Parameters) bIsOk的数据类型是bool,is
我有一个从 MySQL 数据库中提取的动态产品列表。在 list 上有一个立即联系 按钮,我正在使用一个 jquery Modal 脚本,它会弹出一个表单。 我的问题是尝试将产品信息变量传递给该弹出窗
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
jQuery Core Style Guidelines建议两种不同的方法来检查变量是否已定义。 全局变量:typeof variable === "undefined" 局部变量:variable
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: “Variable” Variables in Javascript? 我想肯定有一种方法可以在 JavaScrip
在语句中使用多重赋值有什么优点或缺点吗?在简单的例子中 var1 = var2 = true; 赋值是从右到左的(我相信 C# 中的所有赋值都是如此,而且可能是 Java,尽管我没有检查后者)。但是,
我是一名优秀的程序员,十分优秀!