0

共用プロット上のサンプリング分布の平均を通る線に適合したい。このコードは、私が使用しているものと同様のデータセットを作成します。サンプリング分布を作成し、その分布を同じグラフにプロットします。次に、分布の平均を通る線を引く。しかし、私は分布のすべての手段に適合する線が欲しい。私はthis graphic found hereのようなものを考えています。小さい倍数に線を合わせる

means<-c(NULL) 

sample<-rnorm(1000,-0.2,0.1) 
A<-hist(sample,plot=FALSE) 
means<-c(means,mean(sample)) 
sample<-rnorm(1000,-0.1,0.1) 

B<-hist(sample,plot=FALSE) 
means<-c(means,mean(sample)) 

sample<-rnorm(1000,0,0.1) 
C<-hist(sample,plot=FALSE) 
means<-c(means,mean(sample)) 

sample<-rnorm(1000,0.1,0.1) 
D<-hist(sample,plot=FALSE) 
means<-c(means,mean(sample)) 

sample<-rnorm(1000,0.2,0.1) 
E<-hist(sample,plot=FALSE) 
means<-c(means,mean(sample)) 


plot(NULL,type="n", 
    xlim=c(0,1250), 
    ylim=c(min(A$breaks,B$breaks,C$breaks,D$breaks,E$breaks), 
      max(A$breaks,B$breaks,C$breaks,D$breaks,E$breaks)), 
    xaxt="n", 
    xlab="Mean", 
    ylab="Sampling Distribution of The Mean") 
labels<-c("-0.2","-0.1","0","0.1","0.2") 

y.coord<-0 
rect(y.coord, A$breaks[1:(length(A$breaks) - 1)], A$counts, A$breaks[2:length(A$breaks)]) 
axis(side=1,at=y.coord,labels=labels[1],las=3) 

y.coord<-max(A$counts)+50 
rect(y.coord, B$breaks[1:(length(B$breaks) - 1)], y.coord+B$counts, B$breaks[2:length(B$breaks)]) 
axis(side=1,at=y.coord,labels=labels[2],las=3) 

y.coord<-y.coord+max(B$counts)+50 
rect(y.coord, C$breaks[1:(length(C$breaks) - 1)], y.coord+C$counts, C$breaks[2:length(C$breaks)]) 
axis(side=1,at=y.coord,labels=labels[3],las=3) 

y.coord<-y.coord+max(C$counts)+50 
rect(y.coord, D$breaks[1:(length(D$breaks) - 1)], y.coord+D$counts, D$breaks[2:length(D$breaks)]) 
axis(side=1,at=y.coord,labels=labels[4],las=3) 

y.coord<-y.coord+max(D$counts)+50 
rect(y.coord, E$breaks[1:(length(E$breaks) - 1)], y.coord+E$counts, E$breaks[2:length(E$breaks)]) 
axis(side=1,at=y.coord,labels=labels[5],las=3) 

abline(a=means[1],b=0,col="red") 
abline(a=means[2],b=0,col="red") 
abline(a=means[3],b=0,col="red") 
abline(a=means[4],b=0,col="red") 
abline(a=means[5],b=0,col="red") 

この質問は、私の質問hereのフォローアップです。ご覧のとおり、すべての小さな倍数をグラフ化するための作業を作成しました。しかし、私はまだフィットのラインに問題があります。

この問題をご理解いただき、ありがとうございます。

+0

明確にするために、すべての結合データの傾向を示す線を探していますか?あなたがリンクしているグラフィックでは、それは方程式のある線でしょうか? – shea

+0

はい、回線だけが動作します。方程式も素晴らしいかもしれませんが、必要はありません。個々の分布は誤差の分散であると考えてください。 –

答えて

0

私はlines()またはabline()に行が追加されていることは知っていましたが、何らかの理由ですべてのダミーの試みが失敗し続けました。その後、私はあなたのコードをもう一度見て、x軸は実際には-0.2-0.2ではなく、それは0-1250です。私のコンピュータ上での私の試みはほぼ垂直な線を描いていたのです。だから、

、このことを念頭に置いて:

x_line_val <- seq(1, 1250, length.out=5) 
abline(lm(means ~ x_line_val), col="blue") 

ます。またlines(x=x_line_val, y=means)の代わりabline()を使用し、ラインがより線分のようなものですが使用できます。グラフのライン方程式を印刷するに

が、これは骨格のようなものですが、あなたはそれをカスタマイズすることができます:もちろん

figs1 <- summary(lm(means~x_line_val))$coef[c(1,2)] #get your intercept and beta1 values 
eq1 <- paste0("y ~ ",round(figs1[1],5)," + x",round(figs1[2],5)) #write out equation 
text(x=600, y=0.48, labels=eq1) #add equation to plot 

を、この式は、x /独立した値が大きい少数の大きさを拡大縮小するためにありますあなたが描いているものよりも、私は方程式が本当に間違っていると思います。少なくとも、実際にグラフが示すものを表すわけではありません。したがって、 'x_line_val'が正しいスケールで新しいバージョンに置き換えられる新しい回帰を行う必要があります。

関連する問題