Inclinação de uma linha com vários pontos [fechado]

8

Eu tenho dados com um valor inicial (y) que incrementa / diminui sequencialmente à medida que (x) o tempo medido em dias passa. Encontrei este link para criar uma regressão linear dos dados http://www.easycalculation.com/statistics/regression.php

Gostaria de automatizar o cálculo da inclinação no Excel. Alguém tem uma idéia de como fazê-lo? Vejo a fórmula matemática na parte inferior da página

NXY-XYNX2-(X)2

mas eu não sei como traduzi-lo para uma fórmula do excel. O problema é principalmente e . Os outros são fáceis com a função , e . Minhas coordenadas xe coordenadas y estão em linhas tais que são e são .X 2XYX2countsumpowC1x1D1x2

mpiktas
fonte
é mais comum que y seja a variável dependente ex a variável independente (por exemplo, tempo).
Abe

Respostas:

10

Primeiro, observe que seu link está vinculado a um exemplo trabalhado que provavelmente irá ajudar.

Para implementar a equação no Excel:

  1. crie uma nova coluna denominada "XY" em E
  2. insira o número de linhas na célula "F2" (será N)
  3. coluna de rótulo F "X ^ 2"
  4. entre =C2^2em F2 para caclular X ^ 2, destaque F2: FN e pressionectrl+D para preencher esta equação
  5. insira a equação =(G2*sum(E:E) - sum(C:C)*sum(D:D))/(G2*sum(F:F) - sum(C:C)^2)em uma célula vazia. Este será o seu R ^ 2
  6. insira a equação =slope(D:D, C:C)em outra célula vazia, isso deve corresponder ao seu cálculo.

O resultado final é mostrado em um exemplo de documento do Google que pode ser baixado no formato Excel aqui .

David LeBauer
fonte
graças dar-me um momento para implementá-lo e eu vou fazer uma pergunta
seu exemplo mostra x1 em a1 e x2 em a2 meu x1 está em c1 e meu x2 está em d2
Eu acho que tenho para criar n novas colunas para que ele funcione
@ caseyr547 Desculpe, esse foi o link para a versão 'publicada'; Eu atualizei o link para a planilha cru, ou você pode baixar uma versão excel aqui
David LeBauer
8

Uma solução com R e os dados de exemplo publicados por @David e instruções sobre como acessar dados das planilhas do Google no blog Revolutions

require(RCurl)
mycsv <- getURL("https://docs.google.com/spreadsheet/pub?key=0Ai_PDCcY5g2JdGNabGs0R0IyVzhrUFIxOVRoTXMzUUE&single=true&gid=0&range=C1%3AD11&output=csv")
mydata <- read.csv(textConnection(mycsv))

x <- mydata$X
    y <- mydata$Y
n <- nrow(mydata)
xy <- x*y
m <- (n*sum(xy)-sum(x)*sum(y)) / (n*sum(x^2)-sum(x)^2)
m

Ou você pode usar a função incorporada de R

lm(y~x)
Abe
fonte
obrigado, mas meus dados não estão nesse formato meu x1 está em c1 e meu x2 está em d1 os xs e ys estão em linhas separadas, em vez de colunas separadas.
2
então você pode usar t(mydata)para transpor a matriz, ou fazer isso no Excel usandopaste -> special -> transpose
Abe
1

O Excel já contém uma função chamada SLOPE. Consulte este site de ajuda oficial para referência e um exemplo.

Akshay
fonte
1

Com seus valores X na coluna A e Y na coluna B (sem cabeçalhos de coluna):

=( (COUNT(A:A)*(SUMPRODUCT(A:A,B:B)) - (SUM(A:A)*SUM(B:B))) )/ 
 ( (COUNT(A:A)*SUMPRODUCT(A:A,A:A)) - (SUM(A:A)^2) )

Se você deseja cabeçalhos de coluna, substitua todas as entradas A: A e B: B pelo local adequado dos seus valores.

Eu descobri esta fórmula para poder usar a função de inclinação no PowerPivot, que não possui uma fórmula SLOPE.

Mike Marsh
fonte