c*u 发帖数: 916 | 1 衡量一个直线拟合是否成功,一般我喜欢用correlation coefficient R或者R^2,
但是,比如我产生一个数列,
yi = s*xi + random number, xi = 0, 1, ...100
假设random number分布是同样的情况下,变化斜率s可以得到完全不同的R,但是既然
random number分布一样的,说明测量的准确性是一样的,那么这岂不是说R不能衡量
一个直线拟合是否成功么? | c*****m 发帖数: 4817 | 2 分布一样,但error项的相对大小(相对measurement y的大小)就不一样了,你怎么能说
测量的准确性是一样呢?
当然,你最后的结论是对的, R^2不能衡量一个linear model拟合的好坏,但那已经是
另外一个问题了。 | c*u 发帖数: 916 | 3 可能我写的句子有问题,实际问题是这样的,
比如测量体重和减肥药剂量的关系,
X: 减肥药剂量:0 1 2 3 4 5
Y: 三个月后体重
第一种减肥药
X = [ 0 1 2 3 4 5]
Y = [200 190 180 170 160 150] + random value
第二种减肥药
X = [ 0 1 2 3 4 5]
Y = [200 195 190 185 180 175] + random value
random value代表测量误差,比如是平均为0,方差为2的高斯分布,
那么我想这两组数据如果做拟合,其线性拟合的好坏应当是一样的,但是实际上R^2第
二组小很多.
【在 c*****m 的大作中提到】 : 分布一样,但error项的相对大小(相对measurement y的大小)就不一样了,你怎么能说 : 测量的准确性是一样呢? : 当然,你最后的结论是对的, R^2不能衡量一个linear model拟合的好坏,但那已经是 : 另外一个问题了。
| a**n 发帖数: 3801 | 4 why?
你俩组数都是线性的差不多
【在 c*u 的大作中提到】 : 可能我写的句子有问题,实际问题是这样的, : 比如测量体重和减肥药剂量的关系, : X: 减肥药剂量:0 1 2 3 4 5 : Y: 三个月后体重 : 第一种减肥药 : X = [ 0 1 2 3 4 5] : Y = [200 190 180 170 160 150] + random value : 第二种减肥药 : X = [ 0 1 2 3 4 5] : Y = [200 195 190 185 180 175] + random value
| c*u 发帖数: 916 | 5 但是R^2确实大不一样,
比如:
y1 = [200 190 180 170 160 150] + rand(1,6)*5;
y2 = [200 195 190 185 180 175] + rand(1,6)*5;
算上一千次,取平均,
R1^2 = 0.995
R2^2 = 0.981
【在 a**n 的大作中提到】 : why? : 你俩组数都是线性的差不多
| c*****m 发帖数: 4817 | 6 我还不是不明白你为什么认为
“这两组数据如果做拟合,其线性拟合的好坏应当是一样的”
how come?
【在 c*u 的大作中提到】 : 但是R^2确实大不一样, : 比如: : y1 = [200 190 180 170 160 150] + rand(1,6)*5; : y2 = [200 195 190 185 180 175] + rand(1,6)*5; : 算上一千次,取平均, : R1^2 = 0.995 : R2^2 = 0.981
| c*u 发帖数: 916 | 7 比如说一组数据在x-y坐标上是完全水平的,那么我认为画一条水平直线,应当是很好的
线性拟合, 但是这个时候算出来的R^2却很差,
【在 c*****m 的大作中提到】 : 我还不是不明白你为什么认为 : “这两组数据如果做拟合,其线性拟合的好坏应当是一样的” : how come?
| a**n 发帖数: 3801 | 8 R^2就是和水平线比较的。。
如果水平线就是真实model
那linear regression只是增加一个斜率参数
估计这个斜率的贡献很小 不是很正常吗。。
【在 c*u 的大作中提到】 : 比如说一组数据在x-y坐标上是完全水平的,那么我认为画一条水平直线,应当是很好的 : 线性拟合, 但是这个时候算出来的R^2却很差,
| s*****n 发帖数: 2174 | 9 你这样当然不一样了. 同样大小的noise, 对于两个model的影响不一样.
第一model本身幅度就大, 相对noise的影响就小.
第二个model本身幅度就小, noise的影响相对就大.
公平的比较应该把第二个model里面的noise term减半.
比如
x <- 0:5
result <- matrix(NA, ncol=2, nrow=1000)
for (i in 1:1000){
y1 <- c(200, 190, 180, 170, 160, 150) + rnorm(6) * 5
y2 <- c(200, 195, 190, 185, 180, 175) + rnorm(6) * 2.5
result[i, 1] <- summary(lm(y1~x))$r.squared
result[i, 2] <- summary(lm(y2~x))$r.squared
}
apply(result, 2, mean)
[1] 0.9453929 0.9474898
两者差不多.
严格来说, noise term 不是严格两倍的关系,
只是近似而已. 严
【在 c*u 的大作中提到】 : 但是R^2确实大不一样, : 比如: : y1 = [200 190 180 170 160 150] + rand(1,6)*5; : y2 = [200 195 190 185 180 175] + rand(1,6)*5; : 算上一千次,取平均, : R1^2 = 0.995 : R2^2 = 0.981
| s******m 发帖数: 83 | 10 Agree!!
【在 s*****n 的大作中提到】 : 你这样当然不一样了. 同样大小的noise, 对于两个model的影响不一样. : 第一model本身幅度就大, 相对noise的影响就小. : 第二个model本身幅度就小, noise的影响相对就大. : 公平的比较应该把第二个model里面的noise term减半. : 比如 : x <- 0:5 : result <- matrix(NA, ncol=2, nrow=1000) : for (i in 1:1000){ : y1 <- c(200, 190, 180, 170, 160, 150) + rnorm(6) * 5 : y2 <- c(200, 195, 190, 185, 180, 175) + rnorm(6) * 2.5
|
|