Information about S-curve in SPSS

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Information about S-curve in SPSS

Sungeun Chung
SPSS expert,

I used "Curve Estimation" to find a functional form for my data.  I found
that S-curve is best fitted.

I found the equation for S-curve in the help menu:

 S-curve. Model whose equation is Y = e**(b0 + (b1/t)) or ln(Y) = b0 +
(b1/t).

I need more information about this function.  Can anyone give me references
about the above equation?

Thanks in advance,

--
Sungeun Chung, Ph.D.

Assistant Professor
Department of Communication
Memorial Hall 303G
Western Illinois University
Macomb, IL 61455-1390
Tel. (309) 298-2219
E-mail: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Information about S-curve in SPSS

Edgar F. Johns
Take a look at the econometrics literature. The s-curve is also known as the
logistic model or function. A classic example is adoption rate of a new
product/technology. Initially, the adoption rate is slow until some critical
mass is reached. Then adoption is fast until it reaches saturation.

The classic econometrics text is Greene, W. H. (2000). Econometric analysis.
(4th Ed.). Upper Saddle River, NJ: Prentice-Hall.

Edgar
---
Discover Technologies
42020 Koppernick Rd.
Suite 204
Canton, MI 48187
(734) 564-4964
(734) 468-0800 fax

-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of
Sungeun Chung
Sent: Thursday, February 08, 2007 5:14 PM
To: [hidden email]
Subject: Information about S-curve in SPSS

SPSS expert,

I used "Curve Estimation" to find a functional form for my data.  I found
that S-curve is best fitted.

I found the equation for S-curve in the help menu:

 S-curve. Model whose equation is Y = e**(b0 + (b1/t)) or ln(Y) = b0 +
(b1/t).

I need more information about this function.  Can anyone give me references
about the above equation?

Thanks in advance,

--
Sungeun Chung, Ph.D.

Assistant Professor
Department of Communication
Memorial Hall 303G
Western Illinois University
Macomb, IL 61455-1390
Tel. (309) 298-2219
E-mail: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Information about S-curve in SPSS

Sungeun Chung
Edgar,

Thank you for the information.  SPSS has different equations for S-Curve and
Logistics model. The equation for the logistics is the same in Greene
(2000).

Y = 1 / (1/u + (b0 * (b1**t))) or ln(1/y-1/u) = ln (b0) + (ln(b1) * t) where
u is the upper boundary value

The equation of S-curve is  Y = e**(b0 + (b1/t)) or ln(Y) = b0 + (b1/t).

I cannot find the equation for the S-curve in Green (2000).

Any more help?  Thank you.

Sungeun


On 2/8/07, Edgar F. Johns <[hidden email]> wrote:

>
> Take a look at the econometrics literature. The s-curve is also known as
> the
> logistic model or function. A classic example is adoption rate of a new
> product/technology. Initially, the adoption rate is slow until some
> critical
> mass is reached. Then adoption is fast until it reaches saturation.
>
> The classic econometrics text is Greene, W. H. (2000). Econometric
> analysis.
> (4th Ed.). Upper Saddle River, NJ: Prentice-Hall.
>
> Edgar
> ---
> Discover Technologies
> 42020 Koppernick Rd.
> Suite 204
> Canton, MI 48187
> (734) 564-4964
> (734) 468-0800 fax
>
> -----Original Message-----
> From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of
> Sungeun Chung
> Sent: Thursday, February 08, 2007 5:14 PM
> To: [hidden email]
> Subject: Information about S-curve in SPSS
>
> SPSS expert,
>
> I used "Curve Estimation" to find a functional form for my data.  I found
> that S-curve is best fitted.
>
> I found the equation for S-curve in the help menu:
>
> S-curve. Model whose equation is Y = e**(b0 + (b1/t)) or ln(Y) = b0 +
> (b1/t).
>
> I need more information about this function.  Can anyone give me
> references
> about the above equation?
>
> Thanks in advance,
>
> --
> Sungeun Chung, Ph.D.
>
> Assistant Professor
> Department of Communication
> Memorial Hall 303G
> Western Illinois University
> Macomb, IL 61455-1390
> Tel. (309) 298-2219
> E-mail: [hidden email]; [hidden email]
>
>


--
Sungeun Chung, Ph.D.

Assistant Professor
Department of Communication
Memorial Hall 303G
Western Illinois University
Macomb, IL 61455-1390
Tel. (309) 298-2219
E-mail: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

IF statement to overwite an existing value with a missing value

Gary Oliver
Colleagues

I have the following set of IF statements which successfully execute.
IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 .
...
IF ( P35_VAR4 > 0 ) P35_VAR3 = P01_VAR1 .

In some cases the value for VAR3 is zero and I rightly get a warning
message and the cell is marked with a dot for missing value.

The command has evolved over a week of modifying the calculation with
the result that the cells contain pre-existing values. What I have
noticed is that the IF statement above does not replace the pre-existing
values with a blank cell.

My questions are:

(a) Is there a command that I can apply to a variable to clear values?

I cannot see anything in the syntax help file that
erases/deletes/removes values. These key words only seem to apply to
files or variables themselves.


(b) Is there an amendment to the syntax which can force a missing value
to be inserted overriding whatever is in the cell?

TIA/gary
Reply | Threaded
Open this post in threaded view
|

Re: IF statement to overwite an existing value with a missing value

Richard Ristow
At 10:56 PM 2/8/2007, Gary Oliver wrote:

>I have the following set of IF statements which successfully execute.
>IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 .
>...
>IF ( P35_VAR4 > 0 ) P35_VAR3 = P01_VAR1 .
>
>In some cases the value for VAR3 is zero and I rightly get a warning
>message and the cell is marked with a dot for missing value.

I'm afraid I flat-out don't understand this. In the first place, I see
no VAR3 in the syntax you've given. In the second, I don't see how
you'd get a warning message from a 0 value for any of the variables.
(Nor from a missing value, though it might be a good idea if a missing
value for a Pnn_VAR4 variable *did* cause a warning.)

>The IF statement above does not replace the pre-existing values with a
>blank cell.

If I understand you're meaning, that's right. An IF statement either
applies its change, or does nothing. Your IF statements will copy the
value of P01_VAR1 if the condition tests 'true', and do nothing at all
otherwise; that's how IF is designed to work.

>(a) Is there a command that I can apply to a variable to clear values?

COMPUTE var1 = $SYSMIS.

Or, for a list of variables,

RECODE <varlist> (ELSE=SYSMIS).

(Careful. You must use '$SYSMIS' in the COMPUTE, and 'SYSMIS' without
the '$' in the RECODE.)

>(b) Is there an amendment to the syntax which can force a missing
>value
>to be inserted overriding whatever is in the cell?

If you want a test that assigns a value of a test is true and clears
the variable otherwise, use DO IF instead of IF. Instead of

IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 .

use (not tested)

DO IF             ( P01_VAR4 > 0 )
    AND NOT MISSING( P01_VAR4 > 0 ).
.  COMPUTE P01_VAR3 = P01_VAR1 .
ELSE.
.  COMPUTE P01_VAR3 = $SYSMIS.
END IF.

(Using "AND NOT MISSING( P01_VAR4 > 0 )" causes the variable to be
cleared if the test returns 'missing' as well as if it returns
'false'.)

Finally, DO REPEAT, or VECTORs and LOOP, would probably make your code
much more compact, and easier to read and maintain.
Reply | Threaded
Open this post in threaded view
|

Re: IF statement to overwite an existing value with a missing value

Marks, Jim
In reply to this post by Gary Oliver
A statement like:

COMPUTE P01_VAR3 = $SYMSIS.
IF P01_VAR4 > 0 P01_VAR3 = P01_VAR1.

Will reset all the values and populate P01_VAR3 with the values you
want.

It looks like you have a set of variables to process. If so, something
using DO REPEAT could reduce your typing:


*** SAMPLE DATA.

data list free /id P01_VAR4 P02_VAR4 P03_VAR4 P01_VAR1.

begin data
1 2 2 0 0 0 5
2 1 1 1 1 0 5
3 0 0 0 0 0 5
4 1 2 3 4 5 5
5 0 0 0 0 1 5
end data.


DO REPEAT
    x = P01_VAR4 P02_VAR4 P03_VAR4 P04_VAR4
   /y = P01_VAR3 P02_VAR3 P03_VAR3 P04_VAR3
.
COMPUTE Y = $SYSMIS.
IF X >0 Y =P01_VAR1.
END REPEAT.
EXE.

This will run COMPUTE for each value of Pxx_VAR4 and Pxx_VAR3.

Does this help?

--jim

-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of
Gary Oliver
Sent: Thursday, February 08, 2007 9:57 PM
To: [hidden email]
Subject: IF statement to overwite an existing value with a missing value

Colleagues

I have the following set of IF statements which successfully execute.
IF ( P01_VAR4 > 0 ) P01_VAR3 = P01_VAR1 .
...
IF ( P35_VAR4 > 0 ) P35_VAR3 = P01_VAR1 .

In some cases the value for VAR3 is zero and I rightly get a warning
message and the cell is marked with a dot for missing value.

The command has evolved over a week of modifying the calculation with
the result that the cells contain pre-existing values. What I have
noticed is that the IF statement above does not replace the pre-existing
values with a blank cell.

My questions are:

(a) Is there a command that I can apply to a variable to clear values?

I cannot see anything in the syntax help file that
erases/deletes/removes values. These key words only seem to apply to
files or variables themselves.


(b) Is there an amendment to the syntax which can force a missing value
to be inserted overriding whatever is in the cell?

TIA/gary
Reply | Threaded
Open this post in threaded view
|

Re: IF statement to overwite an existing value with a missing value

Richard Ristow
At 03:43 PM 2/9/2007, Marks, Jim wrote:

>A statement like:
>
>COMPUTE P01_VAR3 = $SYMSIS.
>IF P01_VAR4 > 0 P01_VAR3 = P01_VAR1.
>
>Will reset all the values and populate P01_VAR3 with the values you
>want.

Touché. That's the way we did it before DO IF was
introduced. It's shorter, easier to write, and
easier to get right, than the DO IF solution I gave:

>>DO IF             ( P01_VAR4 > 0 )
>>    AND NOT MISSING( P01_VAR4 > 0 ).
>>.  COMPUTE P01_VAR3 = P01_VAR1 .
>>ELSE.
>>.  COMPUTE P01_VAR3 = $SYSMIS.
>>END IF.

There's a lot to be said for remembering old-school styles.

Jim also wrote,

>It looks like you have a set of variables to process. If so, something
>using DO REPEAT could reduce your typing:

Yes. Reduce your typing, make your code shorter
and more readable, and be less prone to errors.

-Good luck, and thanks,
  Richard
Reply | Threaded
Open this post in threaded view
|

Re: IF statement to overwite an existing value with a missing value

Art Kendall-2
The approach suggested will work.  However, in the long run it is
advisable to avoid explicitly using $symiss or sysmis on the right hand
side of the assignment operator.

In order to preserve the distinction between user-missing and
system-missing the first statement should be something like
compute p01_var3 = -1.
missing values p01_var3 (lo thru -1).
value labels p01_var3 -1 'initial value set by user'.

The value is *not* missing because the machine could not follow the
user's instruction.  The value is missing because the *user set it to be*.


It is a major help in debugging syntax to reserve system missing to 2
situations
1) when the user tells the system to read data that is not compatible
with the format specified.
This situation is detected from the warnings in the log
The user then edits  the syntax and runs it  again.
This is repeated until there are no more warnings.
Descriptive statistics are then used to explore the data before
transformations are done.
Once the data reading phase has bee debugged it is time to start the
transformations phase.

2) when the user tells the system to do a data transformation that it
cannot do.
This situation is detected because there are warnings in the log and
because values are set to system-missing.
System missing values point to situations where the user's logic did not
accommodate the contingencies encountered in the data.
When this occurs the syntax is edited to correct the syntax to assign
user missing values or valid values as appropriate to the contingency
This is repeated until there are no more warnings.
Descriptive statistics are then used to validate the transformations
before the analysis phase is started.


Art Kendall
Social Research Consultants

Richard Ristow wrote:

> At 03:43 PM 2/9/2007, Marks, Jim wrote:
>
>> A statement like:
>>
>> COMPUTE P01_VAR3 = $SYMSIS.
>> IF P01_VAR4 > 0 P01_VAR3 = P01_VAR1.
>>
>> Will reset all the values and populate P01_VAR3 with the values you
>> want.
>
> Touché. That's the way we did it before DO IF was
> introduced. It's shorter, easier to write, and
> easier to get right, than the DO IF solution I gave:
>
>>> DO IF             ( P01_VAR4 > 0 )
>>>    AND NOT MISSING( P01_VAR4 > 0 ).
>>> .  COMPUTE P01_VAR3 = P01_VAR1 .
>>> ELSE.
>>> .  COMPUTE P01_VAR3 = $SYSMIS.
>>> END IF.
>
> There's a lot to be said for remembering old-school styles.
>
> Jim also wrote,
>
>> It looks like you have a set of variables to process. If so, something
>> using DO REPEAT could reduce your typing:
>
> Yes. Reduce your typing, make your code shorter
> and more readable, and be less prone to errors.
>
> -Good luck, and thanks,
>  Richard
>
>