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'被正確的尺度的新版本所取代。