Pente d'une ligne avec plusieurs points [fermé]

8

J'ai des données avec une valeur de départ (y) qui incrémente / décrémente séquentiellement lorsque le temps (x) mesuré en jours s'écoule. J'ai trouvé ce lien pour créer une régression linéaire des données http://www.easycalculation.com/statistics/regression.php

Je voudrais automatiser le calcul de la pente dans Excel. Quelqu'un a-t-il une idée de comment le faire? Je vois la formule mathématique en bas de la page

NXYXYNX2(X)2

mais je ne sais pas comment le traduire en une formule Excel. Le problème est principalement le et . Les autres sont faciles avec le , et la fonction. Mes coordonnées x et coordonnées y sont dans des lignes telles que est et est .XYX2countsumpowC1x1D1x2

mpiktas
la source
il est plus courant que y soit la variable dépendante et x la variable indépendante (par exemple, le temps).
Abe

Réponses:

10

Tout d'abord, notez que votre lien renvoie vers un exemple fonctionnel qui vous sera probablement utile.

Pour implémenter l'équation dans Excel:

  1. créer une nouvelle colonne intitulée "XY" dans E
  2. entrez le nombre de lignes dans la cellule "F2" (ce sera N)
  3. colonne d'étiquette F "X ^ 2"
  4. entrer =C2^2dans F2 pour calculer X ^ 2, mettre en surbrillance F2: FN et ctrl+Dappuyer pour remplir cette équation vers le bas
  5. entrez l'équation =(G2*sum(E:E) - sum(C:C)*sum(D:D))/(G2*sum(F:F) - sum(C:C)^2)dans une cellule vide. Ce sera votre R ^ 2
  6. entrez l'équation =slope(D:D, C:C)dans une autre cellule vide, cela devrait correspondre à votre calcul.

Le résultat final est affiché dans un exemple de document google qui peut être téléchargé au format Excel ici .

David LeBauer
la source
merci de me donner un moment pour l'implémenter et je vais poser une question
votre exemple montre x1 à a1 et x2 à a2 mon x1 est à c1 et mon x2 est à d2
je suppose que je dois créer n nouvelles colonnes pour que cela fonctionne
@ caseyr547 Désolé, c'était le lien vers la version «publiée»; J'ai mis à jour le lien vers la feuille de calcul brute, ou vous pouvez télécharger une version Excel ici
David LeBauer
8

Une solution avec R et les données d'exemple publiées par @David et des instructions pour accéder aux données des feuilles de calcul Google du 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, vous pouvez utiliser la fonction intégrée de R

lm(y~x)
Abe
la source
merci mais mes données ne sont pas dans ce format mon x1 est à c1 et mon x2 est à d1 les xs et ys sont sur des lignes séparées plutôt que des colonnes séparées.
2
alors vous pouvez utiliser t(mydata)pour transposer la matrice, ou le faire en excel en utilisantpaste -> special -> transpose
Abe
1

Avec vos valeurs X dans la colonne A et les valeurs Y dans la colonne B (pas d'en-tête de colonne):

=( (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) )

Si vous voulez des en-têtes de colonne, remplacez toutes les entrées A: A et B: B par l'emplacement approprié de vos valeurs.

J'ai calculé cette formule pour pouvoir utiliser la fonction de pente dans PowerPivot, qui n'a pas de formule SLOPE.

Mike Marsh
la source