如何在R中绘制Chow测试结果?

如何在R中绘制Chow测试结果?,r,graph,stability,R,Graph,Stability,我使用以下代码在R中运行了Chow测试: mydata <- read.csv(file="chow.csv", header=TRUE, sep=",") sctest(fuel~pred, data=mydata, type="Chow", point=44) mydata我不认为你可以用sctest的结果来绘制这个,但是从你的数据来绘制它应该很容易。只需创建每个相关的线性回归,然后绘制线段 由于您没有提供任何数据,我将使用NHANES包中的NHANES数据进行说明 library(

我使用以下代码在R中运行了Chow测试:

mydata <- read.csv(file="chow.csv", header=TRUE, sep=",")
sctest(fuel~pred, data=mydata, type="Chow", point=44)

mydata我不认为你可以用
sctest
的结果来绘制这个,但是从你的数据来绘制它应该很容易。只需创建每个相关的线性回归,然后绘制线段

由于您没有提供任何数据,我将使用NHANES包中的NHANES数据进行说明

library(NHANES)
data(NHANES)
plot(Height ~ Age, data=NHANES, pch=20, col="#00000022")

在16岁时,身高似乎随着年龄的变化而发生结构性变化。 您希望将完整数据上的线性模型与16岁的两个线性模型进行比较。所以只需生成它们并绘制它们

## Full data
LM0 = lm(Height ~ Age, data=NHANES)
abline(LM0, col="red", type=2, lwd=3)

## Age <= 16
LM1 = lm(Height ~ Age, data=NHANES[NHANES$Age <= 16,])
y1 = predict(LM1, newdata=data.frame(Age=c(0,16)))

## Age > 16
LM2 = lm(Height ~ Age, data=NHANES[NHANES$Age > 16,])
y2 = predict(LM2, newdata=data.frame(Age=c(16,80)))

lines(x=c(0,16), y=y1, col="green", lty=3, lwd=3)
lines(x=c(16,80), y=y2, col="green", lty=3, lwd=3)
##完整数据
LM0=lm(身高~年龄,数据=NHANES)
abline(LM0,col=“红色”,类型=2,lwd=3)
##16岁,])
y2=预测(LM2,newdata=data.frame(Age=c(16,80)))
线(x=c(0,16),y=y1,col=“绿色”,lty=3,lwd=3)
线条(x=c(16,80),y=y2,col=“绿色”,lty=3,lwd=3)

编辑 根据评论中提供的数据,这里是另一个例子。至少在给出了几点之后,将这些数据划分为两个模型似乎并不明显,但我选择了一个强调不同模型的划分点

mydata =  structure(list(fuel = c(346591L, 344841L, 369015L, 346062L, 
    337494L, 355830L, 380516L, 391917L, 356761L, 359326L, 348208L, 
    358639L, 351659L, 323356L, 364712L), pred = c(346293.4, 344855.5, 
    355014.2, 342456.1, 347042.1, 371000.1, 376011.6, 391521.4, 
    364751.5, 358650, 356547.3, 355159.8, 359598.2, 349122.6, 357969.6)), 
    .Names = c("fuel", "pred"), row.names = c(NA, 15L), class = "data.frame")

plot(pred ~ fuel, data=mydata)
LM0 = lm(pred ~ fuel, data=mydata)
abline(LM0, lty=2)

LM1 = lm(pred ~ fuel, data=mydata[mydata$fuel <= 347500,])
y1  = predict(LM1, newdata=data.frame(fuel=c(320000,347500)))
lines(c(320000,350000), y1, lty=3)

LM2 = lm(pred ~ fuel, data=mydata[mydata$fuel >  347500,])
y2  = predict(LM2, newdata=data.frame(fuel=c(347500,395000)))
lines(c(350000,395000), y2, lty=3)
mydata=structure(列表)燃料=c(346591L,344841L,369015L,346062L,
337494L、355830L、380516L、391917L、356761L、359326L、348208L、,
358639L,351659L,323356L,364712L),pred=c(346293.4,344855.5,
355014.2, 342456.1, 347042.1, 371000.1, 376011.6, 391521.4, 
364751.5, 358650, 356547.3, 355159.8, 359598.2, 349122.6, 357969.6)), 
.Names=c(“燃料”、“pred”),row.Names=c(NA,15L),class=“data.frame”)
绘图(pred~燃料,数据=mydata)
LM0=lm(pred~燃料,数据=mydata)
abline(LM0,lty=2)
LM1=lm(pred~fuel,data=mydata[mydata$fuel 347500,]))
y2=预测(LM2,newdata=数据帧(燃料=c(347500395000)))
线路(c(35000395000),y2,lty=3)

如果您为
mydata
提供可复制的最小数据(例如,包括
dput(mydata)
dput(head(mydata,20))的输出),这将有所帮助。
)。这样我们就有了合作的机会。您还应该明确地包括您一直在使用的非base R库。例如,我假设
sctest
来自
strucchange
?谢谢。请允许我提供一些数据。dput(head(mydata,15))结构(列表(燃料=c(346591L,344841L,369015L,346062L,337494L,355830L,380516L,391917L,356761L,359326L,348208L,358639L,351659L,323356L,364712L),pred=c(346293.4,344855.5,355014.2,342456.1,347042.1,371000.1,376011.6,391521.4,364751.5,3535353535798.2,35796.2),.Names=c(“fuel”,“pred”),row.Names=c(NA,15L),class=“data.frame”)不知道“L”是什么意思。