Details

    • Proposal:
      Hide

      In Section 20.43 chart:regression-type add the following item to the list (sub- and superscript seems to not work properly, but I think, you know to write a polynomial in x of degree n):

      • polynomial - Polynomial regression - approximate the values of the series using the model: y = A~0~ + A~1~  x + A~2~  x^2^ + ... + A~n~ x^n^ where n is given by the chart:regression-max-degree attribute.

      The generated attribute list changes to:

      The values of the chart:regression-type attribute are none, linear, logarithmic, exponential, power and polynomial.

       

      Add these new sections in chapter 20

      chart:regression-max-degree
      The chart:regression-max-degree attribute specifies the maximum degree of a polynomial regression curve. This attribute is only evaluated together with attribute chart:regression-type and if that has the value polynomial.
      The value of the chart:regression-max-degree attribute must be greater than or equal to 2.
      The default value for this attribute is 2.

      The generated text is then:
      The chart:regression-max-degree attribute is usable with the following element: <style:chart-properties> 17.22.
      The chart:regression-max-degree attribute has the data type positiveInteger.

      chart:regression-force-intercept
      The chart:regression-force-intercept attribute specifies whether a regression curve of type linear, exponential or polynomial must intercept the y-axis at a certain value.
      The defined values for the chart:regression-force-intercept attribute are:
      true: The regression curve intercepts the y‑axis at the value, which is defined by the chart:regression-intercept-value attribute.
      false: The interception of regression-curve and y-axis is calculated from the data series.
      The default value for this attribute is false.
      This attribute is only evaluated together with attribute chart:regression-type and if that has one of the following values: linear, exponential or polynomial.

      The generated text is then:
      The chart:regression-force-intercept attribute is usable with the following element: <style:chart-properties> 17.22.
      The chart:regression-force-intercept attribute has the data type boolean.

      chart:regression-intercept-value
      The chart:regression-intercept-value attribute specifies where a regression curve must intercept the y-axis, if attribute chart:regression-force-intercept is true.
      This attribute is only evaluated together with chart:regression-force-intercept attribute.
      The default value for this attribute is 0 in case of regression type linear or polynomial, and the default value is 1 in case of regression type exponential.

      The generated text is then:
      The chart:regression-intercept-value attribute is usable with the following element: <style:chart-properties> 17.22.
      The chart:regression-intercept-value attribute has the data type double.

      chart:regression-name
      The chart:regression-name attribute specifies a name of a regression curve.
      Default value is an empty string.

      The generated text is then:
      The chart:regression-name attribute is usable with the following element: <style:chart-properties> 17.22.
      The chart:regression-name attribute has the data type string.

      The needed change to the schema is given by this diff:

      --- OpenDocument-schema-v1.3_ohneTab.rng	2018-06-06 00:01:34.171094900 +0200
      +++ OpenDocument-schema-v1.3_regression_curve1.rng	2018-06-05 23:59:49.276136600 +0200
      @@ -9993,14 +9993,35 @@
                   <rng:value>none</rng:value>
                   <rng:value>linear</rng:value>
                   <rng:value>logarithmic</rng:value>
                   <rng:value>exponential</rng:value>
                   <rng:value>power</rng:value>
      +            <rng:value>polynomial</rng:value>
                 </rng:choice>
               </rng:attribute>
             </rng:optional>
             <rng:optional>
      +        <rng:attribute name="chart:regression-max-degree">
      +          <rng:ref name="positiveInteger"/>
      +        </rng:attribute>        
      +      </rng:optional>
      +      <rng:optional>
      +        <rng:attribute name="chart:regression-force-intercept">
      +          <rng:ref name="boolean"/>
      +        </rng:attribute>
      +      </rng:optional>
      +      <rng:optional>
      +        <rng:attribute name="chart:regression-intercept-value">
      +          <rng:ref name="double"/>
      +        </rng:attribute>
      +      </rng:optional>
      +      <rng:optional>
      +        <rng:attribute name="chart:regression-name">
      +          <rng:ref name="string"/>
      +        </rng:attribute>
      +      </rng:optional>
      +      <rng:optional>
               <rng:attribute name="chart:axis-position">
                 <rng:choice>
                   <rng:value>start</rng:value>
                   <rng:value>end</rng:value>
                   <rng:ref name="double"/>
      

       

       

      Show
      In Section 20.43 chart:regression-type add the following item to the list (sub- and superscript seems to not work properly, but I think, you know to write a polynomial in x of degree n): polynomial - Polynomial regression - approximate the values of the series using the model: y = A~0~ + A~1~  x + A~2~  x^2^ + ... + A~n~ x^n^ where n is given by the chart:regression-max-degree attribute. The generated attribute list changes to: The values of the chart:regression-type attribute are none , linear , logarithmic , exponential , power and polynomial .   Add these new sections in chapter 20 chart:regression-max-degree The chart:regression-max-degree attribute specifies the maximum degree of a polynomial regression curve. This attribute is only evaluated together with attribute chart:regression-type and if that has the value polynomial . The value of the chart:regression-max-degree attribute must be greater than or equal to 2. The default value for this attribute is 2. The generated text is then: The chart:regression-max-degree attribute is usable with the following element: <style:chart-properties> 17.22. The chart:regression-max-degree attribute has the data type positiveInteger . chart:regression-force-intercept The chart:regression-force-intercept attribute specifies whether a regression curve of type linear , exponential or polynomial must intercept the y-axis at a certain value. The defined values for the chart:regression-force-intercept attribute are: • true : The regression curve intercepts the y‑axis at the value, which is defined by the chart:regression-intercept-value attribute. • false : The interception of regression-curve and y-axis is calculated from the data series. The default value for this attribute is false . This attribute is only evaluated together with attribute chart:regression-type and if that has one of the following values: linear , exponential or polynomial . The generated text is then: The chart:regression-force-intercept attribute is usable with the following element: <style:chart-properties> 17.22. The chart:regression-force-intercept attribute has the data type boolean . chart:regression-intercept-value The chart:regression-intercept-value attribute specifies where a regression curve must intercept the y-axis, if attribute chart:regression-force-intercept is true . This attribute is only evaluated together with chart:regression-force-intercept attribute. The default value for this attribute is 0 in case of regression type linear or polynomial , and the default value is 1 in case of regression type exponential . The generated text is then: The chart:regression-intercept-value attribute is usable with the following element: <style:chart-properties> 17.22. The chart:regression-intercept-value attribute has the data type double . chart:regression-name The chart:regression-name attribute specifies a name of a regression curve. Default value is an empty string. The generated text is then: The chart:regression-name attribute is usable with the following element: <style:chart-properties> 17.22. The chart:regression-name attribute has the data type string . The needed change to the schema is given by this diff: --- OpenDocument-schema-v1.3_ohneTab.rng 2018-06-06 00:01:34.171094900 +0200 +++ OpenDocument-schema-v1.3_regression_curve1.rng 2018-06-05 23:59:49.276136600 +0200 @@ -9993,14 +9993,35 @@ <rng:value> none </rng:value> <rng:value> linear </rng:value> <rng:value> logarithmic </rng:value> <rng:value> exponential </rng:value> <rng:value> power </rng:value> + <rng:value> polynomial </rng:value> </rng:choice> </rng:attribute> </rng:optional> <rng:optional> + <rng:attribute name= "chart:regression-max-degree" > + <rng:ref name= "positiveInteger" /> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name= "chart:regression-force-intercept" > + <rng:ref name= "boolean" /> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name= "chart:regression-intercept-value" > + <rng:ref name= "double" /> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name= "chart:regression-name" > + <rng:ref name= "string" /> + </rng:attribute> + </rng:optional> + <rng:optional> <rng:attribute name= "chart:axis-position" > <rng:choice> <rng:value> start </rng:value> <rng:value> end </rng:value> <rng:ref name= "double" />    

      Description

      This is a spin-off from OFFICE-1148. It contains the more complete parts, so that we can at least include these in ODF 1.3:

      • Value polynomial for chart:regression-type attribute
      • New attribute chart:regression-max-degree
      • New attribute chart:regression-force-intercept
      • New attribute chart:regression-intercept-value
      • New attribute chart:regression-name

      I have not included chart:regression-min-degree attribute from the original proposal, because such attribute is no where implemented.

      I'm unsure about some wording, see email.

      The green texts are comments.

        Attachments

          Activity

          Hide
          aguelzow Andreas Guelzow (Inactive) added a comment -

          Some questions:

          1) What exactly is "approximate the values of the series using the model:" supposed to mean? While the model is clear it is not clear to me what exactly is supposed to be minimized? The sum of the squares of the differences between the observed and predicted y-values (i.e. assuming that the x-values are precise and only the y-values) or perhaps the sum of the squares of the distances between the observed values and the curve (i.e. both the x- and y-values may carry error)?

          2) {{chart:regression-force-intercept }}is clearly related to the not here proposed chart:regression-min-degree since if min-degree>0, the y-intercept will always be 0.{{ }}

          3) The regression-intercept-value and the regression-force-intercept appear to also apply to exponential and linear regression. We should be explaining how under these restrictions the model coefficients are to be calculated.

           

          Show
          aguelzow Andreas Guelzow (Inactive) added a comment - Some questions: 1) What exactly is "approximate the values of the series using the model:" supposed to mean? While the model is clear it is not clear to me what exactly is supposed to be minimized? The sum of the squares of the differences between the observed and predicted y-values (i.e. assuming that the x-values are precise and only the y-values) or perhaps the sum of the squares of the distances between the observed values and the curve (i.e. both the x- and y-values may carry error)? 2) {{chart:regression-force-intercept }}is clearly related to the not here proposed chart:regression-min-degree since if min-degree>0, the y-intercept will always be 0.{{ }} 3) The regression-intercept-value and the regression-force-intercept appear to also apply to exponential and linear regression. We should be explaining how under these restrictions the model coefficients are to be calculated.  
          Hide
          regina.henschel Regina Henschel added a comment - - edited

          (2) My suggestion is to drop chart:regression-min-degree totally. I know no application that offer it. When someone implements it, we can think about adapting the descriptions.

          (1)(3) Such description is already missing in the current specification. Of cause we can improve it now, while we work on that section anyway.

          We can add the following part to section 20.43. Please review, whether it is correct in content.  Improving wording and using formula editor can be done afterwards.

           

          Calculating the model parameter is done by the same algorithm as used for LINEST function.
          Let X denote the array of the abscissa of the data points of the series and Y the array of the associated ordinates.

          • For case chart:regression-force-intercept="false" the calculation can be:
            For regression type:
            exponential, model y=A*EXP(B*x): LINEST(LN(Y),X,1) results B,LN(A)
            linear, model y=Ax+B: LINEST(Y,X,1) results A,B
            logarithmic, model y=A*LN( x )+B: LINEST(Y,LN(X),1) results A,B
            polynomial, model y = A_0 + A_1 x + A_2 x^2 + ... + A_n x^n : LINEST(Y,X,X^2,...,X^n,1) results A_n,...A_1,A_0
            power, model y = A*x^B : LINEST(LN(Y),LN(X),1) results B,LN(A)
          • For case chart:regression-force-intercept="true" and C the value of chart:regression-intercept-value the calculation can be:
            For regression type
            exponential, model y=C*EXP(B*X): LINEST(LN(Y/C),X,0) results B,0
            linear, model y=Ax+C: LINEST(Y-C,X,0) results A,0
            polynomial, model y = C + A_1 x + A_2 x^2 + ... + A_n x^n: LINEST(Y-C,X,X^2,...,X^n,0) results A_n,...,A_1,0
             
          Show
          regina.henschel Regina Henschel added a comment - - edited (2) My suggestion is to drop  chart:regression-min-degree totally. I know no application that offer it. When someone implements it, we can think about adapting the descriptions. (1)(3) Such description is already missing in the current specification. Of cause we can improve it now, while we work on that section anyway. We can add the following part to section 20.43. Please review, whether it is correct in content.  Improving wording and using formula editor can be done afterwards.   Calculating the model parameter is done by the same algorithm as used for LINEST function. Let X denote the array of the abscissa of the data points of the series and Y the array of the associated ordinates. For case chart:regression-force-intercept="false" the calculation can be: For regression type: exponential , model y=A*EXP(B*x): LINEST(LN(Y),X,1) results B,LN(A) linear , model y=Ax+B: LINEST(Y,X,1) results A,B logarithmic , model y=A*LN( x )+B: LINEST(Y,LN(X),1) results A,B polynomial , model y = A_0 + A_1 x + A_2 x^2 + ... + A_n x^n : LINEST(Y,X,X^2,...,X^n,1) results A_n,...A_1,A_0 power , model y = A*x^B : LINEST(LN(Y),LN(X),1) results B,LN(A) For case chart:regression-force-intercept="true" and C the value of chart:regression-intercept-value the calculation can be: For regression type exponential , model y=C*EXP(B*X): LINEST(LN(Y/C),X,0) results B,0 linear , model y=Ax+C: LINEST(Y-C,X,0) results A,0 polynomial , model y = C + A_1 x + A_2 x^2 + ... + A_n x^n: LINEST(Y-C,X,X^2,...,X^n,0) results A_n,...,A_1,0  
          Hide
          patrick Patrick Durusau added a comment -

          as per TC on 11 June 2018

          Show
          patrick Patrick Durusau added a comment - as per TC on 11 June 2018
          Hide
          patrick Patrick Durusau added a comment -

          Applied in OpenDocument-v1.3-wd10-part3-documents.odt and OpenDocument-schema-v1.3-wd06.rng.

          BTW, I changed: chart:regression-force-intercept
          The chart:regression-force-intercept attribute specifies whether a regression curve of type linear, exponential or polynomial must intercept the y-axis at a certain value.

           

          To remove the "must," which is not allowed in ISO standards except for legal requirements.

          must intercept -> intercepts

           

          Show
          patrick Patrick Durusau added a comment - Applied in OpenDocument-v1.3-wd10-part3-documents.odt and OpenDocument-schema-v1.3-wd06.rng. BTW, I changed: chart:regression-force-intercept The chart:regression-force-intercept attribute specifies whether a regression curve of type linear , exponential or polynomial must intercept the y-axis at a certain value.   To remove the "must," which is not allowed in ISO standards except for legal requirements. must intercept -> intercepts  
          Hide
          michaelst Michael Stahl [X] (Inactive) added a comment - - edited

          Editors:

          20.44 chart:regression-force-intercept

          • there are 2 extraneous line breaks here; the first one should be a paragraph break
          • there is an extraneous space preceding "true:"
          • there is an extraneous comma in "at the value, which is defined"

          20.45 chart:regression-intercept-value

          • "evaluated together with chart:regression-force-intercept attribute" - need a "the" .. attribute?

          20.46 chart:regression-max-degree

          • there are 2 extraneous line breaks here

          20.50 chart:regression-type

          • "the chart:regression-max-degree attribute" - maybe add a cross-reference to it?
          Show
          michaelst Michael Stahl [X] (Inactive) added a comment - - edited Editors: 20.44 chart:regression-force-intercept there are 2 extraneous line breaks here; the first one should be a paragraph break there is an extraneous space preceding "true:" there is an extraneous comma in "at the value, which is defined" 20.45 chart:regression-intercept-value "evaluated together with chart:regression-force-intercept attribute" - need a "the" .. attribute? 20.46 chart:regression-max-degree there are 2 extraneous line breaks here 20.50 chart:regression-type "the chart:regression-max-degree attribute" - maybe add a cross-reference to it?
          Hide
          patrick Patrick Durusau added a comment -

          Applied in OpenDocument-v1.3-wd16-part3-documents.odt (btw, included cross-ref for chart:regression-max-degree attribute, even though that is listed in chapter 20 as property. We need to clean that up, attribute vs. property in a later version of ODF.)

          Show
          patrick Patrick Durusau added a comment - Applied in OpenDocument-v1.3-wd16-part3-documents.odt (btw, included cross-ref for chart:regression-max-degree attribute, even though that is listed in chapter 20 as property. We need to clean that up, attribute vs. property in a later version of ODF.)

            People

            • Assignee:
              Unassigned
              Reporter:
              regina.henschel Regina Henschel
            • Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: